【ansible】2.实施ansible playbook

目录

[1.Ansible 清单的作用是什么,怎么管理静态清单文件和动态清单?](#1.Ansible 清单的作用是什么,怎么管理静态清单文件和动态清单?)

[2.Ansible 配置文件的位置在哪,如何验证配置生效?](#2.Ansible 配置文件的位置在哪,如何验证配置生效?)

3.普通用户如何通过配置文件获得root用户身份的管理权限?

[3.编写基础 Ansible Playbook 包含哪些关键部分,怎么用自动化内容导航器运行?](#3.编写基础 Ansible Playbook 包含哪些关键部分,怎么用自动化内容导航器运行?)

[4.为什么运行需要输入密码的 Playbook 时,需要禁用 Ansible Navigator 的 Playbook 工件?](#4.为什么运行需要输入密码的 Playbook 时,需要禁用 Ansible Navigator 的 Playbook 工件?)

[5.怎么编写包含多个 play 且带特权升级的 Playbook ,特权升级有啥作用?](#5.怎么编写包含多个 play 且带特权升级的 Playbook ,特权升级有啥作用?)

[5.如何利用自动化内容导航器查找并使用 Ansible 内容集合里的新模块?](#5.如何利用自动化内容导航器查找并使用 Ansible 内容集合里的新模块?)

[6.实施 Ansible Playbook 的完整流程大概是怎样的,从准备到运行涉及哪些步骤?](#6.实施 Ansible Playbook 的完整流程大概是怎样的,从准备到运行涉及哪些步骤?)


1.Ansible 清单的作用是什么,怎么管理静态清单文件和动态清单?

  1. (1)Ansible 清单用于++定义受管主机集合++,把要管理的主机组织起来,方便集中对这些主机执行自动化任务。
  2. (2)静态清单管理:静态清单是文本文件(默认在 /etc/ansible/hosts ,常规做法是自定义路径 ),包括INI样式或YAML。按一定格式编写,比如分组列出主机;还能在清单里给主机设置变量,后续 Playbook 中直接引用,管理时可通过编辑这个文本文件增删主机、调整分组和变量 。
  3. (3)动态清单管理: 根据外部数据源或特定规则,实时、动态地生成主机清单。能够实时反映受管主机环境的变化。例如,在云计算环境中,当新的云服务器实例创建或现有实例被删除时,动态清单可以通过与云平台 API 交互,自动更新主机列表,确保 Ansible 始终管理的是最新的主机资源,无需手动频繁修改静态清单文件。

2.Ansible 配置文件的位置在哪,如何验证配置生效?

  1. (1)两个配置文件:ansible.cnf: 用于配置多个 Ansible 工具的行为,控制 Ansible 核心功能(如远程连接、特权升级、清单路径)。ansible-navigator.yml:仅控制 Navigator 工具本身的交互和运行方式,用于更改 ansible-navigator 命令的默认选项。
  2. (2)配置文件位置:Ansible 配置文件查找顺序有优先级,从高到低依次为当前工作目录、用户家目录 ~/、系统配置目录 /etc/。
  3. (3)验证生效:执行实际任务(如 ansible-navigator all -m ping ansible-playbook playbook.yml),观察配置项(如默认清单路径、并发数)是否按预期生效;也可通过 ansible-config dump 查看加载的配置详情。

3.普通用户如何通过配置文件获得root用户身份的管理权限?

  1. 可以在配置文件的【privilege_escalation】部分设置 become=true 参数,默认启动特权升级。

  2. become_method 参数会指定如何升级特权,有多个选项可用,但默认为 sudo。become_user 参数指定要升级到的用户,但默认为root。

  3. 如果所选 become_method 机制要求用户输入密码才能升级特权,可以在配置文件中设置 become_ask_pass=true 参数。

3.编写基础 Ansible Playbook 包含哪些关键部分,怎么用自动化内容导航器运行?

  1. (1)Playbook 关键部分:Playbook是YAML格式的文本文件。通常以"---"开头,结尾用"..."结束(可省略),包括name(记录任务用途)、hosts(指定play中任务所针对的主机)、tasks(指定该play运行的任务列表)等。
  2. (2)用导航器运行:安装好自动化内容导航器(ansible-navigator)后,在终端执行 ansible-navigator run playbook.yml(playbook.yml是编写好的Playbook文件名)命令,它会以交互界面运行 Playbook,还能查看执行过程、日志等,方便调试和部署。
  • Playbook 工件是 Ansible Navigator 生成的临时中间文件,用于交互式调试、执行环境隔离(如容器化运行),会注入额外运行时配置;
  • 当设置 become_ask_pass: true(需手动输入sudo密码)时,工件生成会阻断密码交互流程:临时文件机制无法正确传递终端输入的密码,导致特权升级失败;
  • 解决方案:通过 ansible-navigator run ++-m stdout++ playbook.yml 禁用工件,使用标准输出模式,恢复正常的密码交互。

5.怎么编写包含多个 play 且带特权升级的 Playbook ,特权升级有啥作用?

(1)编写方法:在 Playbook 里按 YAML 语法,用- name: ...形式依次定义多个play,各自独立设置hosts、become等参数。

(2)特权升级配置:添加become: yes(表示启用特权升级);还可通过指定升级方式become_method: sudo(默认 sudo);也能设置remote_user:remoteuser将ansible配置为首次登录在受管主机上使用其他用户账户,在单个任务中单独设置become:yes/become_method:sudo,仅该任务启用特权升级。

(3)特权升级作用:在管理主机时,很多操作(如安装系统软件、修改系统配置文件 )需要超级用户权限,特权升级能让 Ansible 以提升后的权限执行任务,确保作能成功完成,避免因权限不足失败 。

5.如何利用自动化内容导航器查找并使用 Ansible 内容集合里的新模块?

查找模块:运行 ansible-navigator collections search 关键词(关键词是想找的模块功能相关词 ),或者进入ansible-navigator的交互界面通过Collections查找。

使用模块:安装集合:如 ansible-galaxy collection install community.docker ;在Playbook中声明集合:collections:- community.docker,或使用完整模块名 community.docker.docker_container,按文档配置参数。

6.实施 Ansible Playbook 的完整流程大概是怎样的,从准备到运行涉及哪些步骤?

准备阶段:构建清单(整理受管主机,按需求分组、设变量 );确认或调整 Ansible 配置文件(可选,改默认设置 )。

编写阶段:按需求写 Playbook ,包含任务、可能的变量、处理器等,复杂场景设计多个 play 、特权升级 。

运行与调试阶段:用 ansible-navigator 或ansible-playbook命令运行 Playbook ;通过查看输出日志,用导航器的交互功能调试(如检查任务执行顺序、模块参数是否正确 );根据结果优化 Playbook ,直到在受管主机上成功自动执行任务 。

相关推荐
Mr. Cao code10 分钟前
使用Tomcat Clustering和Redis Session Manager实现Session共享
java·linux·运维·redis·缓存·tomcat
zcz160712782113 分钟前
Linux 网络命令大全
linux·运维·网络
the sun3415 分钟前
Reactor设计模式及其在epoll中的应用
linux·运维·服务器·c++
VVVVWeiYee16 分钟前
BGP高级特性
运维·服务器·网络
喜欢你,还有大家18 分钟前
Linux笔记7——shell编程基础-1
linux·运维·笔记
运维成长记25 分钟前
Top 100 Linux Interview Questions and Answers
linux·运维·服务器
人工智能训练师1 小时前
openEuler系统中如何将docker安装在指定目录
linux·运维·服务器·人工智能·ubuntu
百里晴鸢1 小时前
别再混淆!Linux硬链接与软链接的5大关键区别
linux·操作系统
norsd2 小时前
Linux CentOS 安装 .net core 3.1
linux·centos·.netcore
想学c啊啊2 小时前
【Linux】信号(二):Linux原生线程库相关接口
linux·运维·服务器