一、ansible模块
我们继续来学习ansible的常用模块
大家有看不懂的模块,一定要去官网上查看一下模块的说明,要学会看官方的文档 https://docs.ansible.com/ansible/latest/modules/stat_module.html#stat-module
1.stat模块
stat模块类似linux的stat命令,用于获取文件的状态信息。
获取/etc/fstab文件的状态信息
master# ansible group1 -m stat -a 'path=/etc/fstab'
2.copy模块
copy模块用于对文件的远程拷贝操作(如把本地的文件拷贝到远程的机器上)
在master上准备一个文件,拷贝此文件到group1的所有机器上
master# echo master > /tmp/222
master# ansible group1 -m copy -a 'src=/tmp/222 dest=/tmp/333'
使用content参数直接往远程文件里写内容(会覆盖原内容)
master# ansible group1 -m copy -a 'content="ha ha\n" dest=/tmp/333'
注意:ansible中-a后面的参数里也有引号时,记得要单引双引交叉使用,如果都为双引会出现问题
使用force参数控制是否强制覆盖
如果目标文件已经存在,则不覆盖
master# ansible group1 -m copy -a 'src=/tmp/222 dest=/tmp/333 force=no'
如果目标文件已经存在,则会强制覆盖
master# ansible group1 -m copy -a 'src=/tmp/222 dest=/tmp/333 force=yes'
使用backup参数控制是否备份文件
backup=yes表示如果拷贝的文件内容与原内容不一样,则会备份一份
group1的机器上会将/tmp/333备份一份(备份文件命名加上时间),再远程拷贝新的文件为/tmp/333
master# ansible group1 -m copy -a 'src=/etc/fstab dest=/tmp/333 backup=yes owner=daemon group=daemon mode=1777'
copy模块拷贝时要注意拷贝目录后面是否带"/"符号
/etc/yum.repos.d后面不带/符号,则表示把/etc/yum.repos.d整个目录拷贝到/tmp/目录下
master# ansible group1 -m copy -a 'src=/etc/yum.repos.d dest=/tmp/'
/etc/yum.repos.d/后面带/符号,则表示把/etc/yum.repos.d/目录里的所有文件拷贝到/tmp/目录下
master# ansible group1 -m copy -a 'src=/etc/yum.repos.d/ dest=/tmp/'
3.template模块
template模块:使用变量渲染jinja2模板文件成普通文件,然后再复制过去.而copy模块不支持.功能和copy差不多
master# ansible -m template group1 -a "src=/etc/hosts dest=/tmp/hosts"
注意:template模块不能拷贝目录
本篇就先介绍三个模块,大家有空练习一下
每天学一点,就掌握一点
请各位看官移步下一章:
运维必备技能ansible(四)
关注我,不迷路。