博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ansible软件模块参数
阅读量:6200 次
发布时间:2019-06-21

本文共 5999 字,大约阅读时间需要 19 分钟。

ansible-doc -l|wc -l

1378
官方网站:docs.ansible.com
ansible 管理主机信息或者主机组信息 -m 模块名称 -a 相关模块参数

主机信息:远程主机IP地址  远程主机组名称  远程所有主机all-m 指定相应模块-a 利用模块中某些参数功能

(一)命令类型模块:

第一个模块:command官方参考链接:http://docs.ansible.com/ansible/latest/modules/command_module.html参数:chdir---在执行某个命令前,先切换目录[root@m01 ansible]# ansible 172.16.1.31 -m command -a "chdir=/tmp/ pwd"172.16.1.31 | SUCCESS | rc=0 >>/tmp[root@m01 ansible]# ansible 172.16.1.31 -m command -a "chdir=/etc/ pwd"172.16.1.31 | SUCCESS | rc=0 >>/etc参数:creates---判断一个文件是否存在,如果已经存在了,后面的命令就不会执行[root@m01 ansible]# ansible 172.16.1.41 -m command -a "creates=/etc/rsyncd.conf hostname"172.16.1.41 | SUCCESS | rc=0 >>skipped, since /etc/rsyncd.conf exists[root@m01 ansible]# ansible 172.16.1.41 -m command -a "creates=/etc/rsyncd.conf.bak hostname"172.16.1.41 | SUCCESS | rc=0 >>skipped, since /etc/rsyncd.conf.bak exists[root@m01 ansible]# ansible 172.16.1.41 -m command -a "creates=/etc/rsyncd.123456 hostname"172.16.1.41 | SUCCESS | rc=0 >>backup参数:removes---判断一个文件是否存在,如果不存在,后面的命令就不会执行[root@m01 ansible]# ansible 172.16.1.41 -m command -a "removes=/etc/rsyncd.conf hostname"172.16.1.41 | SUCCESS | rc=0 >>backup[root@m01 ansible]# ansible 172.16.1.41 -m command -a "removes=/etc/rsyncd.1212213123 hostname"172.16.1.41 | SUCCESS | rc=0 >>skipped, since /etc/rsyncd.1212213123 does not exist参数(必须要有的):free_form---表示执行command模块时,必须要有linux合法命令信息ansible 172.16.1.41 -m command -a "ls"172.16.1.41 | SUCCESS | rc=0 >>1anaconda-ks.cfgdead.letterheqing第二个模块:shell模块(万能模块)参数:chdir---在执行莫个命令前,先切换目录参数:creates---判断一个文件是否存在,如果已经存在了,后面的命令就不会执行参数:removes---判断一个文件是否存在,如果不存在,后面的命令就不会执行参数(必须要有的):free_form---表示执行command模块时,必须要有linux合法命令信息[root@m01 ansible]# ansible 172.16.1.41 -m shell -a "ls;pwd"172.16.1.41 | SUCCESS | rc=0 >>1anaconda-ks.cfgdead.letter/root说明:shell模块可以满足command模块所有功能,并且可以支持识别特殊字符信息 < > | ; 第三个模块:script---专门运行脚本模块例如:ansible 172.16.1.41 -m script -a "/server/scripts/yum.sh"参数:chdir---在执行莫个命令前,先切换目录参数:creates---判断一个文件是否存在,如果已经存在了,后面的命令就不会执行参数:removes---判断一个文件是否存在,如果不存在,后面的命令就不会执行参数(必须要有的):free_form---表示执行command模块时,必须要有linux合法命令信息

(二)文件类型模块:

第一个模块:copy----复制模块
参数:backup---对数据信息进行备份
[root@m01 ansible]# ansible 172.16.1.41 -m copy -a "src=/tmp/file01.txt dest=/tmp/ backup=yes"
172.16.1.41 | SUCCESS => {
"backup_file": "/tmp/file01.txt.71887.2018-04-02@23:33:19~",
"changed": true,
"checksum": "029b054db136cc36d5605e3818305825ff4b8ffb",
"dest": "/tmp/file01.txt",
"gid": 0,
"group": "root",
"md5sum": "434660b5ad7deeba8815349f71409405",
"mode": "0644",
"owner": "root",
"size": 6,
"src": "/root/.ansible/tmp/ansible-tmp-1522683197.05-52744169892601/source",
"state": "file",
"uid": 0
}

参数:src---定义要推送数据信息(在管理服务器上的数据)参数:dest---定义将数据推送到远程主机什么目录中[root@m01 ansible]# touch /tmp/file01.txt[root@m01 ansible]# ansible 172.16.1.41 -m copy -a "src=/tmp/file01.txt dest=/tmp/"172.16.1.41 | SUCCESS => {    "changed": true,     "checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709",     "dest": "/tmp/file01.txt",     "gid": 0,     "group": "root",     "md5sum": "d41d8cd98f00b204e9800998ecf8427e",     "mode": "0644",     "owner": "root",     "size": 0,     "src": "/root/.ansible/tmp/ansible-tmp-1522682948.27-60532389065095/source",     "state": "file",     "uid": 0}[root@m01 ansible]# ansible 172.16.1.41 -m shell -a "ls -l /tmp/"172.16.1.41 | SUCCESS | rc=0 >>total 24-rw-r--r-- 1 root root    0 Apr  2 23:29 file01.txt参数:owner---设置复制后的文件属主权限参数:group---设置复制后的文件属组权限参数:mode---设置复制后的文件权限(600 755)第二个模块:file----文件属性修改/目录创建/文件创建参数:owner---设置复制后的文件属主权限参数:group---设置复制后的文件属组权限参数:mode---设置复制后的文件权限(600 755)ansible 172.16.1.41 -m file -a "dest=/tmp/file01.txt owner=oldboy group=oldboy mode=600"172.16.1.41 | SUCCESS => {    "changed": true,     "gid": 500,     "group": "oldboy",     "mode": "0600",     "owner": "oldboy",     "path": "/tmp/file01.txt",     "size": 6,     "state": "file",     "uid": 500}参数:state---用于指定创建目录或文件创建文件ansible 172.16.1.41 -m file -a "dest=/tmp/file01.txt state=touch"172.16.1.41 | SUCCESS => {    "changed": true,     "dest": "/tmp/file01.txt",     "gid": 0,     "group": "root",     "mode": "0644",     "owner": "root",     "size": 0,     "state": "file",     "uid": 0}创建目录:ansible 172.16.1.41 -m file -a "dest=/tmp/dir01 state=directory"172.16.1.41 | SUCCESS => {    "changed": true,     "gid": 0,     "group": "root",     "mode": "0755",     "owner": "root",     "path": "/tmp/dir01",     "size": 4096,     "state": "directory",     "uid": 0}

(三)包管理模块类型

模块:yum---安装软件包模块
name:执行要安装软件的名称,以及软件的版本
state:installed安装 absent(卸载)
ansible 172.16.1.41 -m yum -a "name=iftop state=installed"
ansible 172.16.1.41 -m yum -a "name=iftop state=absent"

list:指定软件名称,查看软件是否可以安装,以及是否已经安装过了ansible 172.16.1.41 -m yum -a "list=iftop"

(四)系统模块类型

第一个模块:service---管理服务状态模块
name: 指定要管理的服务名称(管理的服务一定在chkconfig中可以看到)
state:stopped started restarted reloaded
enabled:yes表示服务开机自启动 no表示服务开机不要自动启动
ansible 172.16.1.41 -m service -a "name=crond state=started enabled=yes"

第二个模块:cron---定时任务模块(ansible-doc -s cron指定cron这个模块)

* * * * *  /bin/sh /server/scripts/test.sh &>/dev/nullminute=0-59 * */n , -   hour  day  month weekday  job='/bin/sh /server/scripts/test.sh &>/dev/null'添加定时任务ansible 172.16.1.41 -m cron -a "minute=0 hour=0 job='/bin/sh /server/scripts/test.sh &>/dev/null' "ansible 172.16.1.41 -m cron -a "name=oldboy02 minute=0 hour=0 job='/bin/sh /server/scripts/test.sh &>/dev/null' "    注意:定时任务添加名称,可以避免添加多条一样的定时任务删除定时任务(注意:需要指定定时任务名字name才能删除!)ansible 172.16.1.41 -m cron -a "name=oldboy02 minute=0 hour=0 job='/bin/sh /server/scripts/test.sh &>/dev/null' state=absent"ansible 172.16.1.41 -m cron -a "name=oldboy01 state=absent"注释定时任务ansible 172.16.1.41 -m cron -a "name=oldboy01 minute=0 hour=0 job='/bin/sh /server/scripts/test.sh &>/dev/null' disabled=yes"ansible 172.16.1.41 -m cron -a "name=oldboy01 job='/bin/sh /server/scripts/test.sh &>/dev/null' disabled=no"总结ansible颜色信息:绿色:查看远程主机信息,不会对远程主机系统做任何修改红色:执行操作出现异常错误“×××”:对远程主机系统进行修改操作粉色:警告或者忠告信息学习ansible模块的方法:1、通过博文的方式2、通过官方文档3、在管理服务器上查询文档  ansible-doc -s cron

转载于:https://blog.51cto.com/tangyong/2127882

你可能感兴趣的文章
手动在Swift项目中添加ObjectiveC第三方库
查看>>
CocoaPods的安装和使用介绍
查看>>
Kali Linux 2019.1 发布,Metasploit 更新到 5.0 版本
查看>>
SVG的viewBox与preserveAspectRatio属性
查看>>
HTTPS 也不安全?被发现新漏洞会暴露你的数据
查看>>
GNOME 3.31.91 发布,3.32 发布周期第二个 beta 版
查看>>
ELK日志分析方案
查看>>
1. 认识 Rxjs
查看>>
Linux服务器---配置telnet
查看>>
快速搭建react项目骨架(按需加载、redux、axios、项目级目录等等) ...
查看>>
对话 IJCAI 2019 特邀讲者 Leslie Kaelbling:与 AI 和机器人结缘背后的故事(上篇) ...
查看>>
Spring Cloud Alibaba到底坑不坑?
查看>>
数商云供应商采购管理系统平台,为企业解决哪些实质问题 ...
查看>>
什么是TensorFlow?
查看>>
Java并发编程之概念一:并行与并发
查看>>
GraphQL 分享 实战篇
查看>>
如何用纯 CSS 创作一个均衡器 loader 动画
查看>>
Unity 2018.3中的物理功能改进
查看>>
Android 打开本地pdf文件
查看>>
CVPR论文 | 基于尺度空间变换的本征图像分解
查看>>