Ansible Playbook 部署Apache

Ansible Playbook
playbook 是由一个或多个模块组成的,使用用多个不同的模块,完成一件事情。
playbook 是通过yaml 语法 识别描述的状态文件,扩展名是yaml
yaml 语法三要素
缩进
yaml 使用一个固定的缩进风格表示层级,每个缩进由两个空格组成,不能使用tab键。(默认一个tab键,等于4个空格),我们可以修改vim (.vimrc模板文件,默认为空) 来改变tab的缩进。
cd && vim .vimrc


冒号
以冒号结尾的除外其他所有冒号后面,必须有空格。
短横线
表示列表项,使用一个短横线加一个空格多个项使用同样的缩进级别作为同一列表。
+++++++++++++++++++++++++++
playbook的核心元素
hosts:主机清单
tasks:任务
vars:变量
handlers:特定条件触发的任务
template:包含了模板语法的文本文件


+++++++++++++++++++++++++++++++++++

案例一: ansible playbook 部署Apache:
ansible 主机:172.16.1.61 m01
web01 主机:172.16.1.7 web01

一、先要配置免密钥登录
在172.16.1.61 m01 上面操作:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #这条命令不用一直按回车,就能生成密钥对文件了。大写P
ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.1.7
测试ssh免密钥登录:


+++++++++++++++++++++++
二、安装ansible 172.16.1.61 m01 上安装
yum install epel-release -y
yum install ansible -y
三、编辑ansible hosts 文件
vim /etc/ansible/hosts
在文件的最后面添加,


四、编写playbook 文件
创建存放 playbook文件的目录
mkdir -p /etc/ansible/ansible_playbook
cd /etc/ansible/ansible_playbook
vim apache.yaml


ansible-playbook 命令的常用选项:
ansible-playbook [option] filename
常用选项:
-C #模拟运行一次。
--list-hosts #列出剧本主机清单
--list-tags #列出剧本标记
--list-tasks #列出剧本任务
--syntax-check #检查语法
ansible-playbook --syntax-check apache.yaml


根据上面的报错提示,修改apache.yaml 。


重新执行语法检查:cd /etc/ansible/ansible_playbook
ansible-playbook --syntax-check apache.yaml


模拟运行: 
cd /etc/ansible/ansible_playbook && ansible-playbook -C apache.yaml


直接执行:ansible-playbook apache.yaml


客户端检查:

++++++++++++++++++++++++++++++++++
172.16.1.7 web01 虽然Apache 安装成功了,但是并不是我们实际情况中需要的 Apache 配置文件,这时就需要我们先把Apache配置文件修改好,再推送给客户端。
在本地(ansible主机上)安装一个apache,先修改好配置文件,再推送过去。

在ansible 目录下面创建一个 conf 目录,用于专门存放日志文件
mkdir -p /etc/ansible/ansible_playbook/conf
cd /etc/ansible/ansible_playbook/conf
cp /etc/httpd/conf/httpd.conf .
比如,修改端口。
sed -i 's#Listen 80#Listen 8080#g' httpd.conf
改完之后,把这个配置文件做到剧本中。
++++++++++++++++ 修改 apache.yaml
vim /etc/ansible/ansible_playbook/apache.yaml

语法检查:


如果这样直接执行(ansible-playbook apache.yaml)了,httpd服务根本就没有重启,配置文件也没有生效。




还需要重新修改 apache.yaml ,添加一个服务监控项。
cd /etc/ansible/ansible_playbook && vim apache.yaml


保存,退出。
执行:cd /etc/ansible/ansible_playbook && ansible-playbook apache.yaml

查看监听端口:




+++++++++++++++ END ++++++++++++++++++++