ansible 15个模块

1.1 shell

shell模块: 类似command模块升级版---万能模块

官方文档:https://docs.ansible.com/ansible/latest/modules/shell_module.html#shell-module

参数:

chdir        运行此命令之前先cd进入该目录

creates判断指定文件是否存在,如果存在,命令将不再运行。

removes判断指定文件是否存在,如果存在,执行后面的操作

free_form  输入一个符号规范的命令信息

实例1-1 chdir

1. [root@m01 ~]# ansible web01 -m shell -a "rm -f 1 chdir=/data/"

web01 | CHANGED | rc=0 >>

2. [root@web01 data]# ls

1

[root@web01 data]# ls

[root@web01 data]#

实例1-2 creates

[root@m01 ~]# ansible web01 -m shell -a "touch 1.txt chdir=/data/  creates=/data/1.txt"

web01 | CHANGED | rc=0 >>

[root@m01 ~]# ansible web01 -m shell -a "touch 1.txt chdir=/data/  creates=/data/1.txt"

web01 | SUCCESS | rc=0 >>

skipped, since /data/1.txt exists                    #文件已存在就不在执行touch命令

实例1-3 removes

[root@m01 ~]# ansible web01 -m shell -a "\rm -f /data/1.txt removes=/data/1.txt"

web01 | CHANGED | rc=0 >>

[root@m01 ~]# ansible web01 -m shell -a "\rm -f /data/1.txt removes=/data/1.txt"

web01 | SUCCESS | rc=0 >>

skipped, since /data/1.txt does not exist      #文件不存在就不在执行 rm操作

1.2  template

template模块:主要用于将管理主机上的数据信息传送给多台主机

区别于copy该模块支持变量

官方文档:https://docs.ansible.com/ansible/latest/modules/template_module.html#template-module

参数:

backup(no* yes)  : 默认数据复制到远程主机,会覆盖原有文件(yes复制时将源文件进行备份)                     

dest (required)  :将数据复制到远程节点的路径信息

group                : 文件数据复制到远程主机,设置文件属组用户信息

mode  :文件数据复制到远程主机,设置数据的权限  #权限前加零0644 0755

owner                : 文件数据复制到远程主机,设置文件属主用户信息

src  :指定将本地管理主机的什么数据信息进行远程复制

实例1-1 变量说明

[root@m01 tmp]# ls

15.txt  nfs01

[root@m01 tmp]# cat 15.txt

15 {{ item }}

[root@m01 tmp]# ansible nfs01  -m template --extra-vars="item=5" -a "dest=/data/  src=/tmp/15.txt "

nfs01 | CHANGED => {                #定义变量为5

"changed": true,

[root@nfs01 data]# cat 15.txt          #nfs01 下15.txt

15 5

1.3  copy

copy模块: 主要用于将管理主机上的数据信息传送给多台主机

copy模块在复制数据时,如果数据为软链接文件,会将链接指定源文件进行复制

官方文档:https://docs.ansible.com/ansible/latest/modules/copy_module.html#copy-module

参数:

backup(no* yes)  : 默认数据复制到远程主机,会覆盖原有文件(yes复制时将源文件进行备份)

content              :  在文件中添加信息      #有内容的文件会被清空再写入信息                             

dest(required)    :将数据复制到远程节点的路径信息

group                : 文件数据复制到远程主机,设置文件属组用户信息

mode  :文件数据复制到远程主机,设置数据的权限  #权限前加零0644 0755

owner                : 文件数据复制到远程主机,设置文件属主用户信息

remote_src(no* yes): 如果设置为yes,表示将远程主机上的数据进行移动操作        #no*  默认为no

如果设置为no, 表示将管理主机上的数据进行分发操作        #不支持递归复制

src  :指定将本地管理主机的什么数据信息进行远程复制

实例1-1 backup  src

[root@web01 data]# ll                          #web01  /data下的内容

total 4

-rw-r--r-- 1 root root 7 Jan 23 16:11 11.txt

-rw-r--r-- 1 root root 0 Jan 23 15:52 1.txt

[root@m01 data]# ll                              #m01  /data下的内容

total 4

-rw-r--r-- 1 root root 4 Jan 23 16:12 11.txt

-rw-r--r-- 1 root root 0 Jan 23 15:50 1.txt

[root@m01 ~]# ansible  web01  -m copy  -a " src=/data/11.txt  dest=/data/  backup=yes"

web01 | CHANGED => {                              #backup=yes

    "backup_file": "/data/11.txt.7034.2019-01-23@16:12:52~",

    "changed": true,

    "checksum": "a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0",

    "dest": "/data/11.txt",

    "gid": 0,

    "group": "root",

    "md5sum": "ba1f2511fc30423bdbb183fe33f3dd0f",

"mode": "0644",

    "owner": "root",

    "size": 4,

    "src": "/root/.ansible/tmp/ansible-tmp-1548231171.25-36281974398529/source",

    "state": "file",

    "uid": 0

}

[root@web01 data]# ls                              #web01  /data下内容

11. txt  11.txt.7034.2019-01-23@16:12:52~  1.txt 

#11.txt为m01复制过去的文件  #11.txt.7034.2019-01-23@16:12:52~为原来远程主机那个11.txt

#当远程主机上有同名文件时backup=yes 会把远程主机上的文件备份,当同名文件内容相同时不会再复制过去

实例1-2 content  dest

[root@m01 ~]# ansible  web01  -m copy  -a "content=123456789 dest=/data/11.txt"

web01 | CHANGED => {                          #在目标文件中添加123456789的内容

    "changed": true,

    "checksum": "f7c3bc1d808e04732adf679965ccc34ca7ae3441",

    "dest": "/data/11.txt",

    "gid": 0,

    "group": "root",

    "md5sum": "25f9e794323b453885f5181f1b624d0b",

    "mode": "0644",

    "owner": "root",

    "size": 9,

    "src": "/root/.ansible/tmp/ansible-tmp-1548233198.82-218031705252404/source",

    "state": "file",

    "uid": 0

}X

[root@web01 data]# cat 11.txt

123456789[root@web01 data]#

实例1-3 group  mode  owner

[root@m01 data]# ll                    #测试文件原来属主,属组,权限

total 0

-rw-r--r-- 1 root root 0 Jan 23 17:31 15.txt

[root@m01 ~]# ansible  web01  -m copy  -a "src=/data/15.txt dest=/data/ mode=666 owner=oldboy group=oldboy"                #修改测试文件属组属主权限为oldboy oldboy  666

web01 | CHANGED => {           

    "changed": true,

    "checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709",

    "dest": "/data/15.txt",

    "gid": 1000,

    "group": "oldboy",

    "md5sum": "d41d8cd98f00b204e9800998ecf8427e",

    "mode": "0666",

    "owner": "oldboy",

    "size": 0,

    "src": "/root/.ansible/tmp/ansible-tmp-1548235924.14-253659294482668/source",

    "state": "file",

    "uid": 1000

}

[root@web01 data]# ll              ##测试文件复制到web01后的属主,属组,权限

total 0

-rw-rw-rw- 1 oldboy oldboy 0 Jan 23 17:32 15.txt

实例1-4 remote_src

[root@m01 ~]# ansible  web01  -m copy  -a "src=/data/1.txt dest=/data/ remote_src=no"

web01 | CHANGED => {                                          #remote_src=no  src=为m01上的路径

    "changed": true,

    "checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709",

    "dest": "/data/1.txt",

    "gid": 0,

    "group": "root",

    "md5sum": "d41d8cd98f00b204e9800998ecf8427e",

    "mode": "0644",

    "owner": "root",

    "size": 0,

    "src": "/root/.ansible/tmp/ansible-tmp-1548241564.22-144846621010863/source",

    "state": "file",

    "uid": 0

}

[root@web01 data]# ll

total 0

-rw-r--r-- 1 root  root  0 Jan 23 17:36 14.txt

-rw-rw-rw- 1 oldboy oldboy 0 Jan 23 17:32 15.txt

-rw-r--r-- 1 root  root  0 Jan 23 19:06 1.txt

[root@m01 ~]# ansible  web01  -m copy  -a "src=/data/17.txt  dest=/tmp remote_src=yes"

web01 | CHANGED => {      #remote_src=yes  src为目标机路径即web01下/data/17.txt复制到/tmp下

    "changed": true,

    "checksum": "c4f9375f9834b4e7f0a528cc65c055702bf5f24a",

    "dest": "/tmp/17.txt",

    "gid": 0,

    "group": "root",

    "md5sum": "f447b20a7fcbf53a5d5be013ea0b15af",

    "mode": "0644",

    "owner": "root",

    "size": 7,

    "src": "/data/17.txt",

    "state": "file",

    "uid": 0

}

[root@web01 tmp]# ll

total 4

-rw-r--r-- 1 root root 7 Jan 23 19:34 17.txt

-rw-r--r-- 1 root root 0 Jan 23 19:36 18.txt

1.4  fetch

fetch模块:从远程主机拉取文件到管理端

官方文档:https://docs.ansible.com/ansible/latest/modules/fetch_module.html#fetch-module

参数:

dest(required):  将数据拉取到管理端的路径信息  目录后必须加/

src (required):  要获取的远程主机上的文件的路径信息;这必须是文件,而不是目录。

flat            :  默认为no 假如拉取/data/15.txt 会以目标主机的hostname/data/15.txt的形式拉取过来

                  yes      假如拉取/data/15.txt  会将文件直接拉取到你指定的目录

实例1-1 flat说明

[root@m01 tmp]# ansible nfs01  -m fetch  -a "dest=/tmp/  src=/data/15.txt"      #默认flat=no

nfs01 | CHANGED => {

    "changed": true, }

[root@m01 tmp]# ls

15. txt  nfs01

[root@m01 tmp]# ansible nfs01  -m fetch  -a "dest=/tmp/  src=/data/15.txt flat=yes"  flat=yes

nfs01 | CHANGED => {

[root@m01 tmp]# ls

15.txt

1.5  file

file模块:实现创建/删除文件信息 对数据权限进行修改

官方文档:https://docs.ansible.com/ansible/latest/modules/file_module.html#file-module

参数:

path(required)  :将数据复制到远程节点的路径信息相当于dest

group              : 文件数据复制到远程主机,设置文件属组用户信息

mode :文件数据复制到远程主机,设置数据的权限#权限前加零0644 0755

owner              : 文件数据复制到远程主机,设置文件属主用户信息

src :指定将本地管理主机的什么数据信息进行远程复制

state                :  absent    将数据进行删除

                        directory  创建一个空目录信息可以递归创建目录

file          查看指定目录信息是否存在

touch      创建一个空文件信息

hard/link 创建链接文件

实例1-1 state

[root@m01 data]# ansible web01 -m file -a "src=/etc/hosts path=/data/hosts_link  state=link"

web01 | CHANGED => {                      #state=link 给/etc/hosts创建一个软链接

    "changed": true,

    "dest": "/data/hosts_link",

    "gid": 0,

    "group": "root",

    "mode": "0777",

    "owner": "root",

    "size": 10,

    "src": "/etc/hosts",

    "state": "link",

    "uid": 0

}

[root@m01 data]# ansible web01 -m file -a "src=/etc/hosts path=/data/hosts_hard state=hard"

web01 | CHANGED => {                                  #state=hard 给/etc/hosts创建一个硬链接

    "changed": true,

    "dest": "/data/hosts_hard",

    "gid": 0,

    "group": "root",

    "mode": "0644",

    "owner": "root",

    "size": 159,

    "src": "/etc/hosts",

    "state": "hard",

    "uid": 0

}

[root@web01 data]# ll

total 4

-rw-r--r-- 2 root root 159 Jan 13 15:50 hosts_hard

lrwxrwxrwx 1 root root  10 Jan 23 19:57 hosts_link -> /etc/hosts

[root@m01 data]# ansible web01 -m file -a "path=/data/16.txt state=touch"

web01 | CHANGED => {                              #state=touch  创建一个空文件

    "changed": true,

    "dest": "/data/16.txt",

    "gid": 0,

    "group": "root",

    "mode": "0644",

    "owner": "root",

    "size": 0,

    "state": "file",

    "uid": 0

}

[root@web01 data]# ll

total 0

-rw-r--r-- 1 root root 0 Jan 23 20:30 16.txt

[root@m01 data]# ansible web01 -m file -a "path=/data/16 state=directory"

web01 | CHANGED => {                      #state=directory  创建一个空目录可以递归创建目录

    "changed": true,

    "gid": 0,

    "group": "root",

    "mode": "0755",

    "owner": "root",

    "path": "/data/16",

    "size": 6,

    "state": "directory",

    "uid": 0

}

[root@m01 data]# ansible web01 -m file -a "path=/data/14.txt state=absent"

web01 | CHANGED => {                                        #state=absent

    "changed": true,

    "path": "/data/14.txt",

    "state": "absent"

}

[root@web01 data]# ls

14.txt

[root@web01 data]# ls

[root@web01 data]#

实例1-2 group owner mode

利用recurse参数可以实现递归修改目录中数据权限

但是目录如果有链接文件,无法对链接文件进行递归修改

[root@m01 data]# ansible web01 -m file -a "path=/data/15.txt group=oldboy owner=oldboy mode=666 state=touch"

web01 | CHANGED => {

    "changed": true,

    "dest": "/data/15.txt",

    "gid": 1000,

    "group": "oldboy",

    "mode": "0666",

    "owner": "oldboy",

    "size": 0,

    "state": "file",

    "uid": 1000

}

[root@web01 data]# ll

total 0

-rw-rw-rw- 1 oldboy oldboy 0 Jan 23 20:53 15.txt

[root@m01 data]# ansible web01 -m file -a "path=/data/ group=oldboy owner=oldboy mode=666 recurse=yes"

web01 | CHANGED => {                        #利用recurse参数可以实现递归修改目录中数据权限

    "changed": true,

    "gid": 1000,

    "group": "oldboy",

    "mode": "0666",

    "owner": "oldboy",

    "path": "/data/",

    "size": 16,

    "state": "directory",

    "uid": 1000

}

[root@web01 data]# ll

total 0

drwxr-xr-x 3 root root 16 Jan 23 20:55 12

[root@web01 data]# ll

total 0

drw-rw-rw- 3 oldboy oldboy 16 Jan 23 20:55 12

1.6 yum

官方文档:https://docs.ansible.com/ansible/latest/modules/yum_module.html#yum-module

参数:

name    指定软件名称信息

state  absent/removed      将软件进行卸载(慎用)

        present/installed  将软件进行安装

    latest              安装最新的软件 yum update

实例1-1 

[root@m01 data]# ansible web01 -m yum -a "name=httpd-tools state=installed"

web01 | SUCCESS => {                    #为web01安装httpd-tools软件

    "ansible_facts": {

        "pkg_mgr": "yum"

    },

    "changed": false,

    "msg": "",

    "rc": 0,

    "results": [

        "httpd-tools-2.4.6-88.el7.centos.x86_64 providing httpd-tools is already installed"

    ]

}

1.7 service

service模块 :用于管理服务运行状态

官方文档:https://docs.ansible.com/ansible/latest/modules/service_module.html#service-module

参数:

enabled(no yes)    设置服务是否开机自启动如果参数不指定,原有服务开机自启动状态进行保留

name(required)    设置要启动/停止服务名称

state  reloaded    平滑重启

        restarted  重启

        started    启动

        stopped    停止

实例1-1 远程启动 cron定时任务服务

ansible web01  -m service -a "name=crond state=started enabled=yes"

1.8 mount

mount 模块:用于批量管理主机进行挂载操作

官方文档:https://docs.ansible.com/ansible/latest/modules/mount_module.html#mount-module

参数:

fstype 指定挂载的文件系统类型

opts 指定挂载的参数信息

path 定义一个挂载点信息

src 定义设备文件信息

state absent      会进行卸载,也会修改fatab文件信息

unmounted  会进行卸载,不会修改fstab文件

present 不会挂载,只会修改fstab文件

mounted 会进行挂载,会修改fstab文件

结论:

在进行挂载的时候,使用state=mounted

在进行卸载的时候,使用state=absent

实例1-1 实现远程批量挂载操作

ansible oldboy -m mount -a "src=172.16.1.31:/data/  path=/mnt fstype=nfs state=present"

以上信息只是在/etc/fstab文件中添加了配置信息,不会真正进行挂载

ansible oldboy -m mount -a "src=172.16.1.31:/data/  path=/mnt fstype=nfs state=mounted"

以上信息是在/etc/fstab文件中添加了配置信息,并且也会真正进行挂载

1.9 cron

cron 模块:定时任务模块

官方文档:https://docs.ansible.com/ansible/latest/modules/cron_module.html#cron-module

参数:

minute/hour/day/month/weekday  和设置时间信息相关参数

job                            和设置定时任务有关参数

name                            设置定时任务注释信息

state                          absent  删除指定定时任务

disabled                        yes  将指定定时任务进行注释

                                no  取消注释

实例1-1 需求每隔5分钟同步一次时间

[root@m01 data]# ansible web01 -m cron -a "name='cron-01 ntpdate time' minute=*/5 job='/usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null'"

web01 | CHANGED => {

    "changed": true,

    "envs": [],

    "jobs": [

        "cron-01 ntpdate time"

    ]

}

[root@web01 data]# crontab -l

#Ansible: cron-01 ntpdate time

*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null

将定时任务注释掉

[root@m01 data]# ansible web01 -m cron -a "name='cron-01 ntpdate time' minute=*/5 job='/usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' disabled=yes"      #disabled=yes 将定时任务注释掉

web01 | CHANGED => {

    "changed": true,

    "envs": [],

    "jobs": [

        "cron-01 ntpdate time"

    ]

}

[root@web01 data]# crontab -l

#Ansible: cron-01 ntpdate time

#*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null

1.10 group

group模块:远程批量创建用户组信息

官方文档:https://docs.ansible.com/ansible/latest/modules/group_module.html#group-module

参数:

gid 指定创建的组ID信息

name 指定创建组名称信息

state    absent  删除指定的用户组

            present 创建指定的用户组

实例1-1 

01. 创建一个指定的用户组oldboy_55  gid=1055

ansible oldboy -m group -a "name=oldboy_56 gid=1056"

02. 删除一个指定的用户组oldboy_55  gid=1055

ansible oldboy -m group -a "name=oldboy_55 gid=1055 state=absent"

1.11 user

usr模块:远程批量创建用户信息

官方文档:https://docs.ansible.com/ansible/latest/modules/user_module.html#user-module

参数:

name        指定用户名信息

uid        指定用户uid信息

group      指定用户主要属于哪个组

groups      指定用户属于哪个附加组信息

shell      指定是否能够登录

create_home 是否创建家目录信息

home 指定家目录创建在什么路径默认/home

password    * 设置密码时不能使用明文方式,只能使用密文方式

可以给用户设置密码还可以给用户修改密码

实例1-1 生成密文密码的方式连接

方法1:ansible all -m debug -a "msg={{ '123456' | password_hash('sha512', 'abcd') }}"

[root@m01 data]# ansible web01 -m debug -a "msg={{ '123456' | password_hash('sha512', 'abcd') }}"

web01 | SUCCESS => {                  #查看密码123456的密文

    "msg":                  "$6$abcd$BlbaPOqDDm3eVW.GrfRm4Vcuz4.0WgysdL5FY1CIn/4a5QwuySngbORfHwsHfXQERZejgHIflz1fJkKs82Iix."

}

方法2:pip install passlib

python -c "from passlib.hash import sha512_crypt; import getpass; print(sha512_crypt.using(rounds=5000).hash(getpass.getpass()))"

password:  请输入密码信息

实例1-2 

01. 创建一个虚拟用户rsync -uid=777

ansible oldboy -m user -a "name=rsync uid=777 shell=/sbin/nologin create_home=no"

02. 创建一个普通用户olddog_01, 主要属于1055组(oldboy_55) 附加属于rsync 1056组

ansible oldboy -m user -a "name=olddog_01 group=1055 groups=rsync"

03. 创建一个普通用户 olddog_02 密码信息为 oldboy123

ansible oldboy -m user -a 'name=olddog_04 password=$6$oldboy$PJaUI4wpLh9bI2HiMnomGgtkVxhT/EUQLwn0dVXV6bGOzzXPlVimepElBrwh9JMSkjuna18OY8zy3OitR2peo/'

说明:创建密码时,需要注意-a后面参数使用单引号汇总为一个整体,一定不能使用双引号

1.12 debug

debug模块: 调试模块,用于在调试中输出信息

常用参数:

msg:调试输出的消息var:将某个任务执行的输出作为变量传递给debug模块,debug会直接将其打印输出verbosity:debug的级别(默认是0级,全部显示)

实例1-1 参数说明

[root@m01 playbook]# vim  test03.yml

# var verbosity

- hosts: backup01

tasks:

- name: data

  shell: date

  register: result

- name: debug

  debug: var=result.stdout verbosity=0            #只显示stdout输出

[root@m01 playbook]# ansible-playbook test03.yml

TASK [debug] **********************************************************************

ok: [backup01] => {

    "result.stdout": "Mon Jan 28 10:39:51 CST 2019"

}

# msg

[root@m01 playbook]# cat  test03.yml

- hosts: web01

  tags: web01

  tasks:

    - name:

      debug:

        msg: "hello world"

[root@m01 playbook]# ansible-playbook -t web01 test03.yml

TASK [debug] **********************************************************************

ok: [web01] => {

    "msg": "hello world"

}

1.13  unarchive

unarchive模块:从管理端选择文件后将其解包. 解压缩的功能

官方文档:https://docs.ansible.com/ansible/latest/modules/unarchive_module.html#unarchive-module

参数:

dest (required)  :解压到远程主机的路径信息

src (required)  :管理端需要解压的压缩包的路径信息

copy          :默认为yes,当copy=yes,那么拷贝的文件是从ansible主机复制到远程主机上的

no,那么会在远程主机上寻找src源文件

mode          :设置解压缩后的文件权限

实例1-1 

[root@m01 tmp]# ansible nfs01  -m unarchive -a "dest=/data/  src=/tmp/1.tar.gz"

nfs01 | CHANGED => {

    "changed": true,

[root@nfs01 data]# ls

tmp   

1.14  ping

ping模块:用于确认和对象机器之间是否能够ping通,正常情况会返回pong

官方文档:https://docs.ansible.com/ansible/latest/modules/ping_module.html#ping-module

参数:

data    :默认为no pong 数据返回的ping返回值。如果此参数设置为crash ,模块将导致异常。

实例1-1 

[root@m01 tmp]# ansible nfs01  -m ping -a "data=crash"  #设置为crash ,模块异常。

nfs01 | FAILED! => {

    "changed": false,

    "module_stderr": "Shared connection to 172.16.1.31 closed.\r\n",

    "module_stdout": "Traceback (most recent call last):\r\n  File

[root@m01 tmp]# ansible nfs01 -m ping        #默认返回pong

nfs01 | SUCCESS => {

    "changed": false,

    "ping": "pong"

}

[root@m01 tmp]# ansible nfs01 -m ping -a "data=haha"    #设置返回值为haha

nfs01 | SUCCESS => {

    "changed": false,

    "ping": "haha"

}

1.15  selinux

selinux模块:用于配置SELinux状态,需要客户端安装libselinux-python。

官方文档:https://docs.ansible.com/ansible/latest/modules/selinux_module.html#selinux-module

参数:

conf          :  /etc/selinux/config SELinux配置文件的路径

policy  :  SELinux所使用的的策略,如targeted。若state不是disabled,该配置是必需的

state (required) : enforcing  强制模式。违反SELinux 规则的行为将被阻止并记录到日志中。permissive  宽容模式。违反SELinux 规则的行为只会记录到日志中。一般为调试用。

disabled  关闭selinux

实例1-1 

[root@m01 tmp]# ansible nfs01  -m selinux -a "state=permissive policy=targeted"

[WARNING]: Reboot is required to set SELinux state to permissive

nfs01 | CHANGED => {

"changed": true,                                 

"configfile": "/etc/selinux/config",

    "msg": "Config SELinux state changed from 'enforcing' to 'permissive'",  #修改selinux的配置文件

    "policy": "targeted",

    "reboot_required": true,

    "state": "permissive"

}

[root@m01 tmp]# ansible nfs01  -m selinux -a "state=disabled"

nfs01 | CHANGED => {

    "changed": true,

    "configfile": "/etc/selinux/config",

    "msg": "Config SELinux state changed from 'permissive' to 'disabled'",

    "policy": "targeted",

    "reboot_required": false,

    "state": "disabled"

}

1.16  tempfile

tempfile模块:创建临时文件或目录

官方文档:https://docs.ansible.com/ansible/latest/modules/tempfile_module.html#tempfile-module

参数:

path  :创建到远程主机的路径信息

prefix :默认为ansible 创建文件或目录的前缀名

suffix :创建文件或目录的后缀名

state  :默认为file  创建文件

directory  创建目录

实例1-1 

[root@m01 tmp]# ansible nfs01  -m tempfile -a "path=/data/ state=file  suffix=.txt prefix=haha"

nfs01 | CHANGED => {

    "changed": true,

    "gid": 0,

[root@nfs01 data]# ls

hahafKobkG.txt

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349