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两个主机上可以看出模板生效

相关推荐
lifeng432116 小时前
在 CentOS 上将 Ansible 项目推送到 GitHub 的完整指南
centos·github·ansible
运维成长记6 天前
ansible-playbook 进阶 接上一章内容
linux·服务器·ansible
半桶水专家6 天前
Ansible 配置Playbook文件格式、关键字和语法详解
ansible
遇见火星8 天前
Ansible模块——Ansible配置文件!
linux·git·ansible
安顾里10 天前
Ansible安装
linux·运维·自动化·ansible
爱莉希雅&&&11 天前
运维Linux之Ansible详解学习(更新中)
linux·运维·ansible
筑梦之路17 天前
centos 9 Kickstart + Ansible自动化部署 —— 筑梦之路
centos·自动化·ansible
遇见火星17 天前
Ansible模块——通过 URL 下载文件
ansible
遇见火星17 天前
Ansible模块——管理100台Linux的最佳实践
linux·运维·ansible
Ashmcracker17 天前
在Ubuntu使用 Ansible 配置 Azure 资源的动态清单
ubuntu·microsoft·云计算·ansible·azure·devops