copy模块
- src ##源文件
- dest ##目的地文件
- owner ##指定目的地文件所有人
- group ##指定用户组
- mode ##指定目的地文件权限
- backup=yes ##当受控主机中存在文件时备份原文件
- conten ##指定文本内容直接在受控主机中生成文件
[mei@server151 ansible]$ ansible server -m copy -a "src=/home/mei/test.sh dest=/mnt/test.sh owner=westos mode=754"
## 传输文件 设置所属用户 设置权限
当传输的文件同名且不同内容时可备份受控机的原文件__添加backup=yes 参数
[mei@server151 ansible]$ ansible server -m copy -a "src=/home/mei/test.sh dest=/mnt/test.sh owner=westos mode=754 backup=yes"
输入文本内容 写入到被控主机文件
[mei@server151 ansible]$ ansible server -m copy -a 'content="test_ansible" dest=/mnt/1'
## 该操作会覆盖原文本
fetch模块
从受控主机自己哦嗯把文件复制到ansible主机,不支持目录
- src ##受控主机源文件
- dest ##本机目录
- falt ##基本名称功能
[mei@server151 ansible]$ ansible server -m fetch -a 'src=/etc/sysconfig/network-scripts/ifcfg-ens3 dest=/home/mei/ansible'
连带目录一起复制过来
只复制单文件
[mei@server151 ansible]$ ansible server -m fetch -a 'src=/etc/sysconfig/network-scripts/ifcfg-ens3 dest=/home/mei/ansible/ifcfg-ens3 flat=yes'
## flat=yes ##基本名称功能
file 模块
参数
- path ##指定文件名称
- state ##指定操作状态
##touch 建立
##absent 删除
directory 递归
##link 建立软链接
##hard 建立硬链接 - mode ##设定权限
- owner ##设定文件所属用户
- group ##设定文件组
- src ##源文件
- dest ##目标文件
- recurse=yes ##递归更改
[mei@server151 ansible]$ ansible server -m file -a 'path=/mnt/test/testfile state=touch'
##创建文件
[root@server152 test]# ls
testfile
[mei@server151 ansible]$ ansible server -m file -a 'path=/mnt/test/testdir state=directory'
##创建文件夹
[root@server152 test]# ls
testdir testfile
[mei@server151 ansible]$ ansible server -m file -a 'path=/mnt/test/testfile mode=777 owner=devops group=westos'
##修改文件权限 所属组 所属用户
[root@server152 test]# ll
总用量 0
drwxr-xr-x. 2 root root 6 8月 23 14:39 testdir
-rw-r--r--. 1 root root 0 8月 23 14:36 testfile
[root@server152 test]# ll
总用量 0
drwxr-xr-x. 2 root root 6 8月 23 14:39 testdir
-rwxrwxrwx. 1 devops westos 0 8月 23 14:36 testfile
硬链接
[mei@server151 ansible]$ ansible server -m file -a 'src=/mnt/test/file1 dest=/mnt/test/test_one state=hard'
软链接
[mei@server151 ansible]$ ansible server -m file -a 'src=/mnt/test/file1 dest=/mnt/test/test_link state=link'
archive
- path 打包目录名称
- dest 声称打包文件名称
- ormat 打包格式
- owner 指定文件所属人 mode 指定文件权限
[mei@server151 ansible]$ ansible server -m archive -a "path=/etc dest=/mnt/test/etc.tar.gz format=gz"
##打包目录到指定文件夹下 gz格式
[mei@server151 ansible]$ ansible server -m archive -a "path=/etc dest=/mnt/test/etc.tar.bz2 format=bz2 mode=754 owner=devops group=westos"
##打包目录到指定文件夹下 bz2格式 文件所有人devops 所属组 westos 权限 754
unarchive
- copy 默认为yes(从ansible主机复制文件到受控主机);设定为no,从受控主机中寻找src源文件
- remote_src 功能同copy且相反,设定为yes 表示包在受控主机,设定为no表示包在ansible主机
- src 包路径,可以使用ansible主机也可以使用受控主机
- dest 受控主机目录
- mode 解压后文件权限
[mei@server151 ~]$ tar zcf home.tar.gz /home/mei -P
##创建一个压缩包
[mei@server151 ansible]$ ansible server -m unarchive -a "src=/home/mei/home.tar.gz dest=/mnt/test/"
##将压缩包文件解压到被控机上指定目录
[mei@server151 ansible]$ ansible server -m unarchive -a "src=/home/mei/home.tar.gz dest=/mnt/test/ owner=westos group=westos mode=700"
##将压缩包文件解压到被控机上指定目录 uid为westos gid westos 权限 700
hostname
修改改主机名称
[mei@server151 ansible]$ ansible server -m hostname -a "name=server_test1"