Ansible - playbook 文件目录结构解析

Playbooks 是 Ansible的配置,部署,编排语言.他们可以被描述为一个需要希望远程主机执行命令的方案,或者一组IT程序运行的命令集合.

如果 Ansible 模块你是工作中的工具,那么 playbooks 就是你设置的方案计划.
在基础层面, playbooks 可以被用来管理用于部署到远程主机的配置文件.在更高的层面上,playbooks 可以依次对多层式架构上的服务器执行上线包括滚动更新在内的操作并可以将操作委托给其他主机包括在此过程中发生的与监视服务器,负载均衡服务器的交互操作在内.

虽然这里讲发很多,但是不需要立刻一次性全部学完.你可以从小功能开始,当你需要的时候再来这里找对应的功能即可.

Playbooks 被设计的非常简单易懂和基于text language二次开发.有多种办法来组织 playbooks 和其附属的文件,同时我们也会提供一些关于学习 Ansible 的建议.

关于ansible 的使用方法和简介,这里不再赘述,阅读此文档的人,默认为已经初步掌握了ansible 和ansible-playbook的使用方法,此处说明的是在多个ansible -playbook 来完成多个工作,且相互之间具有配合和依赖关系,的解决办法。

.
├── playbook-test.yaml
└── roles
    └── node_init
        ├── install.yaml
        └── main.yaml

这是我们创建好的目录结构。playbook-test.yaml 是我们执行的文件,里边包含了我们需要执行的任务。我们看一下playbook-test.yaml 的内容:

---
- hosts: node
  remote_user: root
  gather_facts: True

  roles:
    - node_init     # 在roles 中选择 node_init
  tags: node_init    # 标签

我们看到在playbook-test.yaml 中,指定了hosts、remote _user ,重要的部分是指定了选择roles 中的那个任务的文件夹来执行。

roles文件夹📁

.

└── roles
    └── node_init
        ├── install.yaml
        └── main.yaml

roles中包含了我们刚才指定的执行文件夹。roles 中可以指定多个执行文件目录,此目录中包含了 insgall.yaml、main.yaml 两个文件,main.yaml 文件是必须存在的,main.yaml 中指明了ansible.playbook具体执行哪一个任务。看一下main.yaml 的内容:

# 引用install模块
 - include: install.yaml

main.yaml 中使用install 引用了同目录下的某一yaml 做执行