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

相关推荐
算法与编程之美19 分钟前
文件的写入与读取
linux·运维·服务器
xianwu54336 分钟前
反向代理模块
linux·开发语言·网络·git
Amelio_Ming1 小时前
Permissions 0755 for ‘/etc/ssh/ssh_host_rsa_key‘ are too open.问题解决
linux·运维·ssh
Ven%2 小时前
centos查看硬盘资源使用情况命令大全
linux·运维·centos
JaneJiazhao2 小时前
HTTPSOK:SSL/TLS证书自动续期工具
服务器·网络协议·ssl
萨格拉斯救世主2 小时前
戴尔R930服务器增加 Intel X710-DA2双万兆光口含模块
运维·服务器
无所谓จุ๊บ2 小时前
树莓派开发相关知识十 -小试服务器
服务器·网络·树莓派
Jtti2 小时前
Windows系统服务器怎么设置远程连接?详细步骤
运维·服务器·windows
TeYiToKu2 小时前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
dsywws2 小时前
Linux学习笔记之时间日期和查找和解压缩指令
linux·笔记·学习