一、系统环境准备:首先我们得准备3台linux主机。
ansible:172.17.0.112 (centos7.x86_64) node1:172.17.0.102 (centos7.x86_64) node2:172.17.0.105 (centos7.x86_64)
二、创建统一的用户名(其实不同的也可以,这里我们未来方便) 1.useradd ssh 2.passwd ssh 创建ssh密码 3.切换到ssh用户下:su - ssh
4.在ansible服务端创建密匙:ssh-keygen -t rsa
5.进到相关目录下,cd /home/ssh/.ssh
6.将公匙传送到客户端上:
ssh-copy-id -i ~/.ssh/id_rsa.pub ssh@172.17.0.102 ssh-copy-id -i ~/.ssh/id_rsa.pub ssh@172.17.0.105
注意:同步过程需要输入yes和各自的root密码即可;此时可直接ssh root@172.17.0.102 就无密码登录上去啦!
7.最后,在用ssh直接登录下看看是不是不需要输入密码了
8.查看远程机器的authorized_keys文件,可以看到对应的变化:本地机器的公钥已经增加到远程机器的配置文件中了
cat /home/ssh/.ssh/authorized_keys
9.其中.ssh的文件权限为700,authorized_keys为600
10.配置ansible的主机清单,即把node1与node2主机添加到管理清单中
此处可跳转至ansible-playbook安装 :http://blog.51cto.com/13233089/1958032
三、Playbook实战: playbook是Ansible的配置,部署和编排的语言。 1、playbook的核心元素
hosts : playbook配置文件作用的主机 tasks: 任务列表 variables: 变量 templates:包含模板语法的文本文件 handlers :由特定条件触发的任务 roles :用于层次性、结构化地组织playbook。roles 能够根据层次型结构自动装载变量文件、tasks以及handlers等
2、playbook运行方式
ansible-playbook --check 只检测可能会发生的改变,但不真执行操作 ansible-playbook --list-hosts 列出运行任务的主机 ansible-playbook --syntax-check playbook.yaml 语法检测 ansible-playbook -t TAGS_NAME playbook.yaml 只执行TAGS_NAME任务 ansible-playbook playbook.yaml 运行
3、通过playbook安装管理redis服务
语法检查:
将要执行的主机:
执行: