RHCEansible静态主机清单

news2024/9/25 23:19:34

首先要做好免密登录 RHCEansible虚拟机初始化配置,ansible配置和安装_无所不知的神奇海螺的博客-CSDN博客

添加主机组

[root@server ~]# vim /etc/ansible/hosts

或者

 测试

[root@server ~]# ansible node1 -m command -a 'hostname' --- 引号里的是想要受控主机执行的命令

 [root@server ~]# ansible web -a 'hostname'

 或者

[root@server ~]# ansible web --list-hosts

 或者

[root@server ~]# ansible-inventory --graph

 如果要匹配自定义路径的清单文件,在命令中加个 - i + 路径

[root@servera ~]# ansible 'web:ftp' --list-hosts --- 匹配在web组或者在ftp组中的所有主机
hosts (2):
servera.openlab.com
serverb.openlab.com
[root@servera ~]# ansible 'web:mail' --list-hosts --- 匹配在web组或者在mail组中的所有主机
hosts (2):
servera.openlab.com
serverb.openlab.com
[root@servera ~]# ansible 'web:&mail' --list-hosts --- 匹配在web组和mail组中的所有主机
hosts (1):
servera.openlab.com
[root@servera ~]# ansible 'web:!mail' --list-hosts --- 匹配在web组但是不在mail组中的所有主机
[WARNING]: No hosts matched, nothing to do
hosts (0):
[root@servera ~]# ansible 'web:!mail:&dns' --list-hosts --- 匹配在web组但是不在mail组中并且在dns组中的所有主机

ansible "~(web|db).*\.example\.com" -m ping

主机清单格式(交、并、补)
\>all 所有主机
\> 通配符
ansible "*" -m ping
ansible 192.168.60.* -m ping
ansible "web*" -m ping
\> : (并)属于 A 或属于 B 的元素的集合 A B AUB , 也表示或者的意思
ansible "websrv:appsrv" -m ping
\> :& (交集)属于 A 且属于 B
ansible 'websrv:&appsrv' -m ping
\> :! (补集)属于全集 U 不属于集合 A
ansible 'websrv:!dbsrv' -m ping ( websrv 主但不在 dbsrv )
综合逻辑
ansible 'websrv:dbsrv:&appsrv:!ftsrv' -m ping
正则表达式
ansible "~(web|db).*\.example\.com" -m ping
注:
. 任意单个字符
"~" 开始表示正则匹配
* 匹配前面的子表达式零次或多次
\ 转义

 题目

 

 # ansible --> ANSIBLE_CONFIG -->./ansible.cfg--> ~/.ansible.cfg --> /etc/ansible/ansible.cfg   默认只有一个配置文件生效

案例一:ansible使用ssh连接受管主机,一般不建议用管理用户,要求通过普通用student进行链接

[defaults]
inventory = /etc/ansible/hosts
remote_user = student
ask_pass = True

案例二:关闭主机秘钥验证(别远程主机的秘钥验证关闭)

在管控主机中通过指定用户发起操作指令,在受管主机中通过 ssh 远程连接方式以 student 用户身份执行,
并验证密码;如果 ask_pass false 则可以通过 -k 或者 --ask-pass 来提示接收密码进行验证。
host_key_checking = False 关闭主机秘钥验证:
或者直接在控制主机的操作系统中设置环境变量, 如下所示 :
$export ANSIBLE_HOST_KEY_CHECKING=False

案例三:主机免密登陆

如果不需要密码验证(忽略密码验证)则需要配置秘钥验证
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' -q
for host in server{a,b};do
ssh-copy-id -i $host
done

案例四:远程用户sudo提权

如果在受管主机中需要通过管理员身份运行命令则配置 sudo
vim /etc/sudoers
student ALL=(ALL) NOPASSWD: ALL
注:在受管主机中进行配置,建议管理 sudo 用户提权密码验证,如果没有关闭则 ask_sudo_pass = True
来开启执行命令 sudo 提权密码验证;但是 ask_sudo_pass = False 那么可以空过 -K --ask
become-pass 来开启执行命令 sudo 提权密码验证

案例五:特权升级。

在受管主机中通过 sudo 提权可在 ansible 配置中进行优化,开启远程用户在受管主机中执行特权升级。
控制主机执行特权命令不需要指定 sudo 命令
[student@localhost ~]$ ansible web -a 'sudo useradd haha'
[WARNING]: Consider using 'become', 'become_method', and 'become_user' rather
than running sudo
servera | CHANGED | rc=0 >>
serverb | CHANGED | rc=0 >>
Vim /etc/ansible/ansible.cfg
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
[student@localhost ~]$ ansible web -a 'useradd xixi'
servera | CHANGED | rc=0 >>
serverb | CHANGED | rc=0 >>
ansible-doc 查找关于本地系统上安装的模块信息 == 显示模块帮助 (ansible man 命令,相当于help )
-l,--lsit 查看控制节点上可用的模块列表以及其功能的概要;列出可用模块
-s --snippet 列岀某个模块支持的动作 显示模块的 playbook
ansible-doc [module name] 查看指定模块的概要、选项、详细信息、以及基本用法
模块文档文档网站: http://docs.ansible.com
注意:帮助显示中模块维护标记
由于有些模块可能处于不同的开发阶段查看模块开发状态,是在 ansible-doc 输出末尾的 METEDATA 部分
中指明
stableinterface: 模块的关键字稳定,将尽力确保不删除关键字或更改其含义
preview :模块处于阶段预览,可能不稳定
deprecated: 模块弃用
removed :模块已从发行版中移除
主机联通性测试
绿色:执行成功并且不需要做出任何改变
黄色:执行成功并且对目标主机做出变更
红色:执行失败
蓝色:显示详细过程
紫色:显示警告

file 模块 ansible-doc file -s
path 参数 :必须参数,用于指定要操作的文件或目录,在之前版本的 ansible 中,使用 dest 参数或
name 参数指定要操作的文件或目录,为了兼容之前的版本,使用 dest name 也可以。
state 参数 Path=“ 路径 ” state= touch|directory|link|hard|absent
此参数非常灵活,此参数对应的值需要根据情况设定,比如,当我们需要在远程主机中创建一个目
录的时候,我们需要使用 path 参数指定对应的目录路径,假设,我想要在远程主机上创
/testdir/a/b 目录,那么我则需要设置 path=/testdir/a/b ,但是,我们无法从 "/testdir/a/b" 这个
路径看出 b 是一个文件还是一个目录, ansible 也同样无法单单从一个字符串就知道你要创建文件还
是目录,所以,我们需要通过 state 参数进行说明
src 参数 :当 state 设置为 link 或者 hard 时,表示我们想要创建一个软链或者硬链,所以,我们必须
指明软链或硬链链接的哪个文件,通过 src 参数即可指定链接源。
force 参数 : state=link 的时候,可配合此参数强制创建链接文件,当 force=yes 时,表示强制创
建链接文件,不过强制创建链接文件分为两种情况,情况一:当你要创建的链接文件指向的源文件
并不存在时,使用此参数,可以先强制创建出链接文件。情况二:当你要创建链接文件的目录中已
经存在与链接文件同名的文件时,将 force 设置为 yes ,回将同名文件覆盖为链接文件,相当于删除
在远程主机上执行脚本
[root@centos7 ~]# ansible test -m script -a "test.sh chdir=/tmp"
172.20.21.120 | SUCCESS => {
"changed": true,
"rc": 0,
"stderr": "Shared connection to 172.20.21.120 closed.\r\n",
"stdout": "/tmp\r\n",
"stdout_lines": [
"/tmp"
]
}
[root@centos7 ~]# ansible test -m raw -a "pwd"
172.20.21.120 | SUCCESS | rc=0 >>
/root
Shared connection to 172.20.21.120 closed. 同名文件,创建链接文件。情况三:当你要创建链接文件的目录中已经存在与链接文件同名的文
件,并且链接文件指向的源文件也不存在,这时会强制替换同名文件为链接文件。
owner 参数 :用于指定被操作文件的属主,属主对应的用户必须在远程主机中存在,否则会报
错。
group 参数 :用于指定被操作文件的属组,属组对应的组必须在远程主机中存在,否则会报错。
mode 参数 :用于指定被操作文件的权限,比如,如果想要将文件权限设置为 "rw-r-x---" ,则可以
使用 mode=650 进行设置,或者使用 mode=0650 ,效果也是相同的,如果你想要设置特殊权限,
比如为二进制文件设置 suid ,则可以使用 mode=4700 ,很方便吧。
recurse 参数 :当要操作的文件为目录,将 recurse 设置为 yes ,可以递归的修改目录中文件的属
性。 -R
setype: httpd_content_t

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/131295.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Dell inspiron 5488加装硬盘SSD

机械盘真心便宜, 当数据盘很合适。 ———— 我是装双系统, 希望速度快! 我就装了一个SSD, STAT接口的, 和机械盘盒一样尺寸, 接口都是SATA, 我买的三星860EVO, 500G&…

I06-python菜鸟教程查漏补缺

学习链接:Python3 教程 | 菜鸟教程 目录 1.基础知识 2.字符串 1.基础知识 多行语句:复数类型: 复数由实数部分和虚数部分构成,可以用 a bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型…

项目的生命周期

0、Preface/Foreword PLM:Product Lifecycle Management System,产品生命周期管理;可以在公司内部或者多个公司之间对于产品研发协同办公,集成与产品相关的人力资源,流程、应用系统和信息,用于支持产品全生命周期的信息创建、管理、分发和应用。 1、硬件产品开发流程 立…

2022年下半年信息系统项目管理师综合知识真题及答案21-40

21、关于项目论证、项目评估目的和作用的描述,不正确的是:()。 A.项目论证应围绕市场需求、开发技术、财务经济三个方面开展 B.项目论证的作用是审查可行性研究的可靠性、真实性和客观性 C.项目…

Java8 - Streams map()

文章目录概述Case 1 : A List of Strings to UppercaseCase 2 : List of objects -> List of StringCase 3 : List of objects -> List of other objectsTest概述 Stream.map()是Stream最常用的一个转换方法,它把一个Stream转换为另一个Stream map()方法用于…

网络安全人才市场需求调研

声明 本文是学习2022网络安全人才市场状况研究报告. 下载地址而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 网络安全人才市场需求调研 为了更好地了解网络安全人才市场能力需求情况,我们通过调研问卷对网络安全人才就业市场不同方向的十…

Jetson nano 入手系列之1—如何SSH远程登录

Jetson nano 入手系列之1— 如何SSH远程登录方法1.windows与jetson nano使用同一个网络方法2.windows与jetson nano使用网线连接参考文献本文使用的windows平台来ssh远程登录jetson nano,这里提供两种方法。方法1.windows与jetson nano使用同一个网络 使用同一个网络…

二氧化碳捕获和电化学转化(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

12---实现注册、异常处理,统一封装结果集

1、写统一返回结果包装类 在实际开发中,为了降低开发人员之间的沟通成本,一般返回结果会定义成一个统一格式,具体的格式根据实际开发业务不同有所区别,但至少包括三要素: code状态码:由后端统一定义各种返…

3)Django模板

目录 Django模板 Django 模板标签 变量 ​编辑 列表 字典 过滤器 default length filesizeformat date truncatechars safe if/else 标签 for 标签 {% empty %} ifequal/ifnotequal 标签 注释标签 include 标签 csrf_token 配置静态文件 模板继承 父模板…

Elasticsearch搜索引擎(一)——基础使用

Elasticsearch搜索引擎 关键词是中文的建议使用,英文和数字不要,模糊就行 如果普通数据库查询,无法解决如下问题 如果表记录上千万上亿了这个性能问题,另外一个如果有一个本文字段要在里面模糊配置,这个就会出现严重…

【408篇】C语言笔记-第二十章(数据的机器级表示)

文章目录第一节:补码讲解及内存实战演练1. 补码讲解2. 反码第二节:整型不同类型解析-溢出解析1. 整型不同类型解析2. 溢出解析第三节:IEEE754标准解析第四节:浮点型精度丢失第一节:补码讲解及内存实战演练 1. 补码讲解…

使用华为云服务器跟做尚硅谷电商数仓遇到的问题汇总(持续更新中.......)

文章目录使用xsync时提示xsync:command not found执行lg.sh时显示lg.sh:command not found云服务器网页无法访问hadoop使用xsync时提示xsync:command not found 1.使用xsync时提示xsync:command not found 首先查看是否安装rsync:(反正我的里面没有。。。&#xff…

实验十、差分放大电路参数对静态和动态的影响

一、题目 利用Multism研究图1所示差分放大电路在下列情况下对电路静态和动态的影响 (1)两个 RcR_cRc​ 阻值相差 5%; (2)RwR_wRw​ 不在中点; (3)两个差分管的电流放大倍数不相等。…

sql行转列

我们以MySQL数据库为例,来说明行转列的实现方式。 首先,假设我们有一张分数表(tb_score),表中的数据如下图: 然后,我们再来看一下转换之后需要得到的结果,如下图: 可以看…

SpringBoot(一)【学习笔记】

1.SpringBoot是什么? Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。 2.SpringBoot的特点 为基于Spring的开发提供更快的入门体验 开箱即用&#xf…

Qt QAbstractItemModel类详解

文章目录一.概述二.QAbstractItemModel类1.类型2.信号3.函数一.概述 QAbstractItemModel 类定义了项目模型必须使用的标准接口,以便能够与模型/视图Model/View框架中的其他组件进行互操作。 正确用法是将其子类化以创建新模型。此类用作 QML 中的项目视图元素或 Qt…

自制Alfred/Wox插件推荐

最近上手Alfred的使用,日常工作中存在很多需要高频执行的连续性动作,将这一系列动作封装成Workflow,通过命令触发,对提升效率确有很大帮助。 自己封装了一些简单的Workflow,这里分享出来。有Alfred/Wox框架的支撑&…

JAVA零基础小白学习免费教程day14-SetHashMap

day14_JAVAOOP 课程目标 1. 【理解】Set集合的特点 2. 【理解】Set集合不重复的原理 3. 【掌握】HaseSet集合的基本使用 4. 【理解】LinkedHashSet的特点 5. 【理解】Map集合的特点 6. 【掌握】HashMap的使用 7. 【理解】LinkedHashMap的特点 8. 【掌握】Map集合的案例 9. 【…

doxygen教程之注释风格

作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> doxygen是一个开源的C接口文档生成工具。要使用doxygen生成接口文档,就必须遵循它的注释规范,下面对它的注释规范进行简单介绍。 …