Linux——ansible剧本

剧本(playbook)

现在,可以写各种临时命令

但如果,想把所有步骤,集合到一起,写到同一个文件里

让ansible自动按顺序执行

就必须要写"剧本"

剧本里面,也可以写临时命令,但是剧本有规范的文本格式

一个剧本里(playbook)

1.可以写多个"剧集",每一集是一个"play"

2.每个play里

指明,对哪些客户机操作,操作什么,顺序

具体格式

1.整个playbook开头,顶头写:---(三个横杠,没有空格)

2.往后退一层/一级,play的标题/名字

顶头写:一个横杠一个空格name冒号名字


  • name: xxxxxxx

3.再往下

和上面一行的name对其

文件名,以".yml"结尾

如果写完了playbook,让ansible执行:

#ansible-playbook xxx.yml

可以在执行前,进行"格式检查",不是运行检查,只检查剧本的格式

#ansible-playbook --syntax-check xxx.yml

空运行

演练、彩排?

能看到剧本执行的过程、流程、预期结果

来看一些例子(用法)

先来盘点一下,现在能写出来的,以及涉及到的

剧本内容->模块

yum或dnf模块

管理软件包

可以安装软件包,卸载软件包,更新软件包

于是,就会有个小问题,看上面的例子

用yum模块,指定了俩软件包httpd和firewalld

并没写类似与install之类的选项,默认就是安装?

其实,看最后state

也就是说,要通过yum,保证上面列出的两个软件包,处于哪个状态......

比如

present保证存在,absent确保不存在

这俩选项,比较通用,不光在yum模块里用到

对于yum模块,还有一个latest,确保存在并且是最新版本

再比如下面这个

copy这个模块,通常用来传文件

但是,看上面的例子,也可以直接把文本内容传进目标文件

于是~给客户机生成文件,就有多种方式

比如

copy把整个文件,传过去

copy把内容传过去

lineinfile确保目标文件里有某一行内容

继续

关于服务

Linux->软件包->执行->持续执行->守护进程->服务

可用的模块:service和systemd

state和enabled,分别管理一个服务的当前状态和开机启动设置

再然后,关于防火墙

主要是firewalld,不是iptables(是别的玩意)

首先是防火墙自己也是个服务

需要放行,每一个业务相关的其他服务

service、state

接下来两个不太一样

immediate,立即生效

permanent,永久生效(写入配置文件)

有了各个部分的内容,包括

安装软件、文件生成、服务启动、防火墙放行

再然后,需要安排什么事情?

需要编排剧本里每个部分的大顺序以及小顺序

解决方法......

1.停止服务,分别对a和b做

0)可以一个playbook里,写两个play

这两个play,分别写自己的hosts,各自包含servera和serverb

1)用service模块或systemd

2)name里包含httpd、mysqld

name里包含nginx

2.停止服务后,原来的配置文件和工作目录的文件,都还在

0)这些文件,是否还要保留?

关于配置文件的备份,可以在服务器本机,也可以放到远程的其他主机

如果要有文件的备份,通常,在服务部署时就会备份一次

至于其他时候的备份,就得按照企业的计划......

1)如果不需要考虑文件的备份,可以直接删除软件包

探索一个问题:通过yum或dnf安装的软件包,修改了配置文件......

在停止服务并且删除软件包后,配置文件还在不在?

3.卸载软件包

1)模块:yum或dnf

2)state就变成了absent,也就是确保指定的软件未安装

4.在指定的文件里,添加一行内容,不影响原有内容

1)copy也可以,lineinfile也可以

2)还可以?

用command模块,执行临时命令(但是,不能保证幂等性)

相关推荐
weixin_437044641 小时前
Netbox批量添加设备——堆叠设备
linux·网络·python
hhy_smile1 小时前
Ubuntu24.04 环境配置自动脚本
linux·ubuntu·自动化·bash
宴之敖者、1 小时前
Linux——\r,\n和缓冲区
linux·运维·服务器
LuDvei1 小时前
LINUX错误提示函数
linux·运维·服务器
未来可期LJ2 小时前
【Linux 系统】进程间的通信方式
linux·服务器
Abona2 小时前
C语言嵌入式全栈Demo
linux·c语言·面试
心理之旅2 小时前
高校文献检索系统
运维·服务器·容器
Lenyiin2 小时前
Linux 基础IO
java·linux·服务器
The Chosen One9852 小时前
【Linux】深入理解Linux进程(一):PCB结构、Fork创建与状态切换详解
linux·运维·服务器
Kira Skyler2 小时前
eBPF debugfs中的追踪点format实现原理
linux