1、# 安装软件
创建一个名为/home/devops/ansible/packages.yml的剧本
- 在dev, prod 和 test 主机组中安装 php 和 mariadb 软件包
- 在dev 主机组中安装 Development Tools 包组
- 升级dev主机组中主机的所有软件包
2、多剧本练习
1> 新建一个playbook,/home/devops/ansible/internet.yml
第一个剧本名为Enable internet services,受管主机为serverb.lab.example.com
2> 安装软件firewalld、httpd、mariadb-server、php和php-mysqlnd的最新版。
3> 确保服务firewalld服务处于enabled和running状态,并允许访问httpd服务。
4> 确保httpd和Maria服务处于enabled和running状态。
5> web主页index.php内容为
echo "Hello Ansible!";
?>
6> 第二个剧本名为 Test internet web server
7> 利用uri模块从控制节点测试serverb上运行web服务,检查返回状态代码200.
8> 验证internet.yml playbook的语法。
9> 使用ansible-playbook 运行剧本。
可以查看帮助例子 ansible-doc yum
[devops@workstation ansible]$ vim /home/devops/ansible/packages.yml
---
- name: play1 (自己随便定义)
hosts: dev,prod,test
tasks:
- name: install php mariadb (任务按照题目写)
yum: (查看帮助ansible-doc yum ,此处用变量方式写)
name: "{{ packages }}"
vars:
packages:
- php
- mariadb
- name: play2
hosts: dev
tasks: (此处为安装包组,有例子可以查看)
- name: install the 'Development tools' package group
yum:
name: "@^Development tools"
state: present
- name: upgrade all packages
yum:
name: '*'
state: latest
检查有没有语法问题
然后运行:ansible-playbook XXXXXXX
[devops@workstation ansible]$ ansible-playbook packages.yml
PLAY [play1] **************************************************************************************************************************************************************
TASK [Gathering Facts] ****************************************************************************************************************************************************
ok: [serverc]
ok: [serverd]
ok: [serverb]
TASK [install php mariadb] ************************************************************************************************************************************************
changed: [serverd]
changed: [serverb]
changed: [serverc]
PLAY [play2] **************************************************************************************************************************************************************
TASK [Gathering Facts] ****************************************************************************************************************************************************
ok: [serverc]
TASK [install the 'Development tools' package group] **********************************************************************************************************************
fatal: [serverc]: FAILED! => {"changed": false, "msg": "No group ^gnome-desktop-environment available.", "results": []}
PLAY RECAP ****************************************************************************************************************************************************************
serverb : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
serverc : ok=3 changed=1 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
serverd : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
多剧本练习:
创建一个多剧本;
[devops@workstation ansible]$ vim /home/devops/ansible/internet.yml
---
- name: Enable internet services
hosts: serverb
tasks:
- name: install software
yum:
name:
- firewalled
- httpd
- mariadb-server
- php
- php-mysqlnd
state: latest
- name: start firewall
servers:
name: firewalled
state:
...........未完