Ansible(3)——主机清单与配置文件

news2025/4/3 7:44:42

目录

一、创建 Ansible 清单:

1、清单定义:

2、使用静态清单指定受管主机:

(1)主机名称指定:

(2)IP 地址指定:

3、验证清单:

(1)以交互方式浏览清单和组:

(2)列出组中的主机:

(3)列出清单中的主机:

4、覆盖清单的位置:

二、管理 Ansible 配置文件:

1、Ansible 配置文件:

(1)ansible.cfg :

(2)ansible-navigator.yml :

(3)查看当前配置文件: 

(4)配置文件注释:

2、管理 Ansible 设置( ansible.cfg ):

3、查看 Ansible 配置:

4、管理自动化内容导航( ansible-navigator.yml ):

(1)查找顺序:

(2)ansible-navigator.yml 文件常见配置:

5、配置连接:


一、创建 Ansible 清单:

1、清单定义:

        主机清单( inventory )定义 Ansible 所管理的主机。主机可以从属于组,组通常用于标识主机的角色,一个主机可以属于多个组。

        可以通过两种方式定义主机清单。

(1)通过文本文件定义静态主机清单;

(2)从外部 provider 生成动态主机清单。

2、使用静态清单指定受管主机:

        静态清单文件指定 Ansible 目标受管主机的文本文件

        Ansible 静态主机清单在 INI 或 YAML 格式文本文件中定义,每一部分的开头由方括号 [ ] 括起的部分是主机组的名称,其后是主机条目,它们列出组中的每一台受管主机,每个受管主机占一行。主机条目由受管主机的主机名称或 IP 地址组成,可定义 Ansible 与受管主机的通信方式,其中包含传输和用户帐户信息。

        用户可以指定主机名称或 IP 地址的范围来简化 Ansible 主机清单。

(1)主机名称指定:

        server[01:20].example.com 匹配名称为 server01.example.com 到 server20.example.com 的所有主机。

注:多个主机组也可构成主机组,通过 :children 后缀来实现,见上图绿色方框处。

(2)IP 地址指定:

        192.168.[4:7].[0:255] 匹配 192.168.4.0 到 192.168.7.255 这一网段中的所有 IP 地址。

3、验证清单:

        如有疑问,可使用 ansible-navigator inventory 命令验证计算机是否存在于清单之中。

(1)以交互方式浏览清单和组:

        运行 ansible-navigator inventory 命令,以交互式方式浏览清单主机和组

注:若清单中有相同名称的主机和主机组,ansible-navigator inventory 命令将显示警告。

(2)列出组中的主机:

         ansible-navigator inventory -m stdout --graph us 命令将绘制 us 组中的所有受管主机。

        --graph 后加 ungrouped 可绘制出不属于某个组的所有受管主机(下图中的清单文件中不存在未分组的受管主机)。

(3)列出清单中的主机:

        使用 ansible-navigator inventory -m stdout --list 命令可列出清单中的所有主机。

4、覆盖清单的位置:

        /etc/ansible/hosts 文件是默认静态 inventory 文件,但是通常不直接使用它,而是指定其他位置获取清单文件,通常定义到工作目录中。

        运行 playbook 时使用的 ansible-navigator 命令可通过 --inventory PATHNAME 或 –i PATHNAME 选项在命令行中指定清单文件的位置,其中 PATHNAME 是所需清单文件的路径。

注:也可在 Ansible 配置文件中将其他位置指定为获取清单文件的默认位置。

        Ansible inventory 内容可以动态生成,动态清单信息的来源包括公共 / 私有云提供商、Cobbler 系统信息和 LDAP 数据库,以及配置管理数据库( CMDB )。

注:Ansible 含有处理来自最常见提供商的动态主机、主机组和变量信息的脚本,如 Amazon EC2 、Cobbler 、Rackspace Cloud 和 OpenStack 等提供商。

二、管理 Ansible 配置文件:

1、Ansible 配置文件:

        用户可在每个 Ansible 项目目录中创建和编辑两个文件,用于配置 Ansible 的行为和 ansible-navigator 命令的选项。

(1)ansible.cfg :

        ansible.cfg 文件用于配置多个 Ansible 工具的行为

(2)ansible-navigator.yml :

        ansible-navigator.yml 文件用于配置 ansible-navigator 命令默认选项

(3)查看当前配置文件: 

       由于 Ansible 配置文件有多种,当前使用哪一个配置文件可能令人困惑,用户可使用 ansible --version 命令,显示安装的 Ansible 版本以及当前生效的配置文件

        执行 ansible 命令时使用 -v 选项也可以显示当前有效的 Ansible 配置文件。Ansible 只使用最高优先级配置文件中的设置,忽略其它配置文件的设置。

(4)配置文件注释:

        Ansible 配置文件中支持通过 # 和 ; 的方式进行注释。

        1)# 只支持行首注释,不支持行间注释;

        2); 支持行间注释,左侧为有效内容,右侧为注释。

2、管理 Ansible 设置( ansible.cfg )

        ansible.cfg 由几个部分( section )组成,每一 section 的内容以键值对形式定义,section 的标题用方括号括起。

        ansible.cfg 文件的基本配置包括以下两个部分:

(1)[defaults] :设置 Ansible 的默认值

(2)[privilege_escalation] :配置 Ansible 如何在受管主机上执行特权升级

注:参数说明如下表:

指令描述
inventory指定清单文件的路径
remote_user

指定 Ansible 用于连接受管主机的用户名,若未指定,则使用当前用户的名称

(注:在由 ansible-navigation 运行的基于容器自动化执行环境中,此参数始终为 root )

ask_pass

指示是否提示输入 SSH 密码

(注:若使用 SSH 公钥身份验证,默认值为 false )

become指定连接后是否在受管主机上自动切换用户
become_method

指定如何切换用户(注:默认为 sudo )

become_user指定要在受管主机上切换到哪个用户(注:默认为 root )
become_ask_pass指示是否提示输入 become_method 参数密码(注:默认为 false )

3、查看 Ansible 配置:

        ansible-navigator config 命令将显示当前 Ansible 配置,每一行描述一个 Ansible 配置参数。

注:(1)如果项目目录中不含 ansible.cfg 文件,Ansible 会查询用户主目录中的 ~/.ansible.cfg 文件,如果该也文件不存在,则会尝试使用 /etc/ansible/ansible.cfg 文件;

       (2)如果使用 ansible-navigator ,则 ansible-navigator 命令会在自动化执行环境中查找以上这些文件。但在红帽支持的当前执行环境中,这些文件不存在或为空。

4、管理自动化内容导航( ansible-navigator.yml )

        用户可为 ansible-navigator 创建配置文件,以覆盖设置的默认值。文件可采用 JSON( .json ) 或 YAML( .yml 或 .yaml )格式。

(1)查找顺序:

        自动化内容导航( Automation Content Navigator )按以下顺序查找配置文件,并使用它找到的第一个文件:

        1)如果设置了 ANSIBLE_NAVIGATOR_CONFIG 环境变量,则使用所指定位置处的配置文件;

        2)当前 Ansible 项目目录中的 ansible-navigator.yml 文件;

        3)~/.ansible-navigator.yml 文件(主目录中)。

(2)ansible-navigator.yml 文件常见配置:

        1)execution-environment 部分配置 ansible-navigator 命令所用的执行环境的设置;

        2)定义执行环境要使用的容器镜像名称;

        3)只有在本地机器上不存在容器镜像时,才需要拉取容器镜像

        4)enable 部分可禁用在使用 ansible-navigator run 命令时生成 playbook 工件( artifact )。如果运行 playbook 时需要提示输入密码,则必须禁用 playbook artifact

5、配置连接:

        Ansible 需要知道如何与受管主机通信,而这可以在配置文件( ansible.cfg )中设置,包括如下内容:

(1)inventory 的地址。

(2)与受管主机的连接方式,默认为 SSH 。

注:1)Ansible 默认尝试连接与控制节点相同的用户,除非在 remote_user 参数中定义。

       2)如果控制节点用户 SSH 到受管主机不需要输入密码,Ansible 将自动登录。如果不能,则需要 Ansbile 提示管理员输入密码( ask_pass = true );

       3)建议提前为控制节点和受管主机建立 SSH password-less 连接。

(3)受管主机上的远程用户名,可能是 root,也可能是普通用户。

注:基于安全考虑,Ansible 需连接到受管主机的普通用户,然后进行提权获得 root 权限。

(4)如果是普通用户,需要知道如何提权成为 root( sudo )。

注:为了安全考虑,建议在 playbook 中设置 become: true ,而不是在 ansible.cfg 中设置 become = true(按需提权)。

(5)提权时是否需要提示输入 sudo 密码。

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

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

相关文章

C语言 【初始指针】【指针一】

引言 思绪很久,还是决定写一写指针,指针这块内容很多,也不是那么容易说清楚,这里尽可能写地详细,让大家理解指针。(未完序) 一、内存和地址 在讲指针前,需要有一个对内存和地址的认…

IP 地址规划中的子网划分:/18 网络容纳 64 个 C 段(/24)的原理与应用解析

整体表格说明 这是某市教育城域网中某县教育相关机构的IP地址规划表,明确了某县一中和某县教育局的IP地址范围,包括终端使用地址段、业务互访地址段。 概念解析 64个C段终端及互联地址 C段地址:一个C段是IP地址中的一个/24网络(…

linux下Tomcat配置提示权限不够解决办法

文章目录 前言解决方案 前言 往linux服务器上部署Java后端,但是在服务器上安装好的tomcat,却因为权限不够无法进入 这就导致后端war包项目及前端页面无法部署 解决方案 sudo chmod -R 777 /opt/tomcat/webapps修改tomcat目录下的权限即可,对…

您使用的开源软件许可证是否存在冲突呢?

开源软件代码使用现状 根据最新发布的《第三次自由和开源软件普查报告》,96%的代码库中使用了开源组件,这表明开源技术在现代软件开发中占据了核心地位。在国内企业软件项目中,开源软件的使用率达到了100%,平均每个项目使用了166…

leetcode刷题日记——接雨水

[ 题目描述 ]: [ 思路 ]: 题目要求求凹进去的部分能接多少雨水,即有多少个格子可以从第一个高度快出发去寻找下一个高于或者等于他的格子,然后计算其中的差值 有高于或等于他的格子,计算他俩中间能装的雨水当后续没有…

阿里巴巴暑期实习Java面经,灵犀互娱一面

哈希表熟悉吗,可以如何实现? 开散列版本什么时候需要扩容 高并发服务器内的主从reactor模型是如何实现的? 进程 线程 协程 的区别? 如何保证线程安全 ? 了解读写锁吗? 单例模式有了解吗? 可以怎…

AI知识补全(十四):零样本学习与少样本学习是什么?

名人说:一笑出门去,千里落花风。——辛弃疾《水调歌头我饮不须劝》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:AI知识补全(十三):注意力…

如何用Postman实现自动化测试?

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 这里简单演示在postman中怎样实现自动化测试(不涉及到用户登录的token认证) 导入测试用例文件,测试web接口 postman使用流程…

LeetCode Hot100 刷题笔记(9)—— 二分查找、技巧

目录 前言 一、二分查找 1. 搜索插入位置 2. 搜索二维矩阵 3. 在排序数组中查找元素的第一个和最后一个位置 4. 搜索旋转排序数组 5. 寻找旋转排序数组中的最小值 6. 寻找两个正序数组的中位数 二、技巧 1. 只出现一次的数字 2. 多数元素 3. 颜色分类 4. 下一个排列 5. 寻找重复…

Ubuntu 系统上完全卸载 Docker

以下是在 Ubuntu 系统上完全卸载 Docker 的分步指南 一.卸载验证 二.卸载步骤 1.停止 Docker 服务 sudo systemctl stop docker.socket sudo systemctl stop docker.service2.卸载 Docker 软件包 # 移除 Docker 核心组件 sudo apt-get purge -y \docker-ce \docker-ce-cli …

Python----计算机视觉处理(Opencv:道路检测之道路透视变换)

一、透视变换 对于道路检测来说,为了方便车辆进行行驶,道路上都有车道线,为了更加方便对道路线进行检测,首先我们要把到路线平视图转变为俯视图,以便后期处理更加方便,如下图所示,该为虚拟场景的…

为什么 ThreadLocalMap 的 key 是弱引用 value是强引用

问题一:为什么 ThreadLocalMap 的 key 是弱引用? 【假设 Entry 的 key 是对 ThreadLocal 对象的强引用】:这个 Entry 又持有 ThreadLocal 对象和 value 对象的强引用。如果在其他地方都没有对这个 ThreadLocla 对象的引用了、然后在使用 Thr…

AI 能解开内容的「不可能三角」吗?

3月21日,以“‘AI商业’进化论”为主题的行业峰会在中欧国际工商学院上海校区成功举行,并发布人工智能与商业创新白皮书。本次活动由中欧国际工商学院与特赞科技Tezign联合主办,中欧特赞人工智能与商业创新研究基金承办,中欧AI与营…

计算机网络 OSI参考模型

目录 OSS七层 OSI通信过程1 OSI通信过程2 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 OSS七层 OSI通信过程1 OSI通信过程2 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层

探索新一代大模型代理(LLM agent)及其架构

在人工智能大模型(AI)的浪潮中,2023年我们见证了检索增强生成(Retrieval Augmented Generation, RAG)的兴起,而2024年则无疑成为了“代理”agent的元年。各大AI企业纷纷投身于聊天机器人代理的研发中,工具如MultiOn通过与外部网站的连接实现了…

AI应用案例(1)——智能工牌和会话质检

今天开辟一个新的模块,自己平时也搜集一些典型的行业应用案例,不如就记录到C站,同时和大家也是个分享好了。 今天分享的企业和产品,是循环智能的智能工牌。 这个产品应用场景清晰,针对的行业痛点合理,解决…

HMTL+JS+CSS实现贪吃蛇游戏,包含有一般模式,困难模式,还有无敌模式

HMTLJSCSS实现贪吃蛇游戏,包含有一般模式,困难模式,还有无敌模式(可以穿墙死不了,从左边进去可以从右边出来),显示当前分数和最高分,吃到的球颜色可以叠加到蛇身体上 为了适配手机端…

内网渗透——红日靶场二

目录 一、前期准备 DC机配置 PC机配置 WEB机配置 将PC机和WEB机的IP地址进行更改 开启WEB服务 二、外网探测 1.使用nmap扫描 2.目录扫描 3.漏洞扫描 (1)CVE-2017-3506(getshell失败) (2)CVE-201…

【Unity】处理文字显示不全的问题

1.选中字体文件,检查 MultiAtlasTeextures 是否勾选,未勾选的话,先勾选保存后查看是否显示正常 2.勾选后未正常显示,则在搜索框中输入未显示的文本,确认字体图集是否包含该文本,然后点击Update Atlas Textu…

汽车诊断开发入门以及OBD检测

一、OBD 概述 定义:OBD 即 On - Board Diagnostics,车载自动诊断系统。它能实时监测车辆各项系统和部件状态,以此帮助诊断故障并预警。设计初衷与发展:最初设计目的是控制汽车尾气排放,确保符合环境标准。随着技术进步…