运维自动化工具ansible(4)playbook的简介,构成,编写,vim设定技巧以及常用参数

1.playbook的功能

playbook是由一个或者多个play组成的列表
playbook文件使用yaml来写的

2.YAML

yaml是一种表达资料序列的格式,类似于xml

特点:

可读性好
和脚本语言交互性好
易于实现
适用程序执行流梳理方式
可扩展性强

语法简介:

文件中用[ - - - ]开始,[…]结尾
严格缩进 大小写敏感
key/value可以多行书写也可以一行书写,一行书写用,隔开

一个play需要包括name和tasks
name是描述 tasks是动作
扩展名称是yml或者yaml

yaml列表,yaml字典
列表前加 -
字典的作用是存放键值,不加 -

playbook的核心组件

name:多用于说明
hosts:受控主机列表
tasks:任务,用于选择执行部分代码

3. playbook的构成

(1) Playbook主要有以下四部分构成:

 1   target section:定义将要执行playbook的远程主机组
 2   variable section:定义playbook运行时需要使用的变量
 3   task section:定义将要在远程主机上执行的任务列表
 4   handler section:定义task执行完成以后需要调用的任务

(2)而Playbook对应的目录层有五个,分别如下:

一般所需的目录层有:(视情况可变化)

1    vars 变量层
2    tasks 任务层
3    handlers 触发条件
4    files 文件
5    template 模板

4. playbook的编写

(1)vim设定技巧

因为Yaml文件对空格十分敏感,对缩进的要求也很严格,所以我们设置.vimrc的形式,让我们的tab键按一次有两个空格,方便我们的书写习惯。

[lee@westos_ansible ~]$ vim .vimrc

在这里插入图片描述

(2)编写

测试一下,编写一个test.yaml文件
使用ansible-playbook方式执行看效果
在这里插入图片描述
假设受控主机dnf源已经配置好
编写一个yml文件,安装vsftpd,并且允许匿名用户访问

[lee@westos_ansible ansible]$ cat vsftpd.yml 
---
- name: install vsftpd
  hosts: westos
  tasks:
    - name: install vsftpd                  安装模块
      dnf: 
        name: vsftpd
        state: latest          				安装
        disable_gpg_check: yes 				忽略gpgcheck检测

    - name: configure vsftpd                配置模块
      lineinfile:
        path: /etc/vsftpd/vsftpd.conf 
        regexp: "anonymous_enable=NO"       匹配匿名用户访问字符
        line: "anonymous_enable=YES"        匹配到改为YES
        backrefs: yes                       匹配不到不做更改

    - name: start vsftpd					服务模块
      service:  
        name: vsftpd                        vsftpd服务
        state: restarted					重新启动
        enabled: yes                        开机自启

    - name: configure firewall				防火墙配置模块
      firewalld:
        service: ftp          				服务名称
        permanent: yes						yes永久生效
        state: enabled                      开机自启
        immediate: yes						立即生效
      

语法检测

[lee@westos_ansible ansible]$ ansible-playbook vsftpd.yml --syntax-check

playbook: vsftpd.yml

执行
在这里插入图片描述

5. playbook执行命令,常用参数

(1)检测语法

ansible-playbook xxx.yml --syntax-check

编写test.yml,估计写错,来查看效果

在这里插入图片描述
在这里插入图片描述
把name前的缩进改回来,再检测一下,没有问题了

在这里插入图片描述

(2)预执行

ansible-playbook xxx.yml --check

并没有在远程主机执行
在这里插入图片描述

(3)列出执行范围

ansible-playbook xxx.yml --list-hosts

在这里插入图片描述

(4)查看task

修改inventory

[lee@westos_ansible ansible]$ cat inventory 
[westos]
172.25.10.200
172.25.10.100

修改test.yml

在这里插入图片描述
可以看到两个tasks
在这里插入图片描述
修改了清单,所以都会执行

在这里插入图片描述

指定某个IP执行

ansible-playbook xxx.yml --limit 172.25.10.200

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值