本文内容已过期
有关ansible安装可参考这里
1.环境
192.168.61.41 node1
192.168.61.42 node2
192.168.61.43 node32.安装Ansible
node1将做为控制主机(ansiblecontrol),下面在node1上安装Ansible。
配置 EPEL源:
yum install epel-release安装ansible:
yum install ansible查看安装版本:
ansible --version
ansible 2.2.1.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides3.熟悉配置
Ansible的配置文件是INI格式的,前面的ansible --version打印了配置文件的位置/etc/ansible/ansible.cfg。
实际上ansible命令会按照预先设定的顺序查找配置文件:
ANSIBLE_CONFIG环境变量指定的位置- 当前目录中的
./ansible.cfg - 用户家目录中的
~/ansible.cfg /etc/ansible/ansible.cfg
另外大多数的ansible配置参数都可以设置ANSIBLE_开头的环境变量进行配置,设置了这些环境变量配置之后,就可以在playbook中直接使用。
下面我们来熟悉一下ansible.cfg中的常用配置:
- [defaults]小节
- inventory 资源清单(ansile连接和管理的主机列表)文件的位置, 默认值
/etc/ansible/hosts - library 存放Ansible模块的目录。Ansible对被管理主机的操作都使用一小段代码来执行,这小段代码就是Ansible模块,默认值
/usr/share/ansible。配置多个目录的话可以以冒号:隔开,同时会检查palybook同目录下的./library目录 - become_user 设置默认执行命令的用户,默认值是
root。在playbook中可以重新设置这个参数 - remote_port 指定Ansible连接和管理主机节点的端口,默认值22。
- inventory 资源清单(ansile连接和管理的主机列表)文件的位置, 默认值
4.配置控制节点到各节点SSH无密访问
在各节点上创建ansible用户,并设置该用户的密码:
useradd -d /var/lib/ansible ansible
passwd ansible确保各节点上ansible用户具有sudo权限:
echo "ansible ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ansible切换到ansible用户,生成该用户的ssh秘钥对:
su ansible
ssh-keygen
ls ~/.ssh
id_rsa id_rsa.pub接下来下发密钥,ji8ang公钥id_rsa.pub拷贝到各节点:
ssh-copy-id ansible@node1
ssh-copy-id ansible@node2
ssh-copy-id ansible@node35.使用ping模块进行连通测试
修改/etc/ansible/ansible.cfg:
[defaults]
sudo_user=ansible
remote_user=ansible修改资产清单文件/etc/ansible/hosts:
[k8s-nodes]
node1
node2
node3
[ceph-nodes]
node1
node2
node3我们将ansible连接和管理的主机分成了两组k8s-nodes和ceph-nodes。
下面我们使用ping模块对受管主机进行ping操作:
ansible node2 -m ping
node2 | SUCCESS => {
"changed": false,
"ping": "pong"
}可以对整组主机进行操作:
ansible k8s-nodes -m ping
node2 | SUCCESS => {
"changed": false,
"ping": "pong"
}
node1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
node3 | SUCCESS => {
"changed": false,
"ping": "pong"
}6.使用command模块执行远程命令
ansible all -m command -a "date"
node3 | SUCCESS | rc=0 >>
Wed Apr 12 21:11:39 CST 2017
node2 | SUCCESS | rc=0 >>
Wed Apr 12 21:11:39 CST 2017
node1 | SUCCESS | rc=0 >>
Wed Apr 12 21:11:39 CST 20177.命令帮助
使用ansible-doc -l可以列出Ansible支持的模块。
使用ansible-doc 模块名称将显示模块的介绍和使用示例,例如: