2、ansible的playbook

ansible的脚本:playbook剧本

脚本的作用:复用

playbook的组成部分

1、开头 ---:表示是一个yaml文件,但是可以忽略。

2、Tasks(任务):包含了目标主机上执行的操作,操作还是由模板来执行。每一个任务都是一个ansible的模块调用的系统名,操作管理等等。

3、variables(变量):存储和传递数据,可以自定义变量,在playbook中变量都是全局的。

4、templates模板:用于生成配置文件,可以在ansible当中定义好变量和属性直接传给配置文件。

5、handlers处理器:满足条件时,进行触发的操作,通常用在任务重发生"change",可以触发这个处理器,一般是用处理器来对服务进行重启。

6、roles角色:是一种组织和封装playbooks的方式,类似docker-compose。

一般

配置脚本文件,安装软件,开启并设置开机自启以及修改访问页

检查脚本文件语法

检查脚本中的任务数

检查脚本中目标主机

运行脚本

从指定任务开始执行

传参

内部传参创建用户

外部传参创建用户

条件判断

1、给IP地址是192.168.254.41的主机打印输出"判断位置"

2、给IP地址是192.168.254.41的主机下载nginx,修改访问页并设置重启

循环

1、 with_items

2、 with_list:每组列表就会一起循环输出

3、with together:同一列表位置数据组合输出的循环

4、with_nested:列表数据循环配置的循环

三种传参进行循环遍历的方式

标签tags

ansible中相当于标签,在执行playbook的时候指定标签来运行我们需要的tasks。

1、debug:调式,调式的结果不会写入到目标主机。

2、always:始终会运行的任务

3、setup:收集主机信息

4、pre_tasks:在主任务之前运行的任务

5、post_tasks:在主任务之后运行的任务

6、自定义标签

7、never:这个任务永远不运行

如我们使用上面的first.yml脚本文件,创建4个标签

只执行zw1标签部分执行

只执行从test2标签到test4标签部分执行

跳过zw1标签部分执行

jinja模块

jinja是基于python的模块引擎,可以把模板看做一个编译过的文件,这个文件可以直接生产目标文件,用定义好的变量替换模版中的标记位。

首先准备好nginx的模板配置文件nginx.conf.j2(jinja模块文件的默认后缀名)

在配置文件/etc/ansible/hosts设置好要传参的参数

配置脚本文件,启用模板

运行脚本后,我们在41和14两个主机上可以看出模板生效

相关推荐
祺风挽楠7 天前
ansible编辑
网络·ansible
芳心粽伙饭8 天前
Ansible课后作业
ansible
烁3479 天前
Ansible初识
ansible
烁3479 天前
Ansible安装部署调试
ansible
烁3479 天前
Ansible命令
ansible
小义_9 天前
【Ansible】(三)基础配置与连接设置
云原生·ansible
炸炸鱼.14 天前
Ansible 企业级实战:Playbook 与 Roles 完全指南
网络·ansible
风曦Kisaki14 天前
# 自动化运维Day03:Ansible模块进阶(setup,debug),四种常用变量,进阶语法;Ansible Roles(角色)
运维·自动化·ansible
炸炸鱼.17 天前
Ansible 部署应用:从入门到精通
ansible
Peace17 天前
【Ansible】
linux·运维·ansible