文章目录
前言
本文紧接上篇博客,本文将将ansible的模块使用方法讲完,并且讲解主机清单与剧本的相关知识。
一、ansible模块基本使用方法
1.1 yum模块
yum模块:用于安装与卸载软件包
ansible 10.0.0.5 -m yum -a ‘name=httpd’ ————————————安装httpd软件包

ansible xjy -m yum -a ‘name=httpd state=absent’ ———————————删除httpd软件包

1.2 service模块
service模块:用于操作服务包括started(开启)、stopped(关闭)、reload(重新加载)、restarted(重启)等
ansible xjy -m service -a ‘name=httpd state=started’ —————开启httpd服务


1.3 script 模块
script模块:用于执行shell脚本给远程被操作的主机
例如:利用ansible在控制机中的一个文件中(这里用的1.txt)写入123到被控制机根目录下的123.txt文件中
第一步 在控制机中写入脚本

第二步 用ansible执行脚本
ansible xjy -m script -a ‘1.txt’ ——————————执行1.txt文件

1.4 setup 模块
setup模块:用于查看服务器节点信息
用法:ansible 组名或ip -m setup -a ‘filter=想搜索的内容’ ————————查看该组名或ip对应的服务器节点的信息
ansible xjy -m setup -a ‘filter=ansible_default_ipv4’ ————————查看本节点的ens33网卡信息
二、Inventory 主机清单与变量配置
2.1 主机清单变量汇总

2.2 主机清单变量的作用与配置方法
作用:通过定义主机清单变量,可以同时操作不同属性的主机,简单来说它可以用来告诉ansible主机,被控制的主机的属性(比如端口、密码、用户)已经不是默认的了,要远程控制需要用定义的这个变量属性才可以远程连接进行操作。
例如:通过定义主机清单变量,操作不同端口的主机
第一步 更改被控制主机的端口
vim /etc/ssh/sshd_config

(更改完配置文件记得重启sshd服务)
第二步 尝试直接远程操作该主机
ansible 10.0.0.9 -m command -a ‘ls /opt’ ———————————查看opt下所有文件和目录

第三步 在ansible映射中写入主机清单变量
vim /etc/ansible/hosts ————————编辑ansible映射

第四步 再次尝试远程连接操作
这次发现可以连接上了,其实,主要原理就是,我写入了主机清单变量,指定了10.0.0.9的端口,相当于ansible在远程连接被控制主机的端口的时候,告诉了ansible要连接这个端口才可以连接的上。

2.3 组嵌套使用
作用:当我们想同时操作好几台被控制主机是除了all,我们目前只知道的方法就是一个一个输,这样的操作效率太慢,那么,我们想要一次性用一条命令就能操作机台主机就要使用到组嵌套。
概念:组嵌套顾名思义就是将几个组合成一个大组,我们在远程操作时直接操作这个大组就可以实现多个主机同时操作。
大组写法:组名:children
使用方法:在ansible映射中写入大组,远程操作时,直接选定大组为操作对象
ansible www -m command -a ‘ls /opt’ ————————操作大组中所有主机查看opt目录下的所有文件和目录


三、playbook编写(部分)
3.1 Playbook 的结构
Ansible 的 Playbook 是一个包含多个 Play 的 YAML 文件,每个 Play 负责对指定的 主机组 执行一系
列的任务。Playbook 通常由以下几部分组成:
Tasks:每个任务会调用一个模块来在目标主机上执行操作。
Variables:通过定义和使用变量,使 Playbook 更具灵活性和可重用性。
Templates:通过 Jinja2 模板动态生成配置文件。
Handlers:用于响应任务执行后的变更( notify 触发)。(例如在更改配置文件后,可以自动重启服务)
Roles:把多个任务、变量、模板、文件、处理程序组织成模块化结构,便于复用。
3.2 ansible playbook简单编写


可以看到,以上脚本执行成功
ansible-playbook test1.yaml ——————————运行 playbook
ansible-playbook test1.yaml --syntax-check ——————————检查语法

ansible-playbook test1.yaml --list-task ——————————查看任务列表

ansible-playbook test1.yaml --list-hosts ——————————查看影响的主机

ansible-playbook test1.yaml --start-at-task=‘install httpd’ ————————从指定任务开始执行

3.3 when条件判断


总结
本文紧接上篇博客,本文将将ansible的模块使用方法讲完,并且讲解主机清单与剧本的相关知识,希望本文内容能对大家有所帮助,谢谢观看😜
2660

被折叠的 条评论
为什么被折叠?



