Ansible使用笔记(Redhat 6),ansibleredhat


Ansible笔记

源码安装
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
ansible控制并发数
当被控制机很多的时候,可能需要控制并发数,以保证命令的到达。
在命令的后面添加上  -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'

相关内容

    暂无相关文章