👋 欢迎来到吴老二技术博客,专注运维 / 数据库 / 云原生
首页/运维服务/正文

ansible批量推送本地文件到目标机器

吴
吴老二
2021-03-13运维服务4296 次浏览0 条评论
在工作中,批量执行一些操作很有必要,比如我写了一个脚本,但是这个脚本可以在每一个机器都可以执行。举个例子:我在我的k8s环境中,所有的node节点上因为长时间的更新操作,导致下载的镜像过多,占用过多的空间资源,所以,就写了一个脚本批量删除镜像的脚本,但是这个脚本在我电脑本地,已经测试过了没有问题,下面就需要copy到目标机器上,方便批量执行了。 先看一下我的ansible的配置吧,我根据自己的需求划分后,不通的需求不通的文件里
[root@www.wulaoer.org ~]# cat ops_10_16
[ops_tools]
ali-bj-g-ops-web ansible_ssh_user=root ansible_ssh_host=10.16.208.133 ansible_ssh_port=11011
下面我就把本地的脚本推动到目标机器上,这里用到了ansible的copy模块,src是本地的文件路径,dest是目标路径。
[root@www.wulaoer.org ~]# ansible ops_tools -m copy -a "src=/opt/sh/docker_images.sh dest=/home"
ali-bj-g-ops-web | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": true,
    "checksum": "063b694974d74422fc5cac9ed500a29bed52d791",
    "dest": "/home/docker_images.sh",
    "gid": 0,
    "group": "root",
    "md5sum": "408b443a6debeecdb2e3174208818f95",
    "mode": "0644",
    "owner": "root",
    "size": 287,
    "src": "/root/.ansible/tmp/ansible-tmp-1615538133.88-25836-263055278069757/source",
    "state": "file",
    "uid": 0
}
推送成功,下面进入目标机器验证一下,文件是存在的。
[root@www.wulaoer.org ~]#  ll /home/docker_images.sh
-rw-r--r-- 1 root root 287 Mar 12 16:35 /home/docker_images.sh
这里需要注意一下,我们推送过去的文件都是系统默认的权限,和原文件型属性不一致。这样在推送脚本时,目标文件是无法执行的。所以,在copy模块里还可以增加五个参数分别是owner,group,mode,backup,force五个参数owner指的是用户。group指的是用户组。mode指的是文件属性。如果给文件加个执行权限可以使用mode=u+x表示。backup参数是指本地和远程目标机器里的文件同名,内容不一样,可以对文件做备份远程机器中的文件,然后在将本地的文件copy过去,可以选择yes或no,备份不备份。这里还有一个扩展内容就是src,srccopy的是文件或者文件夹,content copy的是文件的内容,两者必须有一个,否则报错
文章底部广告位在后台「广告设置」填写广告代码后显示

评论 0

评论需 登录 后发表(注册并验证邮箱)。
还没有评论,来抢沙发~