IT袋

当前位置:主页 > 经验教程 > 系统教程 >

Ansible-playbook详细介绍和使用方法

Ansible-playbook详细介绍和使用方法!(3)

时间:2023-09-17 20:30:17 来源:IT袋 作者:苏晓敏
导读:Ansible-playbook详细介绍和使用方法,5.4 Tasks 任务集 简单来说,Tasks 任务集其实就是使用多个ansible支持的模块组合起来的一组任务。可以理解为 ansible-playbook 中,一个name指定的就是一个task任

Ansible-playbook详细介绍和使用方法

5.4 Tasks 任务集

简单来说,Tasks 任务集其实就是使用多个ansible支持的模块组合起来的一组任务。可以理解为 ansible-playbook 中,一个name指定的就是一个task任务。各个task按次序逐个在hosts中指定的所有主机上执行,即在所有主机上完成第一个task后,再开始第二个task。但是也可以使用异步模式。这个后面文章会说;

task的目的是使用指定的参数执行模块,而在模块参数中可以使用变量。模块执行是幂等的,这意味着多次执行是安全的,因为其结果均一致;

每个task都应该有其name,用于playbook的执行结果输出,建议起一个见名知意的名称。

task的两种格式:

一种是key=value的形式,另一种是key: value的形式。

注意:后者冒号后面有一个空格。

[root@bunian ansible-project]# cat install_httpd.yml
---
- hosts: dbsrvs
  remote_user: root
  tasks:
  - name: install httpd	#描述信息
    yum: name=httpd	    #调用yum模块安装httpd服务
  - name: start httpd	#同样是描述信息
    service: name=httpd state=started enabled=yes	#调用service模块启动httpd服务并设置开机自启
[root@bunian ansible-project]# cat copy_files.yml
---
- hosts: dbsrvs
  remote_user: root
  tasks:
  - name: install httpd
    yum: name=httpd
  - name: start httpd
    service:
      name: httpd
      state: started
      enabled: yes

以上示例中,我加了空行,存在空行和带有#注释的行不会影响 yaml 文件执行,看上去更加美观,而不是所有 task 挤在一起,看上去一团糟。

5.5 Variables 变量

通常我们会将变量信息放在roles/vars/main.yml中,格式如下:

[root@bunian ansible-project]# cat roles/docker/vars/main.yml
EMQXNAME: emq_perf
DEPEND_PKG:
  - yum-utils
  - device-mapper-persistent-data
  - lvm2
  - bridge-utils
DOCKER_PKG:
  - containerd.io-1.6.6
  - docker-ce-20.10.17
  - docker-ce-cli-20.10.17

5.6 Templates 模板

Templates 模板主要使用Jinjia2模板语言,以.j2结尾,里面其实就是一个配置文件,比如:

[root@bunian ansible-project]# cat roles/docker/templates/daemon.json.j2
{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-level": "warn",
    "log-opts": {
       "max-size": "1g",
       "max-file": "4"
    },
    "data-root": "/data/docker",
    "storage-driver": "overlay2"
}

5.7 handler 和 notify

这两个通常结合使用,比如某一个服务配置变更后,需要重启,那么就需要在配置变更后设置一个 notify,然后 handlers 就会在playbook退出之前执行重启服务的操作。如果定义了handler重启服务,而没有定义notify,那么所有task任务执行完成后,也会触发一次服务重启操作。

相关阅读

  • win10锁屏密码怎么设置 win10系统怎么设置锁屏密码

    win10锁屏密码怎么设置 win10系统怎么设置锁屏密码

    IT袋网小编为你介绍win10锁屏密码怎么设置的电脑小知识,win10设置锁屏密码一共有三步,需要在账户中进行设置,以下是具体的操作步骤:

  • 微软windows10下载 微软win10专业版下载地址

    微软windows10下载 微软win10专业版下载地址

    这些知识你了解吗?微软win10专业版下载地址的IT小经验,关于微软windows10下载 微软win10专业版下载地址,下面来一起了解一下吧。 微软win10专业版系统以其稳定性和良好的兼容性一直深受大家

  • win7如何查看隐藏文件 win7如何查看隐藏文件?

    win7如何查看隐藏文件 win7如何查看隐藏文件?

    为大家介绍win7如何查看隐藏文件方面的内容,关于win7如何查看隐藏文件 win7如何查看隐藏文件?,接下来小编为网友介绍。 win7系统是不可错过的优秀系统。最近很多的win7系统用户们都在问为什

  • win11键盘设置教程 win11轻松使用键盘默认设置

    win11键盘设置教程 win11轻松使用键盘默认设置

    今天分享:win11键盘设置教程的相关知识,关于win11键盘设置教程 ,下面为详细的介绍。 键盘是我们在使用电脑时非常重要的外部设备,但是在最新的win11系统中,用户难免会遇到一些键盘相关