ansible远程管理服务器的工具软件
1、基于Python语言实现,由Paramiko和PyYAML两个关键模块构建。
2、安装
yum install epel-release -y
yum install ansible -y
#如果有libselinux-python就不执行下面的命令了。
#rpm -qa |grep libselinux-python
#yum install libselinux-python -y
其他所有机器:
#rpm -qa |grep libselinux-python
#yum install libselinux-python -y
3、配置文件
/etc/ansible/hosts
/etc/ansible/ansible.cfg 配置文件 74行或者374行注释掉
4、命令格式
ansible oldboy -m command -a "free -m"
模块名 参数 执行命令
5、使用anseble命令时解决密钥的问题
一种是提前执行sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 172.16.1.7后再执行anseble
另一种是
在/etc/ansible/hosts添加:
[oldboy_pass]
172.16.1.7 ansible_ssh_user=root ansible_ssh_pass=123456 ansible_ssh_port(端口)=
172.16.1.8 ansible_ssh_user=root ansible_ssh_pass=123456 ansible_ssh_port(端口)=
/etc/ansible/ansible.cfg 配置文件 74行或者374行注释掉
6、ansible命令参数
-m MODULE_NAME, 模块名字,默认command
-a MODULE_ARGS, 模块参数
-f FORKS 并发进程数,默认5个。
-i INVENTORY(default=/etc/ansible/hosts)指定主机列表文件
7、nsible模块查看和帮助
查找模块
ansible-doc -l #模块就Linux命令了。
查看某个模块的具体参数帮助
ansible-doc -s command #Linux命令参数
8、ansible模块
ansible-doc -s command
argv
允许用户以列表和字符串的形式提供命令。只能提供字符串或列表形式,不能提供
chdir
在运行该命令之前,请切换到此目录
[root@m01 ~]# ansible oldboy -m command -a "pwd chdir=/etc"
creates
文件名或(从2.0开始)glob模式。如果它已经存在,这个步骤将不会运行
参数:creates=/etc 相当于条件测试 [ -e /etc ]||pwd 和下面removes相反
[root@m01 ~]# ansible oldboy -m command -a "pwd creates=/etc"
removes
文件名或(从2.0开始)glob模式。如果已经存在,则运行此步骤*
参数:removes=/root 相当于条件测试 [ -e /root ]&&ls /root
ansible oldboy -m command -a "ls /root removes=/root"
stdin
将命令的stdin直接设置为指定的值。
warn
如果command_warnings在ansible中打开。cfg,如果设置为“no”,不要警告此特定行
参数:warn=False 忽略警告
[root@m01 ~]# ansible oldboy -m command -a "chmod 000 /etc/hosts warn=False"