Ansible学习笔记12

playbook:

playbook(剧本):是ansible用于配置、部署和管理被控节点 的剧本 ,用于Ansible操作的编排。

使用的是yaml格式,(saltstack、elk、docker、docker-compose、k8s都会使用到yaml格式。)

这种格式对我们运维的人员还是非常重要的。

YAML格式:

以.yaml结尾或者yml结尾。

1)文件的第一行以---开始,表明YAML文件的开始;(可选)

2)以#开头表示注释;<!-- -->

3)列表中的所有成员都开始于相同的缩进格式,并以使用一个"-"作为开头。

4)一个字典是由简单的键: 值 的形式组成(冒号后面必须有一个空格。)

注意的是:写这种文件不要使用tab键,都必须使用空格。我们正常使用两个空格。

看一个示例:

字典和列表的格式:

示例:

bash 复制代码
[root@localhost playbook]# cat example.yaml
---
- hosts: group1
  remote_user: root
  tasks:
  - name: ensure apache is at the latest version
    yum: name=httpd,httpd-devel state=latest

  - name: write the apache config file
    copy: src=/etc/httpd/conf/httpd.conf dest=/etc/httpd/conf/httpd.conf

    notify:
    - restart apache

  - name: ensure apache is running (and enable it at boot)
    service: name=httpd state=started enabled=yes

  handlers:
    - name: restart apache
      service: name=httpd state=restarted

说明:

1)tasks任务。

2)安装httpd;

3)copy模块,同步配置文件;

4)notify是配置文件修改之后,调用restart apache的handlers:这种格式要留心下。

bash 复制代码
[root@localhost ~]# ansible-playbook /etc/ansible/playbook/example.yaml

PLAY [group1] *************************************************************************************

TASK [Gathering Facts] ****************************************************************************
ok: [192.168.17.106]
ok: [192.168.17.105]

TASK [ensure apache is at the latest version] *****************************************************
changed: [192.168.17.105]
changed: [192.168.17.106]

TASK [write the apache config file] ***************************************************************
changed: [192.168.17.105]
changed: [192.168.17.106]

TASK [ensure apache is running (and enable it at boot)] *******************************************
changed: [192.168.17.105]
changed: [192.168.17.106]

RUNNING HANDLER [restart apache] ******************************************************************
changed: [192.168.17.106]
changed: [192.168.17.105]

PLAY RECAP ****************************************************************************************
192.168.17.105             : ok=5    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
192.168.17.106             : ok=5    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

说明:绿色表示的没有更新。黄色的表示有更新。红色表示的failed。

步骤和错误都是可视化。这个是playbook的一个优点。

playbook有个专业术语:幂等性。

幂等性的概念:一次或多次请求某一个资源本身应该具有同样的结果。(网络超时等问题除外。)

1)出错不用推导重做。

2)剧本执行一百次,结果只有一个。

3)避免了万一出错,需要重来的问题。我们可以先写个剧本,万一某一步出错,我们不需要推导重来。

相关推荐
无奈笑天下2 小时前
银河麒麟上nproc命令教程详解
linux·运维·服务器
Rabitebla5 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
坤坤子吖10 小时前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
AI_Gump10 小时前
Harness篇|DeepSeek Harness 上手机:五条安卓移植路线与 App 内 Linux 拆解
android·linux·人工智能·智能手机·deepseek
星恒随风11 小时前
MySQL 从零入门(六):复合查询详解——多表查询、自连接、子查询与 UNION
linux·服务器·数据库·mysql
少司府11 小时前
嵌入式入门篇(二):初识STM32F103ZET6
linux·python·stm32·单片机·嵌入式硬件·mcu·嵌入式软件
无足鸟ICT12 小时前
【RHCA+】IO调度算法
linux·服务器
wacsii12 小时前
【Linux进程(四)】命令行参数与环境变量
linux·服务器
无奈笑天下12 小时前
银河麒麟上lsblk命令教程详解
linux·运维·服务器·数据库
科研邪修法14 小时前
培训PDF保护配置:把需求转换成可验收权限
linux·服务器·网络