文章目录

  • playbook介绍
  • 语法介绍
  • 示例一:检测用户
  • 示例二 : 安装httpd
  • 示例三 确保服务开机启动
  • 示例四 更改默认发布页
  • 实例五 配置火墙
  • 查看帮助文档 ansible-doc
  • 管理变量和事实
  • ansible 变量简介
  • 命名变量
  • 定义变量
  • 在 playbook 中定义变量


playbook介绍

playbook是ansible用于配置,部署,和管理被控节点的剧本。
通过playbook的详细描述,执行其中的一系列tasks,可以让远端主机达到预期的状态。playbook就像Ansible控制器给被控节点列出的的一系列to-do-list,而被控节点必须要完成。也可以这么理解,playbook 字面意思,即剧本,现实中由演员按照剧本表演,在Ansible中,这次由计算机进行表演,由计算机安装,部署应用,提供对外服务,以及组织计算机处理各种各样的事情

语法介绍

playbook由YMAL语言编写 yaml 格式通常以 yml 为扩展名,yaml 对于缩进量没有严格要求,()但是有两个基本原则:
1.处于同一层次结构中同一级别的数据元素必须具有相同的缩进量
2.如果项目属于其他项目的子项,其缩进量必须大于父项

示例一:检测用户

--- #开头三个破折号,文档的开始标记
- name: Check User #可选,但是建议使用
  hosts: all
  tasks: 
    - name: User
	  user:
	    name: zouhaiqiang666
	    uid: 1000
	    state: present
... #结尾三个省略号,结束标记(通常省略)

play 本身是一个键值对集合,同一 play 中的键应当使用相同的缩进量

ansible剧本批量安装软件 ansible剧本格式_html


执行结果:

ansible剧本批量安装软件 ansible剧本格式_html_02

示例二 : 安装httpd

1---
  2 - name: Setup Webserver
  3   hosts: webservers
  4   tasks:
  5     - name: Http Installed
  6       yum:
  7         name: httpd
  8         state: latest
  9 ...

ansible剧本批量安装软件 ansible剧本格式_ansible剧本批量安装软件_03


执行结果:

ansible剧本批量安装软件 ansible剧本格式_Ansible_04

示例三 确保服务开机启动

1 ---
  2   - name: Set Webservers
  3     hosts: webservers
  4     tasks:
  5       - name: Install Apache
  6         yum:
  7           name: httpd
  8           state: latest
  9       - name: Enable Apache
 10         service:
 11           name: httpd
 12           state: started
 13           enabled: true
 14 ...

ansible剧本批量安装软件 ansible剧本格式_html_05


执行结果:

ansible剧本批量安装软件 ansible剧本格式_ansible剧本批量安装软件_06

示例四 更改默认发布页

10       - name: Change Index
 11         copy:
 12           src: index.html
 13           dest: /var/www/html/index.html

ansible剧本批量安装软件 ansible剧本格式_缩进_07


执行结果:

ansible剧本批量安装软件 ansible剧本格式_ansible剧本批量安装软件_08

实例五 配置火墙

10       - name: Configure firewall
 11         firewalld:
 12           service: http
 13           state: enabled
 14           permanent: yes
 15           immediate: yes

ansible剧本批量安装软件 ansible剧本格式_缩进_09


测试结果:

ansible剧本批量安装软件 ansible剧本格式_ansible剧本批量安装软件_10


ansible剧本批量安装软件 ansible剧本格式_ansible剧本批量安装软件_11

查看帮助文档 ansible-doc

ansible-doc -l #列出所有模块
ansible-doc yum #列出 yum 的用法和示例
# ansible-doc -s yum #终端中输出 yum 模块中各参数的用法

ansible剧本批量安装软件 ansible剧本格式_Ansible_12


其实我们常用的模块仅仅只占其中一小部分

如果要查看每个模块具体用法

ansible剧本批量安装软件 ansible剧本格式_html_13


ansible剧本批量安装软件 ansible剧本格式_缩进_14


官方文档Ansible常用模块详解.

管理变量和事实

ansible 变量简介

变量可能包含下面这些值:
要创建的用户、
要安装的软件包、
要重启的服务、
要删除的文件、
要从互联网检索的文档

命名变量

变量名称必须以字母开头,并且只能含有字母、数字和下划线

错误

正确

web server

web_server

westos.file

remote_file

1st file

file1

定义变量

三个范围级别
全局范围:从命令行或 ansible 配置设置的变量
play 范围:在 play 和相关结构中设置的变量
主机范围:由清单、事实收集或注册的任务,在主机组和个别主机上设置的变量
如果多个级别上定义了相同名称的变量,优先采用级别最高的变量,窄范围优先于广范围

在 playbook 中定义变量

ansible剧本批量安装软件 ansible剧本格式_缩进_15


ansible剧本批量安装软件 ansible剧本格式_缩进_16


ansible剧本批量安装软件 ansible剧本格式_ansible剧本批量安装软件_17