目录
- 核心元素
- 基本组件
- 举例
- 命令行也 是可以创建文件的
- 编辑nginx.yml
- 运行前三部曲
核心元素
Playbook的核心元素:
Hosts
:主机组;
Tasks
:任务列表;
Variables
:变量,设置方式有四种;
Templates
:包含了模板语法的文本文件;
Handlers
:由特定条件触发的任务;
基本组件
Playbooks配置文件的基础组件:
Hosts
:运行指定任务的目标主机
remote_user
:在远程主机上执行任务的用户;
sudo_user:
通常用于表示在运行特定任务或命令时所使用的超级用户(superuser)或特权用户
tasks
:任务列表
模块,模块参数
:
格式:
(1) action: module arguments
(2) module: arguments
注意:shell和command模块后面直接跟命令,而非key=value类的参数列表;
handlers
:任务,在特定条件下触发;接收到其它任务的通知时被触发;
(1) 某任务的状态在运行后为changed时,可通过“notify”通知给相应的handlers;
(2) 任务可以通过“tags“打标签,而后可在ansible-playbook命令上使用-t指定进行调用;
举例
① 定义playbook
先创建文件
命令行也 是可以创建文件的
# 创建文件
touch nginx.yml
# 使用vi 或者vim 进行编辑
vim nginx.yml
编辑nginx.yml
---
- hosts: webremote_user: roottasks:- name: install nginxyum: name=nginx state=present- name: copy nginx.confcopy: src: /tmp/nginx.conf dest: /etc/nginx/nginx.conf backup: yesnotify: reload # 当 nginx.conf 发生改变时,通知给相应的 handlerstags: reloadnginx # 打标签- name: start nginx serviceservice: name: nginx state: startedtags: startnginx # 打标签handlers: # 请确保这一行的缩进是一致的- name: reloadservice: name: nginx state: restarted # 为了在进程中能看出来
注意缩进 注意缩进 注意缩进
运行前三部曲
# 检查错误
ansible-playbook nginx.yml --syntax-check# 列出所有任务
ansible-playbook nginx.yml --list-task# 列出在那些机器执行
ansible-playbook nginx.yml --list-hosts# 运行
ansible-playbook nginx.yml
写完了以后,我们就可以运行了:
本章完结