ansible实训-Day3(playbook的原理、结构及其基本使用)

这篇具有很好参考价值的文章主要介绍了ansible实训-Day3(playbook的原理、结构及其基本使用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

     该篇是对ansible实训第三天内容的归纳总结,主要包括playbook组件的原理、结构及其基本使用方式。

二、Playbook 原理

        Playbook是Ansible的核心组件之一,它是用于定义任务和配置的自动化脚本。

        Ansible Playbook使用YAML语法编写,可以描述在受管主机上执行的一系列任务和配置。Playbook定义了一个或多个剧本(play),每个剧本定义了一组任务,这些任务将在目标主机上执行。剧本中的任务按照定义的顺序依次执行。

        每个任务包含一个或多个模块,模块是Ansible的可重用功能单元,用于执行各种操作,例如文件操作、软件安装、服务管理等。每个模块接收参数,根据这些参数执行操作,并返回结果。可以根据需要在剧本中使用不同的任务和模块。

三、Playbook结构

        Playbook的结构一般包括以下内容:

        - `name`: Playbook的名称或描述
        - `hosts`: 定义要管理的主机或主机组
        - `vars`: 定义变量,用于在任务中传递参数和配置选项
        - `tasks`: 包含一个或多个任务的任务列表
        - `handlers`: 定义处理程序,用于在任务执行过程中处理特定的事件
        - `roles`: 定义可重用的角色,包含一组相关的任务和配置

        使用Ansible Playbook可以实现自动化的配置管理、软件部署、系统管理等任务。它具有简单易用、可读性强、可扩展性好等特点,并且与多种操作系统和云平台兼容。

        为了运行Playbook,可以使用`ansible-playbook`命令,并指定Playbook文件的路径。Ansible将解析Playbook文件,并在指定的主机上执行定义的任务和配置。

        Ansible Playbook是实现基础架构即代码(Infrastructure as Code)的有力工具,可以提高自动化管理的效率和可靠性。

四、实施Playbook步骤

Step1: 编写Ansible Playbook

        使用YAML格式编写,并按照剧本中指定的顺序列出任务列表和主机清单。

Step2:配置Ansible的主机清单

        在清单中指定要管理的受管主机,以及剧本中定义的主机组。

Step3:验证Ansible配置

        执行`ansible --version`确保Ansible版本已正确安装并显示预期的版本号。

Step4:在控制机上运行Playbook

        执行`ansible-playbook playbook.yml`运行Ansible剧本。`playbook.yml`是要运行的剧本文件的名称。

        然后,Ansible将读取剧本和主机清单,并在受管主机上运行指定的任务。在运行期间,Ansible将会输出有关操作的详细信息,包括成功和失败的任务、变量值和错误消息。

        需要注意的是,Ansible的行为取决于它与受管主机之间的连接方式。如果连接不安全,则可能会泄露敏感信息,并对受管主机和网络造成潜在的安全风险。因此,在实施Ansible Playbook时,请确保安全连接并采用最佳实践。

五、Playbook实操

        这里分别展示使用copy以及user模块进行playbook操作的流程。

(一)使用copy模块进行文件的复制操作

Step1:编写YAML格式的Ansible Playbook文件

ansible实训-Day3(playbook的原理、结构及其基本使用)

ansible实训-Day3(playbook的原理、结构及其基本使用)

        该命令格式如下:

```
- name: 复制文件
  hosts: all
  tasks:
    - name: 复制/ etc/ansible/ansible.cfg
      copy:
        src: /etc/ansible/ansible.cfg
        dest: /tmp/ansible.cfg
        owner: upwen
        group: upwen
        mode: '0444'
```

在上述Playbook中,包含了以下几个部分:

参数名 参数作用
name Playbook的名称或描述
hosts 要管理的主机或主机组名称
tasks 包含一个或多个任务的任务列表

        在这个Playbook中,包含有一个任务,用于将源文件`/etc/ansible/ansible.cfg`复制到目标文件`/tmp/ansible.cfg`。这个任务有以下几个部分:

参数名 参数作用
name 任务的名称或描述
copy 表示使用`copy`模块来复制文件
src 指定要复制的源文件,在这里是`/etc/ansible/ansible.cfg`
dest 指定要复制到的目标路径,在这里是`/tmp/ansible.cfg`
owner 指定文件所有者
group 指定文件所属组
mode 指定文件的权限

        当Ansible运行时,它将遍历指定的主机清单(`hosts`),针对每个主机执行每个任务。在该任务完成后,Ansible会输出结果,包括成功的任务和失败的任务。

Step2:配置Ansible的主机清单 

        配置ansible的主机清单如下:

ansible实训-Day3(playbook的原理、结构及其基本使用)

ansible实训-Day3(playbook的原理、结构及其基本使用)

Step3:验证ansible版本

ansible实训-Day3(playbook的原理、结构及其基本使用)

        该步骤目的为确定ansible已正常安装,如果确定ansible已经正常安装则可以省略。 

Step4:执行该playbook剧本

        使用ansbile-playbook copy.yml 命令执行该剧本,执行完成后效果如图:

ansible实训-Day3(playbook的原理、结构及其基本使用)

 (二)使用playbook的user模块进行用户的创建操作

 Step1:编写YAML格式的Ansible Playbook文件

ansible实训-Day3(playbook的原理、结构及其基本使用)

ansible实训-Day3(playbook的原理、结构及其基本使用)

        该命令格式如下:

```yaml
- name: 创建用户
  hosts: node1
  tasks:
    - name: 创建lisi用户
      user:
        name: lisi
        uid: '1600'
        comment: 学生lisi
        shell: /sbin/nologin
        state: present
```

在上述Playbook中,包含了以下几个部分:

参数名 参数作用
name Playbook的名称或描述
hosts 要管理的主机或主机组名称
tasks 包含一个或多个任务的任务列表

        在这个Playbook中,包含有一个任务,用于在主机上创建用户`lisi`。这个任务有以下几个部分:

参数名 参数作用
name 任务的名称或描述
user 表示使用`user`模块来管理用户
name 指定要创建的用户名,这里是`lisi`
uid 指定用户的UID
comment 指定用户的备注
shell 指定用户的登录shell
state 指定用户的状态,这里是`present`表示用户存在

        当Ansible运行时,在每个主机上执行每个任务,创建用户`lisi`。在任务完成后,Ansible会输出结果,包括成功的任务和失败的任务。

        请注意,确保在运行此Playbook时,你具有足够的权限来创建用户。另外,根据需要可以修改其他用户属性,例如密码、主目录等。详细了解Ansible的`user`模块,请参考Ansible官方文档。

 Step2:配置Ansible的主机清单 

        配置ansible的主机清单如下:

ansible实训-Day3(playbook的原理、结构及其基本使用)

ansible实训-Day3(playbook的原理、结构及其基本使用)

Step3:验证ansible版本

ansible实训-Day3(playbook的原理、结构及其基本使用)

        该步骤目的为确定ansible已正常安装,如果确定ansible已经正常安装则可以省略。 

Step4:执行该playbook剧本

        使用ansbile-playbook user.yml 命令执行该剧本,执行完成后效果如图:

ansible实训-Day3(playbook的原理、结构及其基本使用)

 文章来源地址https://www.toymoban.com/news/detail-512501.html

到了这里,关于ansible实训-Day3(playbook的原理、结构及其基本使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ansible剧本--Playbook

    在ansible中,类似“脚本”的文件被称作“剧本”,英文称为playbook,用于配置、部署和管理被控节点 只需要把模块按照顺序编排在playbook剧本中,ansible就会按照剧本一步一步的执行,最终达到我们需要实现的效果 playbook是由一个或多个\\\'play\\\'组成的列表,当我们在工作中需要不

    2024年01月19日
    浏览(36)
  • Ansible之playbooks剧本

    (1)playbooks是ansible用于配置,部署,和管理被控节点的剧本。 (2)通过playbooks的详细描述,执行其中的tasks,可以让远端主机达到预期的状态。playbooks是由一个或多个”play”组成的列表。 当对一台机器做环境初始化的时候往往需要不止做一件事情,使用playbooks。 (3)通过

    2024年02月09日
    浏览(47)
  • ansible的playbook剧本

    (1)Tasks:任务,即通过 task 调用 ansible 的模块将多个操作组织在一个 playbook 中运行 (2)Variables:变量 (3)Templates:模板 (4)Handlers:处理器,当changed状态条件满足时,(notify)触发执行的操作 (5)Roles:角色 ==Ansible在执行完某个任务之后并不会立即去执行对应的han

    2024年02月12日
    浏览(38)
  • Ansible Playbook 常用变量

    以下是 Ansible Playbook 常用变量 ansible_connection : 指定连接类型(如 ssh、winrm) ansible_user : 指定远程用户 ansible_ssh_pass : 指定远程用户密码 ansible_become : 指定是否切换为超级用户 ansible_become_user : 指定切换到的用户 ansible_become_pass : 指定超级用户密码 ansible_host : 指定远程主机的

    2024年02月11日
    浏览(40)
  • Ansible playbook ----- 剧本

    playbooks 本身由以下各部分组成 (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 (2)Variables:变量 (3)Templates:模板 (4)Handlers:处理器,当changed状态条件满足时,(notify)触发执行的操作 (5)Roles:角色 //示例: vim test1.yaml ---    

    2024年02月10日
    浏览(41)
  • Ansible playbook编写

    Tasks :任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 Variables :变量 Templates :模板 Handlers :处理器,当changed状态条件满足时,(notify)触发执行的操作 Roles :角色

    2024年02月14日
    浏览(33)
  • 使用Ansible中的playbook

    目录 1.Playbook的功能 2.YAML 3.YAML列表 4.YAML的字典 5.playbook执行命令 6.playbook的核心组件 7.vim 设定技巧 示例 playbook 是由一个或多个play组成的列表 Playboot 文件使用YAML来写的 #简介# 是一种表达资料序列的格式,类似XML #特点# 1、可读性好 2、和脚本语言交互性号 3、易于实现 4、适用

    2024年02月06日
    浏览(32)
  • [ansible] playbook运用

        2.1 基础变量的定义与引用 在yaml文件中,我们可以在初始配置的模块中用var去定义变量的存在,变量的格式为key:value,以此来确定该变量在剧本中的存在   2.2 引用fact信息中的变量   首先我们知道  使用 ansible 组  -m setup   可以收集该组中所有的节点信息 , 所以setup中

    2024年02月20日
    浏览(36)
  • Ansible之Playbook

    1.简介 Playbook 也通常被⼤家翻译成剧本。 可以认为它是Ansible ⾃定义的⼀⻔语⾔(可以将 Playbook ⽐作Linux 中的 shell,⽽ Ansible 中的 Module 可以⽐作为 Linux 中的各种命令。) 2.Play的定义 PlayBook遵循YAML 的语法格式。 由于Playbook 是由⼀个或者多个Play组成,那么如果我们熟悉Play的写

    2024年02月11日
    浏览(37)
  • [ansible] playbook角色

    Roles又称为角色,playbook被称为剧本。Roles角色是自1.2版本之后引入的新特性,用于层次性、结构化的组织剧本   roles能够根据层次型结构自动装载变量文件、任务集、以及触发的动作等,要使用roles只需要在剧本中使用include命令引入即可 简单的来说,roles就是分别将变量、文

    2024年02月21日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包