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文件

        该命令格式如下:

```
- 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 命令执行该剧本,执行完成后效果如图:

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

帆软 FineReport 绘制漏斗图

七一建党节,祝党生日快乐! 夏日炎炎,周末在家,想起在用帆软做页面展示的时候,使用到了漏斗图,记录下来,方便查看。 以订单销量变化为例,分为五个阶段,商品浏览人数&#…

PDF如何转换成Word?PDF转Word方法分享!​

PDF大家都不陌生了吧?作为打工人,学生党的大家都知道,PDF是现在不可或缺的文件传输工具之一,不仅可将文档转为Word,还可以转成excel,ppt等各种形式,其重要性不言而喻,那么今天小编就跟大家具体说…

【MySQL】表的约束

目录 一、空属性 二、默认值 三、列描述 四、zerofill 五、主键 六、自增长 七、唯一键 八、外键 九、综合案例 真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻…

NSQ 实现逻辑探秘

1 什么是 NSQ NSQ 是一个消息队列中间件,用 go 实现,有如下特点: 分布式: 它提供了分布式的、去中心化且没有单点故障的拓扑结构,稳定的消息传输发布保障,能够具有高容错和高可用特性。 易于扩展&#xf…

星辰秘典:揭开Python项目的神秘密码——2048游戏

✨博主:命运之光 🌸专栏:Python星辰秘典 🐳专栏:web开发(html css js) ❤️专栏:Java经典程序设计 ☀️博主的其他文章:点击进入博主的主页 前言:你好&#x…

深度学习与神经网络

文章目录 引言1. 神经网络1.1 什么是神经网络1.2 神经元1.3 多层神经网络 2. 激活函数2.1 什么是激活函数2.2 激活函数的作用2.3 常用激活函数解析2.4 神经元稀疏 3. 设计神经网络3.1 设计思路3.2 对隐含层的感性认识 4. 深度学习4.1 什么是深度学习4.2 推理和训练4.3 训练的相…

python语法(高阶)-多线程编程

""" 演示多线程编程的使用 """ import time import threadingdef sing(msg):while True:print(msg)time.sleep(1)return Nonedef dance(msg):while True:print(msg)time.sleep(1)return Noneif __name__ __main__:# 创建一个唱歌的线程&#xf…

html实现好看的多种风格导航菜单(附源码)

文章目录 1.设计来源1.1 顶部导航菜单1.1.1 界面风格1-一二级连体导航菜单1.1.2 界面风格2-二级导航下拉框1.1.3 界面风格3-系统开始风格1.1.4 界面风格4-购物类导航菜单1.1.5 界面风格5 - 带搜索扩展的导航条1.1.6 界面风格6-火热效果多级导航条 1.2 悬浮按钮菜单1.2.1 界面风…

电力系统系统潮流分析【IEEE 57 节点】(Matlab代码实现)

💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥 🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 …

Ceph分布式存储系统搭建

目录 安装部署示例 (一)准备环境 1). 设置主机名 2). 关闭防火墙 3).添加sdb磁盘并格式化 4).配置hosts解析文件 5).配置免密登录 6).同步时区 7). 安装 Ceph 包 (二)创建 Ceph 集群 1、 安装ceph-deploy管理工具 2、 …

Linux 用户名称高亮和最近路径显示

1、通常情况下,Linux中的路径名称会不断叠加显示,如下图,这样看起来会很长。 2、为了设置路径只是当前最近的文件路径,先进入自己的家目录,然后进入.bashrc: 3、在.bashrc文件中的最后一行加入以下内容…

C国演义 [第三章]

第三章 组合分析步骤递归函数的返回值和参数递归结束的条件单层逻辑 组合总和 III 组合 力扣链接 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1: 输入:n 4, k 2 输出&#xff1…

Echarts区域面积areaStyle用图片进行纹理填充

React DOM结构代码&#xff1a; import fillImg from xx/fillImg.png; // 填充纹理图片...... {/* 趋势图填充纹理图片 */} <img id"fillImg" src{fillImg} style{{ width: 0 }} /> <div id"line" style{{ width: 100%, height: 300 }}></…

蓝绿发布、灰度发布和滚动发布

系列文章目录 文章目录 系列文章目录一、1.金丝雀发布&#xff08;Canary Release&#xff09;的工作原理&#xff1a;2.滚动发布&#xff08;Rolling Release&#xff09;3.蓝绿发布&#xff08;Blue-Green Deployment&#xff09;有钱人玩的&#xff01; 总结 一、 当涉及到…

深入理解深度学习——注意力机制(Attention Mechanism):带掩码的多头注意力(Masked Multi-head Attention)

分类目录&#xff1a;《深入理解深度学习》总目录 相关文章&#xff1a; 注意力机制&#xff08;AttentionMechanism&#xff09;&#xff1a;基础知识 注意力机制&#xff08;AttentionMechanism&#xff09;&#xff1a;注意力汇聚与Nadaraya-Watson核回归 注意力机制&#…

WPF中的Behavior及Behavior在MVVM模式下的应用

WPF中的Behavior及Behavior在MVVM模式下的应用 在WPF中&#xff0c;Behaviors&#xff08;行为&#xff09;是一种可重用的组件&#xff0c;可以附加到任何UI元素上&#xff0c;以添加特定的交互行为或功能。Behaviors可以通过附加属性或附加行为的方式来实现。 Behavior并不…

知识蒸馏学习记录(二)

上一篇博文中我们介绍了知识蒸馏的一些基础知识&#xff0c;这里我们来学习其到底是如何完成知识蒸馏过程的。 知识蒸馏为何可以让学生网络模型小却性能强&#xff1f; 详细很多同学与我有相同的疑问&#xff0c;尽管它依靠不同的蒸馏温度T可以学得一些hard target标注无法包…

三维空间刚体运动之旋转矩阵与变换矩阵

1. 旋转矩阵 1.1 点、向量和坐标系 点&#xff1a;点是空间中的基本元素&#xff0c;没有长度&#xff0c;没有体积&#xff1b; 向量&#xff1a;把两个点连接起来&#xff0c;就构成了向量&#xff0c;向量可以看成从某点指向另一点的一个箭头&#xff1b;只有当我们指定这…

hive基于新浪微博的日志数据分析——项目及源码

有需要本项目的全套资源资源以及部署服务可以私信博主&#xff01;&#xff01;&#xff01; 该系统的目的是利用大数据技术&#xff0c;分析新浪微博的日志数据&#xff0c;从而探索用户行为、内容传播和移动设备等各个层面的特性和动向。这项研究为公司和个人在制定营销战略、…