Ansible剧本的使用及简单演示(三)
一.playbooks编写说明
1)Playbooks 是 Ansible的配置,部署,编排语言.他们可以被描述为一个需要希望远程主机执行命令的方案,或者一组IT程序运行的命令集合.playbook中,当一个任务没有正常结束,那么其返回值不是0,那么后面的所有的操作不再执行
编写playbook需要用到的组件
1. Iventory file
2. Moudles
3. actions(command)
2).Playbooks 的格式是YAML,语法做到最小化,意在避免 playbooks 成为一种编程语言或是脚本,但它也并不是一个配置模型或过程的模型.
使用yaml语法时需要注意的问题:
1.所有的 YAML 文件(无论和 Ansible 有没有关系)开始行都应该是 —. 这是 YAML 格式的一部分, 表明一个文件的开始
2.列表中的所有成员都开始于相同的缩进级别, 并且使用一个 "- " 作为开头(一个横杠和一个空格
3.一个字典是由一个简单的 键: 值 的形式组成(这个冒号后面必须是一个空格
4.Ansible 使用 “{{ var }}” 来引用变量. 如果一个值以 “{” 开头, YAML 将认为它是一个字典, 所以我们必须引用它。
二.playbook的构成
- tasks 任务
- variables 变量
- templates 模版
- handlers 处理器
- roles 角色
三.Ansible剧本常用命令
1 .对剧本语法检测:
ansible-playbook --syntax-check /root/ansible/httpd.yaml
2.-C模拟执行剧本:
ansible-playbook -C /root/ansible/httpd.yaml
3.执行剧本:
ansible-playbook /root/ansible/httpd.yaml
四.Ansible剧本实例
安装httpd并启动
第一步: 编写一个httpdin.yaml剧本,剧本内容如下
复制代码
[root@yxx ~]# vim httpdin.yaml
- hosts: all
tasks:
- name: install httpd
yum: name=httpd state=present
- name: start httpd
service: name=httpd state=started
第二步:语法检测
检测没有问题
[root@yxx~]# ansible-playbook --syntax-check httpdin.yaml
playbook: httpdin.yaml
第三步:模拟执行剧本
[root@yxx ~]# ansible-playbook -C httpdin.yaml
PLAY [all] *********************************************************************************************************************
TASK [Gathering Facts] *********************************************************************************************************
ok: [10.220.5.139]
ok: [10.220.5.138]
TASK [install httpd] ***********************************************************************************************************
ok: [10.220.5.138]
changed: [10.220.5.139]
TASK [start httpd] *************************************************************************************************************
changed: [10.220.5.139]
ok: [10.220.5.138]
PLAY RECAP *********************************************************************************************************************
10.220.5.138 : ok=3 changed=0 unreachable=0 failed=0
10.220.5.139 : ok=3 changed=2 unreachable=0 failed=0
第四步:执行剧本
经过上面的模拟执行,并不会真的执行脚本,下面我们来进行真正的执行
复制代码
[root@yxx~]# ansible-playbook httpdin.yaml
PLAY [all] *********************************************************************************************************************
TASK [Gathering Facts] *********************************************************************************************************
ok: [10.220.5.138]
ok: [10.220.5.139]
TASK [install httpd] ***********************************************************************************************************
ok: [10.220.5.138]
changed: [10.220.5.139]
TASK [start httpd] *************************************************************************************************************
ok: [10.220.5.138]
changed: [10.220.5.139]
PLAY RECAP *********************************************************************************************************************
10.220.5.138 : ok=3 changed=0 unreachable=0 failed=0
10.220.5.139 : ok=3 changed=2 unreachable=0 failed=0
第五步:检查是否已经安装并启动成功
执行表名httpd安装并启动成功
[root@yxx ~]# ansible all -m shell -a "ss -tnl | grep 80"
10.220.5.139 | SUCCESS | rc=0 >>
LISTEN 0 128 :::80 :::*
10.220.5.138 | SUCCESS | rc=0 >>
LISTEN 0 128 :::80 :::*
经过上面的五步,就可以安装任意软件及启动了,前提是你需要配置好你的yum源。你来试一下安装nginx吧!