abn.managed-node-bootstrap
管理节点引导
用最少的依赖引导一个 Ansible 管理的节点。该工具最初是为引导基于 Docker 镜像的分发实例而编写,因此在非容器使用时可能需要改进才能稳定。
当前支持的发行版包括:
- Alpine Linux
- 基于 Debian 的发行版,使用 apt-get(Ubuntu)
- OpenSUSE
- 基于 Red Hat 的发行版,使用 dnf/yum(Red Hat 企业版 Linux、CentOS、Fedora)
要求
除了支持 raw
模块的 Ansible 版本外,没有其他额外要求。开发是基于 Ansible 2.2 及以上版本进行的。
角色变量
该角色支持通过变量进行以下配置。
managed_node_bootstrap_use_sudo
:如果目标主机安装了sudo
并且您以非 root 用户连接,请将此设置为yes
。managed_node_bootstrap_cmd_prefix
:如果设置了managed_node_bootstrap_use_sudo
,则默认值为sudo
。您可以覆盖此设置,以确保此前缀应用于所有执行的命令。managed_node_bootstrap_done_file
:指定用于指示引导任务是否成功执行的文件。managed_node_packages_{alpine,debian,opensuse,redhat}
:用于配置要为这些发行版系列安装的包的列表。
依赖
除了 Ansible 本身外,不需要其他依赖项。
示例剧本
以下是一个示例剧本,可用于引导您在清单中的所有主机。请注意,Ansible 连接方法等需在外部配置。此外,请注意,由于我们假设这些实例(Docker 镜像假设)上没有 sudo
,因此需要以 root 用户进行连接。有关如何更改此行为,请参见上文。
---
- name: 引导 ansible 管理的节点
hosts: all
gather_facts: False
roles:
- abn.molecule-node-bootstrap
测试
在测试之前,您需要确保已克隆所需的子模块。
git submodule update --init --recursive
本地环境
此角色使用 Molecule 和 Docker 实例进行测试。您可以在开发环境中本地运行,只要您安装了 Python 并且正在运行 Docker 守护进程。
# 安装 molecule 和 docker-py 依赖
pip install -r test-requirements.txt
molecule test
这将在默认的 molecule 场景中旋转支持的发行版的容器并执行示例剧本。
Tox
该项目还配置了 tox,以便在多个 Ansible 版本下与 Molecule 一起运行。可以简单地使用 tox 运行。
tox
有关高级使用说明,请参阅 Molecule 文档 和 tox 文档。
许可证
Apache 许可证 2.0