命令检测:
在这里密码,端口都默认一样的
如果端口,密码不一样该怎么用
[root@m01 ~]#vim /etc/ansible/hosts nfs01 ansible_host=172.16.1.31 172.16.1.41 ansible_user=root ansible_password=123456 172.16.1.7 ansible_user=root ansible_password=654321 ansible_port=52113 # 命令执行 [root@m01 ~]#ansible all -m command -a "hostname" nfs01 | CHANGED | rc=0 >> nfs01 172.16.1.7 | CHANGED | rc=0 >> web01 172.16.1.41 | CHANGED | rc=0 >> backup 2.3.3 方法三:编写服务主机组信息编写服务主机组信息
[root@m01 ~]#vi /etc/ansible/hosts [ichn] nfs01 ansible_host=172.16.1.31 172.16.1.41 ansible_user=root ansible_password=123456 [web] 172.16.1.7 ansible_user=root ansible_password=123456 ansible_port=22命令检测
主机组所有名称可以用 all 代替
主机组所有名称之间可以用逗号隔开
[root@m01 ~]#ansible ichn,web -m command -a "hostname" nfs01 | CHANGED | rc=0 >> nfs01 172.16.1.7 | CHANGED | rc=0 >> web01 172.16.1.41 | CHANGED | rc=0 >> backup 2.2.4 方法四:编写服务主机子组信息编写服务主机子组信息
children:是固定的
命令检测
所有主机组,子组都可以用 all 来代替
所有主机组,子组都可以用 nfs 来代替
[root@m01 ~]#ansible nfs -m command -a "hostname" nfs01 | CHANGED | rc=0 >> nfs01 172.16.1.7 | CHANGED | rc=0 >> web01 172.16.1.41 | CHANGED | rc=0 >> backup可以单独启动其中一个子组
[root@m01 ~]#ansible nfs_server -m command -a "hostname" nfs01 | CHANGED | rc=0 >> nfs01 2.2.5 方法五:编写配置主机清单变量信息配置主机清单变量信息
[root@m01 ~]#vim /etc/ansible/hosts [nfs:vars] pass=123456 port=873 [nfs] 172.16.1.31 172.16.1.41 [nfs_client] 172.16.1.41 [nfs_client:vars] ansible_user=root ansible_password=123456命令检测
所有主机清单变量都可以用 all 来代替
可以用变量的主机组来代替
[root@m01 ~]#ansible nfs -m command -a "hostname" 172.16.1.31 | CHANGED | rc=0 >> nfs01 172.16.1.41 | CHANGED | rc=0 >> backup 2.4 ansible远程连接操作异常说明(1)查看主机清单配置文件是否正确
(2)利用SSH命令直接连接,连接不上查看有没有公钥 密码正不正确 指定用户正不正确 防火墙是否阻止
(3)远程管理一直报错,只要老的ansible远程会话存在
command – Execute commands on targets:对目标主机执行命令
Synopsis:模块详细说明
(1)模块多个参数要用空格分隔
(2)使用commad模块一些特殊符号信息不能使用,如果非要执行请使用shell模块
像变量$HOME和"<",">","|",";"和"&"将不起作用
Parameters:模块的参数
creates 在执行命令前,判断远程主机指定文件是否存在,如果存在,命令不执行
removes 在执行命令前,判断远程主机指定文件是否存在,如果存在,命令继续执行
free_form 在使用这个模块是, -a后面必须输入一个合法linux命令