安装
yum -y install ansible
配置文件/etc/ansible/hosts
模块介绍与使用
ping模块
[root@node1 config]# ansible k8s -m ping
192.168.1.3 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.1.2 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.1.1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
[root@node1 config]#
command模块和shell
shell和command的区别:shell模块可以特殊字符,而command是不支持
[root@node1 config]# ansible k8s -m command -a 'date'
192.168.1.1 | SUCCESS | rc= >>
2018年 01月 21日 星期日 :: CST 192.168.1.3 | SUCCESS | rc= >>
2018年 01月 21日 星期日 :: CST 192.168.1.2 | SUCCESS | rc= >>
2018年 01月 21日 星期日 :: CST
command万能模块也可以这样写
[root@node1 config]# ansible k8s -a 'date'
192.168.1.1 | SUCCESS | rc= >>
2018年 01月 21日 星期日 :: CST 192.168.1.3 | SUCCESS | rc= >>
2018年 01月 21日 星期日 :: CST 192.168.1.2 | SUCCESS | rc= >>
2018年 01月 21日 星期日 :: CST [root@node1 config]#
shell模块支持特殊字符比如空格
[root@node1 config]# ansible k8s -m shell -a 'touch /tmp/ansible.txt' 192.168.1.1 | SUCCESS | rc= >> 192.168.1.3 | SUCCESS | rc= >> 192.168.1.2 | SUCCESS | rc= >> [root@node1 config]# ansible k8s -m shell -a 'ls -l /tmp/ansible.txt'
192.168.1.1 | SUCCESS | rc= >>
-rw-r--r-- root root 1月 : /tmp/ansible.txt 192.168.1.3 | SUCCESS | rc= >>
-rw-r--r-- root root 1月 : /tmp/ansible.txt 192.168.1.2 | SUCCESS | rc= >>
-rw-r--r-- root root 1月 : /tmp/ansible.txt [root@node1 config]#
copy模块
把本地的文件拷贝到远程机器上去
[root@node1 tmp]# ansible k8s -m copy -a 'src=/tmp/ahahaa dest=/tmp/'
192.168.1.3 | SUCCESS => {
"changed": true,
"checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
"dest": "/tmp/ahahaa",
"gid": ,
"group": "root",
"md5sum": "d41d8cd98f00b204e9800998ecf8427e",
"mode": "",
"owner": "root",
"size": ,
"src": "/root/.ansible/tmp/ansible-tmp-1516526258.65-233570741395818/source",
"state": "file",
"uid":
}
192.168.1.2 | SUCCESS => {
"changed": true,
"checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
"dest": "/tmp/ahahaa",
"gid": ,
"group": "root",
"md5sum": "d41d8cd98f00b204e9800998ecf8427e",
"mode": "",
"owner": "root",
"size": ,
"src": "/root/.ansible/tmp/ansible-tmp-1516526258.64-160953882755803/source",
"state": "file",
"uid":
}
192.168.1.1 | SUCCESS => {
"changed": false,
"checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
"gid": ,
"group": "root",
"mode": "",
"owner": "root",
"path": "/tmp/ahahaa",
"size": ,
"state": "file",
"uid":
}
[root@node1 tmp]#
src本地文件路径
dest远程文件路径
script模块
在远程服务器上执行本地脚本
[root@node1 tmp]# ansible k8s -m script -a '/tmp/sh.sh'
192.168.1.2 | SUCCESS => {
"changed": true,
"rc": ,
"stderr": "Shared connection to 192.168.1.2 closed.\r\n",
"stdout": "caojiaoyue\r\n",
"stdout_lines": [
"caojiaoyue"
]
}
192.168.1.3 | SUCCESS => {
"changed": true,
"rc": ,
"stderr": "Shared connection to 192.168.1.3 closed.\r\n",
"stdout": "caojiaoyue\r\n",
"stdout_lines": [
"caojiaoyue"
]
}
192.168.1.1 | SUCCESS => {
"changed": true,
"rc": ,
"stderr": "Shared connection to 192.168.1.1 closed.\r\n",
"stdout": "caojiaoyue\r\n",
"stdout_lines": [
"caojiaoyue"
]
}
[root@node1 tmp]#
参考文档http://blog.51cto.com/liuzhengwei521/1895480