目录
二、YAML(Yet Another Markup Language)
一、playbook的功能
playbook 是由一个或多个play组成的列表;Playbook 文件使用YAML来书写
二、YAML(Yet Another Markup Language)
YAML是一种表达资料序列的格式,类似XML
1、特点
可读性好 |
和脚本语言交互性好 |
易于实现 |
适用程序执行流梳理方式 |
可扩展性强 |
2、语法简介
在文件中用[---]开始(必写),在文件中用[...]结尾(可不写) |
次行一般书写文件内容 |
缩进严格、大小写敏感 |
key/value可以多行书写也可一行书写,一行书写用,隔开 |
value可以是个字符串,也可是list |
一个play需要包括name和tasks:name 是描述;tasks 是动作 |
一个name只能包含一个task |
扩展名称yml或者yaml |
3、YAML中的列表
[Linux,C++,Java,Python]
- Linux
- C++
- Java
- Python
4、YAML中的字典
字典作用:存放键值
写法一:
name:westos
age:12
jobs:linux写法二:{name: "we stos", age: "12", jobs: "linux"}
三、playbook执行命令
小示例:
(1)执行语法
ansible-playbook xxx.yml 参数
(2)常用参数
(3)测试
<-C>:预执行
ansible-playbook test.yml -C #预执行是否成功
<--syntax-check>:检测语法
ansible-playbook test.yml --syntax-check
<--list-hosts>/<--list-tags>/<--list-tasks>:列出hosts、tag、tasks
ansible-playbook test.yml --list-hosts #列出此剧本执行的主机
ansible-playbook test.yml --list-tags #列出此剧本的tags
ansible-playbook test.yml --list-tasks #列出此剧本的执行的动作
<--limit>:指定执行的远程主机
ansible-playbook test.yml --limit 172.25.254.152 -C
注意:一般剧本中都有自动执行的主机,通过--limit命令可以手动指定要执行的远程主机。但是,指定的主机必须包含在剧本的列表中,否则将会报错。
<-v>显示详细信息
ansible-playbook test.yml -v
<-v>参数表示显示执行playbook时的详细信息,v越多,显示的信息越详细。
四、Playbook的核心组件
name | 可写可不写,建议使用,多用于说明 |
hosts | 受控主机列表 |
tasks | 任务,用于选择执行部分代码 |
五、实验测试
实验一:向远程主机中部署apache
1 ---
2 - name: Apache server #项目名称
3 hosts: westos #要部署的主机
4 tasks: #任务
5 - name: install apache #子项目1
6 dnf: #模块
7 name: httpd #参数
8 state: latest
9 disable_gpg_check: yes
10 - name: start apache #子项目2
11 service: #模块
12 name: http #参数
13 state: started
14 enabled: yes
15
16 - name: firewalld setup #子项目3
17 firewalld: #模块
18 service: httpd #参数
19 permanent: yes
20 state: enabled
21 immediate: yes
22 zone: public
23
24 - name: create index #子项目4
25 lineinfile: #模块
26 path: /var/www/html/index.html #参数
27 line: "hello world"
28 create: yes
一般都是预执行没问题后才会执行剧本:
ansible-playbook apache.yml -C
实验二:
答案:
建立用户及用户组
建立文件及目录
实验三:
安装好vsftpd服务,并且允许匿名用户访问。
答案:
本章总结:
1、由于palybook对缩进要求很严,所以先设定一下vim的编辑配置,方便书写playbook语句。
测试:
以下设定仅对于“yaml”文件生效,不对全局生效