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

相关推荐
寂柒3 小时前
信号量——基于环形队列的生产消费模型
linux·ubuntu
一袋米扛几楼984 小时前
【密码学】CrypTool2 工具是什么?
服务器·网络·密码学
林姜泽樾7 小时前
Linux入门第十二章,创建用户、用户组、主组附加组等相关知识详解
linux·运维·服务器·centos
xiaokangzhe7 小时前
Linux系统安全
linux·运维·系统安全
feng一样的男子7 小时前
NFS 扩展属性 (xattr) 提示操作不支持解决方案
linux·go
南棱笑笑生7 小时前
20260310在瑞芯微原厂RK3576的Android14查看系统休眠时间
服务器·网络·数据库·rockchip
XDHCOM8 小时前
ORA-32152报错咋整啊,数据库操作遇到null number问题远程帮忙修复
服务器·数据库·oracle
Highcharts.js8 小时前
Highcharts React v4.2.1 正式发布:更自然的React开发体验,更清晰的数据处理
linux·运维·javascript·ubuntu·react.js·数据可视化·highcharts
c++之路9 小时前
Linux网络协议与编程基础:TCP/IP协议族全解析
linux·网络协议·tcp/ip
Charlie__ZS9 小时前
Ubuntu 22.04新建用户,并赋予管理权限
linux·os·ubuntn