1、# 安装软件
创建一个名为/home/devops/ansible/packages.yml的剧本
- 在dev, prod 和 test 主机组中安装 php 和 mariadb 软件包
- 在dev 主机组中安装 Development Tools 包组
- 升级dev主机组中主机的所有软件包
vim /home/devops/ansible/packages.yml
---
- name: play 1
hosts: dev,prod,test
tasks:
- name: install php and mariadb
yum:
name: "{{ packages }}"
vars:
packages:
- php
- mariadb
- name: play 2
hosts:dev
tasks:
-name: install the 'Development tools' packages group
yum:
name:"@Development tools"
state: present
- name: upgrade all packages
yum:
name: '*'
state: latest
检查是否有问题:
ansible-playbook packages.yml
cd ansible/
ls
adhoc.sh ansible.cfg index.html inventory lab1.yml roles test1.tar.gz test1.yml test.sh user1.ym;
vim packages.yml
vim lab2.yml
使用列表循环来装
---
- name: play 1
hosts: localhost
tasks:
- name: install php and mariadb
yum:
name:
- php
- mariadb
验证语法:
ansible-playbook lab2.yml --syntax-check
执行:
ansible-playbook lab2.yml
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 运行剧本。
1.通过ssh连接
ssh devops@workstation
vim ~/.vimrc
autocmd FileType yaml setlocal at ts=2 sw=2 et
cd ansible/
2.新建剧本
vim /home/devops/ansible/internet.yml
3.按照题目要求进行配置
---
- name: Enable internet services
hosts: serverb
tasks:
- name: install software
yum:
name:
- firewalld
- httpd
- mariadb-server
- php
- php-mysqlnd
state: latest
- name: start firewall
service:
name: firewalld
state: started
enabled: yes
- name: firewall rule
firewalld:
service: http
permanent: yes
permanent: yes
immediate: yes
state: enabled
- name: start httpd
service;
name;httpd
state: started
enabled: yes
- name: index.php
copy:
src: files/index.php
dest: /var/www.html/index.php
- name: Test internet web server
hosts: localhost
tasks:
- name: test web server
uri:
url: http://serverb/index.php
return_content: yes
status_code: 200
4.验证语法:
ansible-playbook internet.yml --syntax-check
5.执行:
ansible-playbook internet.yml
6.报错:
mkdir files
vim files/index.php
<?php
echo "Hello Ansible";
?>
7.在执行一次
ansible-playbook internet.yml
curl serverb
Hello Ansible!