当前位置: 首页 > news >正文

RHEL8中ansible的使用

  • 编写ansible.cfg和清单文件
  • ansible的基本用法

本章实验三台RHEL8系统(rhel801,rhel802,rhel803),其中rhel801是ansible主机

这里要确保ansible主机能够解析所有被管理的机器,这里通过配置/etc/hosts来实现,/etc/hosts的内容如下

[root@rhel801 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.161.16	rhel801
192.168.161.17	rhel802
192.168.161.18	rhel803
[root@rhel801 ~]#

在rhel802和rhel803两台机器上确认已经创建好jin用户(三台机器都需要创建jin用户),如果没有请自行创建,然后配置sudo

[root@rhel802 ~]# cat /etc/sudoers.d/jin
jin ALL=(root) NOPASSWD:ALL
[root@rhel802 ~]#
[root@rhel803 ~]# cat /etc/sudoers.d/jin
jin ALL=(root) NOPASSWD:ALL
[root@rhel803 ~]#

这样在这两台机器上,jin 用户通过sudo -i可以无密码切换到root用户

[jin@rhel802 ~]$ sudo -i 
[root@rhel802 ~]# exit
注销
[jin@rhel802 ~]$

使用jin 用户登录server,配置好ssh密钥登录,使得jin 用户可以无密码登录到 server2和 server3

1.1 编写ansible.cfg和清单文件

执行ansible或ansible-playbook命令时,优先使用当前目录中ansible.cfg的配置。如果 当前目录中没有,则使用默认的/etc/ansible.cfg中的配置

下面的操作都是rhel801上的jin用户操作的,先在家目录下创建ansible.cfg

[jin@rhel801 ~]$ cat ansible.cfg 
[defaults]
inventory = ./hosts[privilege_escalation]
become=True
become_method=sudo
become_user=root
[jin@rhel801 ~]$

这里在[defaults]字段下只添加了一句inventory = ./hosts,表示把当前目录下名称为hosts的文件当作清单文件(什么是清单文件马上就要讲到)

在 [privilege_escalation]字段下定义了如何提升权限,因为是使用lduan用户登录到被管理主机的,所以需要提升权限。这个字段下写了3条,分别如下

(1)become=True:登录到被管理主机时要切换到其他用户

(2)become_method=sudo:以 sudo的方式切换

(3)become_user-root :切换到root用户

这三句的意思是,当用ssh登录到被管理主机时,以 sudo的方式切换到root,这也是为什么一开始要在被管理主机上配置好sudo的原因

所有的被管理机器都要写入清单文件中。在实验环境中有两台被管理主机,那么分别写在 hosts中,内容如下

[jin@rhel801 ~]$ cat hosts
rhel802
rhel803
[jin@rhel801 ~]$

这里一行一台主机,我们在使用ansible或ansible-playbook命令时,指定的主机名必须 是这个名称才行。要确保能解析rhel802和rhel8803,写成相应的IP也可以

如果环境中被管理的主机很多,把主机一台台地写进去太冗繁,所以可以改成如下写法

[jin@rhel801 ~]$ cat hosts
rhel802
rhel803
rhel8[10:15]
[jin@rhel801 ~]$

这里加了一行rhel8[10:15],表示 rhel810到 rhel815,这样在清单文件中就写了8台主 机(需要注意的是,在我们的练习环境中rhel810到rhel815不存在)

如果在执行ansible命令时只是想在部分主机上执行,那么在清单文件中可以对主机进行 分组。定义主机组时,组名写在中括号“[]”中,在[下面写的主机名都属于这个组,直到定 义下一个组的位置为止。修改清单文件的内容如下

[jin@rhel801 ~]$ cat hosts
rhel802
rhel803
rhel8[10:15][db1]
rhel80[2:5][db2]
rhel806
rhel807
[jin@rhel801 ~]$

这里定义了两个主机组db1和db2,db1组中包括的主机有rhel802到rhel805,db2组中包 括的主机有rhel806和 rhel807

如果想定义一个主机组,这个组中包括db1和db2两个主机组的主机,可以用 children关 键字,修改hosts的内容如下

[jin@rhel801 ~]$ cat hosts
rhel802
rhel803
rhel8[10:15][db1]
rhel80[2:5][db2]
rhel806
rhel807[db3:children]
db1
db2
[jin@rhel801 ~]$

这里定义了一个主机组db3,但是后面加了“:children",则这个主机组下面的db1和db2 就不再表示主机了,而是表示主机组。所以,db3这个主机组中所包括的主机是rhel802到 rhel805及rhel806和 rhel807这6台主机

下面查看每个主机组中有多少主机。首先查看主机组db1中的主机

[jin@rhel801 ~]$ ansible db1 --list-hostshosts (4):rhel802rhel803rhel804rhel805
[jin@rhel801 ~]$

共4台主机。查看主机组db2中的主机

[jin@rhel801 ~]$ ansible db2 --list-hostshosts (2):rhel806rhel807
[jin@rhel801 ~]$

共2台主机。查看主机组 db3中的主机

[jin@rhel801 ~]$ ansible db3 --list-hostshosts (6):rhel802rhel803rhel804rhel805rhel806rhel807
[jin@rhel801 ~]$

共6台主机,与分析的是一样的。还有一个内置主机组叫作all,表示所有主机

了解了清单文件的写法之后,最终把清单文件写成如下内容

[jin@rhel801 ~]$ cat hosts 
rhel802
rhel803[db]
rhel802
rhel804
[jin@rhel801 ~]$

1.2 ansible的基本用法

ansible的基本用法如下

ansible 机器名 ‐m 模块× ‐a "模块的参数"

这里的机器名必须出现在清单文件中,整体的意思是在指定的机器上执行模块x。例如,在 rhel802上执行hostname命令,命令如下

[jin@rhel801 ~]$ ansible rhel802 -m shell -a "hostname"
rhel802 | CHANGED | rc=0 >>
rhel802
[jin@rhel801 ~]$

shell模块用于执行操作系统命令,执行的命令就作为shell模块的参数,这里在-a中写要执行的系统命令。所以,上面的命令就是在rhel802上执行hostname命令,显示的结果是rhel802.rhce.cc

要完成不同的任务就需要调用不同的模块来实现,系统中存在的所有 ansible模块可以通过ansible-doc -l来查看

不同的模块有不同的参数,模块的参数及使用方法可以通过“ansible-doc模块名”来查看

相关文章:

RHEL8中ansible的使用

编写ansible.cfg和清单文件ansible的基本用法 本章实验三台RHEL8系统(rhel801,rhel802,rhel803),其中rhel801是ansible主机 这里要确保ansible主机能够解析所有被管理的机器,这里通过配置/etc/hosts来实现…...

【1.6计算机组成与体系结构】存储系统

目录 1.层次化存储结构2.Cache2.1 Cache的介绍2.2 局部性原理2.3 Cache应用 1.层次化存储结构 由 ⬆ CPU:寄存器。 快 ⬆ Cache:按内容存取(相联存储器)。 到 ⬆内存(主存):DRAM。 慢 ⬆ 外存(辅存&#…...

TCP/UDP 协议

目录 一.TCP协议 1.介绍 2.报文格式 ​编辑 确认号 控制位 窗口大小 3.TCP特性 二.TCP协议的三次握手 1.tcp 三次握手的过程 三.四次挥手 2.有限状态机 四.tcp协议和udp协议的区别 五.udp协议 UDP特性 六.telnet协议 一.TCP协议 1.介绍 TCP(Transm…...

如何正确理解和使用 Golang 中 nil ?

目录 指针中的 nil 切片中的 nil map 中的 nil 通道中的 nil 函数中的 nil 接口中的 nil 避免 nil 相关问题的最佳实践 小结 在 Golang 中,nil 是一个预定义的标识符,在不同的上下文环境中有不同的含义,但通常表示“无”、“空”或“…...

IDEA新建jdk8 spring boot项目

今天新建spring boot项目发现JDK版本最低可选17。 但是目前用的最多的还是JDK8啊。 解决办法 Server URL中设置: https://start.aliyun.com/设置完成后,又可以愉快的用jdk8创建项目了。 参考 https://blog.csdn.net/imbzz/article/details/13469117…...

Qt/C++音视频开发59-使用mdk-sdk组件/原qtav作者力作/性能凶残/超级跨平台

一、前言 最近一个月一直在研究mdk-sdk音视频组件,这个组件是原qtav作者的最新力作,提供了各种各样的示例demo,不仅限于支持C,其他各种比如java/flutter/web/android等全部支持,性能上也是杠杠的,目前大概…...

智安网络|企业网络安全工具对比:云桌面与堡垒机,哪个更适合您的需求

随着云计算技术的快速发展,越来越多的企业开始采用云计算解决方案来提高效率和灵活性。在云计算环境下,云桌面和堡垒机被广泛应用于企业网络安全和办公环境中。尽管它们都有助于提升企业的安全和效率,但云桌面和堡垒机在功能和应用方面存在着…...

Git忽略已经提交的文件

原理类似于 Android修改submodule的lib包名...

MVVM和MVC以及MVP的原理以及它们的区别

MVVM、MVC 和 MVP 都是前端架构模式,它们各自有不同的原理和特点。 MVC(Model-View-Controller) 原理:MVC 将应用程序分为三个部分:模型(Model)、视图(View)和控制器&a…...

WeChatMsg: 导出微信聊天记录 | 开源日报 No.108

Mozilla-Ocho/llamafile Stars: 3.5k License: NOASSERTION llamafile 是一个开源项目,旨在通过将 lama.cpp 与 Cosmopolitan Libc 结合成一个框架,将 LLM (Large Language Models) 的复杂性折叠到单个文件可执行程序中,并使其能够在大多数…...

Python学习之复习MySQL-Day3(DQL)

目录 文章声明⭐⭐⭐让我们开始今天的学习吧!DQL简介基本查询查询多个/全部字段设置别名去除重复记录 条件查询条件查询介绍实例演示 聚合函数什么是聚合函数?常见的聚合函数实例演示 分组查询分组查询语法where 和 having 的区别实例演示 排序查询语法实…...

AI超级个体:ChatGPT与AIGC实战指南

目录 前言 一、ChatGPT在日常工作中的应用场景 1. 客户服务与支持 2. 内部沟通与协作 3. 创新与问题解决 二、巧用ChatGPT提升工作效率 1. 自动化工作流程 2. 信息整合与共享 3. 提高决策效率 三、巧用ChatGPT创造价值 1. 优化产品和服务 2. 提高员工满意度和留任率…...

SpringBoot集成websocket(5)|(使用OkHttpClient实现websocket以及详细介绍)

SpringBoot集成websocket(5)|(使用OkHttpClient实现websocket以及详细介绍) 文章目录 SpringBoot集成websocket(5)|(使用OkHttpClient实现websocket以及详细介绍)[TOC] 前言一、初始…...

Kafka-Kafka基本原理与集群快速搭建(实践)

Kafka单机搭建 下载Kafka Apache Download Mirrors 解压 tar -zxvf kafka_2.12-3.4.0.tgz -C /usr/local/src/software/kafkakafka内部bin目录下有个内置的zookeeper(用于单机) 启动zookeeper(在后台启动) nohup bin/zookeeper-server-start.sh conf…...

Elasticsearch 进阶(索引、类型、字段、分片、副本、集群等详细说明)-06

笔记来源:Elasticsearch Elasticsearch进阶 进阶-核心概念 索引Index 一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字…...

hive的分区表和分桶表详解

分区表 Hive中的分区就是把一张大表的数据按照业务需要分散的存储到多个目录,每个目录就称为该表的一个分区。在查询时通过where子句中的表达式选择查询所需要的分区,这样的查询效率会提高很多。 静态分区表基本语法 创建分区表 create table dept_p…...

verilog语法进阶-分布式ram

概述: FPGA的LUT查找表是用RAM设计的,所以LUT可以当成ram来使用,也并不是所有的LUT都可以当成ram来使用,sliceM的ram可以当成分布式ram来使用,而sliceL的ram只能当成rom来使用,也就是只能读,不能写&#x…...

HarmonyOS使用HTTP访问网络

HTTP数据请求 1 概述 日常生活中我们使用应用程序看新闻、发送消息等,都需要连接到互联网,从服务端获取数据。例如,新闻应用可以从新闻服务器中获取最新的热点新闻,从而给用户打造更加丰富、更加实用的体验。 那么要实现这样一种…...

GZ015 机器人系统集成应用技术样题1-学生赛

2023年全国职业院校技能大赛 高职组“机器人系统集成应用技术”赛项 竞赛任务书(学生赛) 样题1 选手须知: 本任务书共 25页,如出现任务书缺页、字迹不清等问题,请及时向裁判示意,并进行任务书的更换。参赛队…...

计算机毕业设计 基于SpringBoot的日常办公用品直售推荐系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...

uniapp:使用fixed定位,iOS平台的安全区域问题解决

manifest.json > 添加节点 "safearea": { //iOS平台的安全区域"background": "#1C1E22","backgroundDark": "#1C1E22", // HX 3.1.19支持"bottom": {"offset": "auto"} },已解决&#xff…...

三层交换机原理与配置

文章目录 三层交换机原理与配置一、三层交换技术概述二、传统的 MLS三、基于CEF 的MLS1、转发信息库(FIB)2、邻接关系表3、工作原理: 四、三层交换机的配置1、三层交换机配置命令2、三层交换机配置步骤 三层交换机原理与配置 一、三层交换技…...

Linux-----5、文件系统

# 文件系统 # 终端的基本操作 ㈠ 打开多个终端 ㈡ 快速清屏 新建标签:command T 新建窗口:command N 关闭标签:command Q 关闭窗口:command W 放大:command 缩小:command - 清屏&#xff…...

电脑自动关机怎么设置?

电脑自动关机怎么设置?如果你是一名上班族,工作忙起来很多事情都会忘记做,有时候忙到很晚后紧急下班,就会忘记给电脑关机,电脑如果经常不关机,那么电脑就会超负荷的运转,大家都知道电脑的寿命是…...

MS5602视频 8 位数模转换器,可替代TLC5602

MS5602 是低功率、超高速视频数模转换器。 MS5602 以 DC 至 20MHz 的采样速率,将数字信号转换成模拟信号。由于高速工作 的特性, MS5602 适合于数字电视、电脑视频处理及雷达信号处 理等数字视频应用。 MS5602 工作在 -40C 至 85C 的温度范围内 …...

Logistic Regression——逻辑回归

1. 为什么需要逻辑回归 在前面学习的线性回归中,我们的预测值都是任意的连续值,例如预测房价。除此之外,还有一个常见的问题就是分类问题,而逻辑回归是一个解决分类问题的模型,其预测值是离散的。 分类问题又包括…...

跟随鼠标动态显示线上点的值(基于Qt的开源绘图控件QCustomPlot进行二次开发)

本文为转载 原文链接: 采用Qt快速绘制多条曲线(折线),跟随鼠标动态显示线上点的值(基于Qt的开源绘图控件QCustomPlot进行二次开发) 内容如下 QCustomPlot是一个开源的基于Qt的第三方绘图库,能…...

Todesk、向日葵等访问“无显示器”主机黑屏问题解决

我的环境是 ubuntu 22.04 安装 要安装 video dummy,请在终端中运行以下命令: sudo apt install xserver-xorg-video-dummy配置 video dummy 的配置文件请自行搜索 使用任何文本编辑器打开此文件。 我的是 /etc/X11/xorg.conf 默认配置文件包含以下内…...

maven打包插件maven-jar-plugin与spring-boot-maven-plugin

maven几种打包插件介绍 文章目录 &#x1f50a;1.spring-boot-maven-plugin打包后效果 &#x1f4d5;2.maven-jar-plugin打包后效果&#x1f58a;️最后总结 &#x1f50a;1.spring-boot-maven-plugin <plugins><plugin><groupId>org.springframework.boot&…...

uniapp微信小程序下载base64图片流或https图片

常规https的图片下载是这样的 const urlPath https://test/logo.png uni.downloadFile({url: urlPath,success(res){// 这时会产生一个临时路径&#xff0c;在应用本次启动期间可以正常使用。if (res.statusCode 200) {// 需要将图片保存到相册uni.saveImageToPhotosAlbum({…...

郑州正规的网站制作价钱/合肥网站推广优化

文章 计算机视觉课程第一讲-VS2015环境配置开发库OpenCV安装读取显示图像程序 计算机视觉课程第二讲-OpenCV4读取、显示、保存-视频&摄像头数据 计算机视觉课程第三讲-形态学处理&#xff1a;膨胀、腐蚀、开运算、闭运算、形态学梯度、顶帽、黑帽、击中击不中变换 计算…...

做字幕网站有哪些/推广产品的方法和步骤

文/美美教育说俗话说&#xff1a;学好数理化&#xff0c;走遍全天下。理工类知识一直以来都是用途很广泛的&#xff0c;从每年的高考志愿中我们也不难看出&#xff0c;工科类院校的报考人数居高不下。一直以来我们都习惯把理科和工科统称为“理工科”&#xff0c;但实际上他们二…...

网站建设的主要工作有哪些/营销模式有哪些

java基础-不用ide如何打包 1. 建立目录 src存放源文件 classes存放编译文件 2. 建立类文件 主类 package test.ant; import test.ant.MyTools; // import com.alibaba.fastjson.JSONObject; public class HelloWorld {public static void main(String[] args) {System.out.prin…...

学校网站 功能/全国新闻媒体发稿平台

物联网时代&#xff0c;拼的是生态。 6月23日下午&#xff0c;海尔宣布开放U智慧生活平台的SDK软件包&#xff0c;它为开发者搭建的开放的开发平台“海极网”2.0正式上线&#xff0c;以整合更多的生态资源。 海尔U推广总监邹峘浩表示&#xff0c;智能家居概念在前两年被爆炒&am…...

企业做网站怎么做/厦门人才网官方网站

前不久&#xff0c;SuperSocket v1.0 正式发布了。 作为.NET语言为数不多的socket服务器端框架, SuperSocket很好的支持了命令行格式的协议&#xff0c;很多经典的应用都可以用它来构建&#xff0c; 例如FTP, SMTP/POP3等等。 近期&#xff0c;SuperSocket又进行了几次比较大的…...

b2c网站建设费用/新闻 最新消息

要说生科的水还是很深的&#xff0c;找个耗材、试剂总是被坑的事件屡见不鲜了&#xff01;所以很多人明白了一个道理&#xff0c;图便宜没好货&#xff0c;找好货还得找大牌&#xff01;就像胎牛血清&#xff08;FBS&#xff09;&#xff0c;可以说是我们科研里比较常用&#x…...