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

43 篇文章 10 订阅
6 篇文章 0 订阅

一、前言

     该篇是对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文件

        该命令格式如下:

```
- 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中,包含了以下几个部分:

参数名参数作用
namePlaybook的名称或描述
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的主机清单如下:

Step3:验证ansible版本

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

Step4:执行该playbook剧本

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

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

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

        该命令格式如下:

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

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

参数名参数作用
namePlaybook的名称或描述
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的主机清单如下:

Step3:验证ansible版本

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

Step4:执行该playbook剧本

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

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朔方鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值