git clone git://github.com/ansible/ansible.git --recursive
安装之前先把下载的 ansible 目录权限设置为可读写可执行: chmod -R 777 ansible/ 然后开始安装(启动): source ansible/hacking/env-setup 安装过程会有报错,不用管 安装完毕之后,会在 ansible 目录下产生一个 examples 目录,里面有 ansible.cfg 配置文件。 在 /etc/ 目录中创建文件夹 /ansible/ 然后发上面的 ansible.cfg 配置文件复制到 /etc/ansible/ 下面。 验证安装:ansible --version
ssh-keygen -t rsa 后面直接敲入三次回车。就生成了公钥和密钥,目录在 /root/.ssh/ 中
将控制机的公钥 /root/.ssh/id_rsa.pub 复制到 被控制机的 /root/.ssh/ 中,并且重命名为“authorized_keys”没有后缀 验证公钥是否有效: 在控制机中直接输入 ssh root@被控制机IP 能直接进入被控制机的控制台,不需要输入密码。 好处是:被控制机的密码不会暴漏在配置文件
创建一个hosts文件,放入到控制机的 /etc/ansible/ 中。 内容参考如下(没有===): ============================================= 192.168.1.225 [webservers] 192.168.1.225 ============================================= 如果不能将公钥上传到被控制机,则格式如下: ============================================= 192.168.1.225 ansible_ssh_pass='root的密码' [webservers] 192.168.1.225 192.168.1.[4:9] 192.168.1.1[3:9] [webservers:vars] ansible_ssh_pass='上面几个主机的通用密码' [newGroup:children] webservers ============================================= 写在最上面的是被控制的主机的IP,然后有一个 webservers 组,可以将同一类型的主机放在同一个组中。 newGroup 的子组包含 webservers 然后使用 ansible 的 ping 命令来测试联通性:(出现了 SUCCESS 代表成功) ansible 192.168.1.225 -m ping 然后测试组能否被联通:(出现了 SUCCESS 代表成功) ansible webservers -m ping
需要将文件下发到被控制机:(需要先进入到控制机的文件的目录中) ansible 被控制机IP或配置的主机组 -m copy -a 'src=test.txt dest=/root/test.txt owner=root group=root mode=644 backup=yes' -o
ansible 192.168.1.3 -m shell -a '要执行的命令' -o
当被控制机很多的时候,可能需要控制并发数,以保证命令的到达。 在命令的后面添加上 -f 数字 即可,如下: ansible 192.168.1.3 -m shell -a '要执行的命令' -f 5 -o
查看所有的信息: ansible webservers -m setup 只查看ipv4信息: ansible webservers -m setup -a 'filter=ansible_all_ipv4_addresses'
文章来源: Ansible使用笔记(Redhat 6)