准备3个centos7虚拟机:
ansible_host:192.168.86.137
ansible_client1:192.168.86.138
ansible_client2:192.168.86.139
ansible配置
ansible_host(192.168.86.137)上安装ansible:
#yum install epel-release -y
#yum install ansible
#ansible --version
anisble命令语法: ansible [-i 主机文件] [-f 批次] [组名] [-m 模块名称] [-a 模块参数]
#vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.86.137 ansible_host
192.168.86.138 ansible_client1
192.168.86.139 ansible_client2
定义主机清单:
#cd /etc/ansible
#ll
#cp -f host hosts.bak 备份
#ll
#cat /dev/null > hosts
#vim hosts 写入主机ip,[webserver]和[manager]都是分组,可以不写,这样不方便管理
[webserver]
192.168.86.138
192.168.86.139
#本机可以自己管理自己
[manager]
192.168.86.137
基于ssh免密登录:
本地生成rsa密钥对
#ssh-keygen
上传到被管理端:
#ssh-copy-id root@192.168.86.138
#ssh-copy-id root@192.168.86.139
管理端运行命令测试:
ping模块检查网络连通性
#ansible -i /etc/ansible/hosts 'web-server' -m ping
安装apache的playbook
1.YAML文件特点:
以#为注释符
以.yaml或.yml结尾
以—开始,以…结束
2.基本语法:
大小写敏感
使用缩进表示层级关系
缩进时使用tab键还是使用空格要统一,建议使用空格
相同层级元素必须左侧对齐
3.字符串:
可以不使用引号,使用单引号双引号也没错
若一行写不下,可以进行拆分,写法如下
long_line: |
example 1
example 2
4列表:
定义:以短横线开头空格具体的值
- red
- green
- blue
5.字典:
key冒号(:)值(value)
name:using ansible
code:D1234
6.验证yaml语法:
安装
#yum install python2-pip
#pip install pyyaml
#vi myyaml.yml
#python -c ‘import yaml,sys;print yaml.safe_load(sys.stdin)’<myyaml.yml
7.play的定义:
每一个play都是以短横杠开始的
每一个play都是一个yaml字典格式
ansible-playbook -i hosts myplaybook.yml --step
ansible变量
变量命名:由字母,下划线和数字组成,必须以字母开头