他是基于模块工作的,本身没有批量部署的能力。
真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。
格式
ansible 主机ip| 域名|组名|别名 -m ping|copy|... '参数'
--ping模块
# 查看有没有安装epel
# yum list installed|grep epel
# 安装ansible
# yum -y install ansible
# 查看ansible的版本
# ansible --version
查找ansible的配置文件
# find /etc/ -name "*ansible*"
/etc/ansible
/etc/ansible/ansible.cfg
设置免密
# ssh-keygen
# ls ./.ssh/
id_rsa id_rsa.pub
给s0和s1设置免密登录
# ssh-copy-id -i 192.168.1.17
# ssh-copy-id -i 192.168.1.18
# vim /etc/ansible/hosts
[group01]
192.168.1.17
192.168.1.18
ping group01的IP
[root@bb ~]# ansible 192.168.1.17 -m ping
192.168.1.17 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
[root@bb ~]# ansible group01 -m ping
192.168.1.17 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
192.168.1.18 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
--hostname模块
--file模块
在group01中的主机的 /tmp/中创建abc文件
-m 表示调用模块
state=directory表示当前的状态被设置为“目录”
[root@bb ~]# ansible group01 -m file -a 'path=/tmp/abc state=directory'
192.168.1.17 | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": true,
"gid": 0,
"group": "root",
"mode": "0755",
"owner": "root",
"path": "/tmp/abc",
"size": 6,
"state": "directory",
"uid": 0
}
192.168.1.18 | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": true,
"gid": 0,
"group": "root",
"mode": "0755",
"owner": "root",
"path": "/tmp/abc",
"secontext": "unconfined_u:object_r:user_tmp_t:s0",
"size": 6,
"state": "directory",
"uid": 0
}
# ls -l /tmp/
总用量 4
drwxr-xr-x. 2 root root 6 8月 16 11:43 abc
--copy模块
(管理机)
# ls
anaconda-ks.cfg mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
# mv mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz mysql57.tar.gz
# ls
anaconda-ks.cfg mysql57.tar.gz
# 把mysql57.tar.gz传到group02组中的主机中
# ansible group02 -m copy -a 'src=./mysql57.tar.gz dest=~'
other | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": true,
"checksum": "ca7c056f43922133ac4bfa788849172ff124ce47",
"dest": "/root/mysql57.tar.gz",
"gid": 0,
"group": "root",
"md5sum": "d7c8436bbf456e9a4398011a0c52bc40",
"mode": "0644",
"owner": "root",
"secontext": "system_u:object_r:admin_home_t:s0",
"size": 694785800,
"src": "/root/.ansible/tmp/ansible-tmp-1723791895.72-3029-205251780527035/source",
"state": "file",
"uid": 0
}
192.168.2.111 | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": true,
"checksum": "ca7c056f43922133ac4bfa788849172ff124ce47",
"dest": "/root/mysql57.tar.gz",
"gid": 0,
"group": "root",
"md5sum": "d7c8436bbf456e9a4398011a0c52bc40",
"mode": "0644",
"owner": "root",
"secontext": "system_u:object_r:admin_home_t:s0",
"size": 694785800,
"src": "/root/.ansible/tmp/ansible-tmp-1723791895.62-3027-254129236082512/source",
"state": "file",
"uid": 0
}
192.168.2.110 | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": true,
"checksum": "ca7c056f43922133ac4bfa788849172ff124ce47",
"dest": "/root/mysql57.tar.gz",
"gid": 0,
"group": "root",
"md5sum": "d7c8436bbf456e9a4398011a0c52bc40",
"mode": "0644",
"owner": "root",
"secontext": "system_u:object_r:admin_home_t:s0",
"size": 694785800,
"src": "/root/.ansible/tmp/ansible-tmp-1723791895.71-3026-134059210870560/source",
"state": "file",
"uid": 0
}
# 验证(被管理)
[root@s0 ~]# ls
aaa anaconda-ks.cfg mysql57.tar.gz
[root@s1 ~]# ls
aaa anaconda-ks.cfg mysql57.tar.gz
[root@s2 ~]# ls
aaa anaconda-ks.cfg mysql57.tar.gz