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模块,执行临时命令(但是,不能保证幂等性)

相关推荐
Codefengfeng4 小时前
CTF工具篇
linux·运维·服务器
上海合宙LuatOS5 小时前
LuatOS核心库API——【i2c】I2C 操作
linux·运维·单片机·嵌入式硬件·物联网·计算机外设·硬件工程
Zach_yuan6 小时前
数据链路层核心技术解析:以太网与ARP协议
服务器·网络·网络协议
一文解千机7 小时前
wine 优化配置及显卡加速,完美运行Electron 编译的程序(新榜小豆芽、作家助手、小V猫等)
linux·ubuntu·electron·wine·wine优化配置·wine显卡加速·wine大型游戏
2401_858286118 小时前
OS53.【Linux】System V 共享内存(2)
linux·运维·服务器·共享内存
REDcker9 小时前
DNS技术详解
服务器·后端·计算机网络·互联网·dns·服务端
上海合宙LuatOS9 小时前
LuatOS核心库API——【io】 io操作(扩展)
java·服务器·前端·网络·单片机·嵌入式硬件·物联网
能源革命12 小时前
Ubuntu_24.04 安装OpenClaw教程
linux·ubuntu
laocui113 小时前
树莓派Ubuntu系统安装openclow(豆包+QQ机器人)
linux·运维·ubuntu
qq_242188633213 小时前
快速搭建跨环境检测服务的步骤
linux·开发语言·windows·python·macos