ansible基本命令与剧本编写(二)

文章目录

  • 前言
  • 一、ansible模块基本使用方法
    • [1.1 yum模块](#1.1 yum模块)
    • [1.2 service模块](#1.2 service模块)
    • [1.3 script 模块](#1.3 script 模块)
    • [1.4 setup 模块](#1.4 setup 模块)
  • [二、Inventory 主机清单与变量配置](#二、Inventory 主机清单与变量配置)
    • [2.1 主机清单变量汇总](#2.1 主机清单变量汇总)
    • [2.2 主机清单变量的作用与配置方法](#2.2 主机清单变量的作用与配置方法)
      • [2.3 组嵌套使用](#2.3 组嵌套使用)
  • 三、playbook编写(部分)
    • [3.1 Playbook 的结构](#3.1 Playbook 的结构)
    • [3.2 ansible playbook简单编写](#3.2 ansible playbook简单编写)
    • [3.3 when条件判断](#3.3 when条件判断)
  • 总结

前言

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

相关推荐
Blockchina15 分钟前
Codex 实战:从一句需求到可验收的 Linux 主机巡检脚本
运维·服务器·网络
2601_9622184733 分钟前
万象生鲜系统冷链物联网接入技术实现生鲜企业温控管理数字化
大数据·运维·微服务·云原生·架构
Best-Wishes1 小时前
BurpSuite Pro教育版在linux系统中配置
linux·运维·服务器·网络安全·burpsuite
wuminyu1 小时前
深入剖析 Panama Off-heap 的性能损耗与开销
java·linux·c语言·jvm·c++
志栋智能1 小时前
从关联到因果:智能超自动化如何实现真正的根因分析定界
运维·自动化
虎王物联1 小时前
RK3568嵌入式Linux跑Docker:内核配置排查到AIoT容器化的完整路径
linux·运维·docker·rk3568·aiot·嵌入式linux
GeW2 小时前
不只靠技术:RHCE考试的5个隐藏得分点
linux
老当益壮梁奶奶2 小时前
Linux软件编程学习笔记(八):进程间通信详解(1)
linux·c语言·笔记·学习·算法
祖力553 小时前
进程间通信(IPC机制):消息队列与共享内存
linux·消息队列·共享内存·通信·进程间通信
从入门到退休3 小时前
企业远程控制选型:向日葵SDK vs RustDesk自建,谁是更务实的选择?
运维·服务器·网络·远程工作·远程控制