实施Ansible Playbook

目录

1.定义清单

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

3.动态主机清单

4.配置Ansible

5.ansible.cfg文件的内容组成

6.配置连接

[7.ansible playbook的作用与格式](#7.ansible playbook的作用与格式)

8.模块的命名

9.运行playbook

10.play中的特权升级

1.定义清单

(1)主机清单(inventory)定义Ansible所管理的主机

(2)主机可以从属于组,后者通常用于标识主机的角色

(3)一个主机可以属于多个组

(4)可以通过两种方式定义主机清单:通过文本文件定义静态主机清单,或从(5)外部provider生成动态主机清单

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

(1)Ansible静态主机清单在INI和YAML格式文本文件中定义

(2)格式:

每一部分的开头为方括号[]括起来的主机组名称

其后是主机条目,他们列出组中的每一台受管主机,各自占据一行

主机条目由受管主机的主机名称或IP地址组成

主机条目也可以定义Ansible与受管主机的通信方式,其中包含传输和用户账号信息

(3)可使用ansible-navigator inventory命令验证计算机是否存在于清单中

(4)覆盖Inventory的默认位置:

一般将inventory定义到工作目录中,也可以在配置文件中指定其他位置来获取清单文件

(5)运行playbook时使用的ansible-navigator命令可通过--inventory

3.动态主机清单

覆盖主机清单的默认位置:

(1)Ansible的主机清单可以动态生成,其中的信息包括Cobbler系统信息和LDAP数据库和配置管理数据库(CMDB)

(2)Ansible含有处理来自最常见提供商的动态主机、组和变量信息的脚本

(3)对云提供商,必须在脚本能够访问的文件中定义身份验证和访问权限信息

4.配置Ansible

可以使用ansible.cfg和ansible-navigator.yml文件来配置ansible

5.ansible.cfg文件的内容组成

该文件由几个部分组成,每个部分以键值对的形式定义。

基本配置包括两部分:

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

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

使用ansible-navigator config 命令可以显示当前Ansible配置(交互模式)

如果项目目录中不含ansible.cfg文件,Ansible会查询用户主目录中的~/.ansible.cfg文件,如果该文件不存在,则会尝试使用/etc/ansible/ansible.cfg文件。如果使用ansible-navigator,则该命令会在自动执行环境中查找以上这些文件。

6.配置连接

Ansible需要知道如何与受控节点通信,可在配置文件中设置:

  1. inventory的地址
  2. 与受控节点的连接方式,默认为SSH
  3. 受控节点上的远程用户名,可能是root,也可能是普通用户
  4. 如果是普通用户,需要知道如何提权成为root
  5. 提权时是否需要提示输入sudo密码

7.ansible playbook的作用与格式

(1)Ansible使用playbook可重复地对一组目标主机运行多项复杂任务

(2)任务指应用模块来执行特定工作单元

(3)一个playbook包含多个play,一个play包含多个task,都是按顺序执行

playbook的格式:采用YAML格式的文本文件,里面的内容是以键值对形式表示

YAML对缩进的基本规则:

  1. 层级结构中相同级别的数据元素必须具有相同的缩进
  2. 子项必须比其父项缩进得更多

playbook以三个破折号作为文档的开始标记,以三个点作为文档的结尾标记

8.模块的命名

模块将使用完全限定集合名称(FQCN)来命名。两个Ansible内容集合中的不同模块也可以用相同名称,不会导致冲突。

9.运行playbook

在控制节点上使用ansible-navigator run命令执行playbook

10.play中的特权升级

become布尔值参数可用于启用或禁止特权升级

如果启用了特权升级,可使用become_method属性来定义play要使用的特权升级方法。

become_user属性可以用于特权升级的用户账户

相关推荐
C-20023 天前
初探 ansible 部署 devops 持续集成持续交付
ci/cd·ansible·devops
东窗西篱梦3 天前
Ansible自动化运维:从入门到实战,告别重复劳动!
运维·自动化·ansible
weixin_507847955 天前
Ansible
ansible
小白不想白a5 天前
【ansible/K8s】K8s的自动化部署源码分享
kubernetes·自动化·ansible
三坛海会大神5556 天前
Ansible详解(一)Ansible简介和基础命令及操作
运维·ansible
東雪蓮☆6 天前
Ansible Playbook 编写与模块详解
linux·运维·网络·ansible
苦逼IT运维6 天前
Windows 作为 Ansible 节点的完整部署流程(含 Docker 部署 Ansible)
windows·docker·ansible
Freed&7 天前
Ansible 生产级自动化指南:Playbook、Handlers、Jinja2 全解析
运维·自动化·ansible
m0_464608267 天前
Ansible实现自动化运维
运维·自动化·ansible
✎﹏赤子·墨筱晗♪7 天前
Ansible Playbook 入门指南:从基础到实战
linux·服务器·ansible