abn.managed-node-bootstrap

管理节点引导

构建状态 Ansible 角色

用最少的依赖引导一个 Ansible 管理的节点。该工具最初是为引导基于 Docker 镜像的分发实例而编写,因此在非容器使用时可能需要改进才能稳定。

当前支持的发行版包括:

  1. Alpine Linux
  2. 基于 Debian 的发行版,使用 apt-get(Ubuntu)
  3. OpenSUSE
  4. 基于 Red Hat 的发行版,使用 dnf/yum(Red Hat 企业版 Linux、CentOS、Fedora)

要求

除了支持 raw 模块的 Ansible 版本外,没有其他额外要求。开发是基于 Ansible 2.2 及以上版本进行的。

角色变量

该角色支持通过变量进行以下配置。

  1. managed_node_bootstrap_use_sudo:如果目标主机安装了 sudo 并且您以非 root 用户连接,请将此设置为 yes
  2. managed_node_bootstrap_cmd_prefix:如果设置了 managed_node_bootstrap_use_sudo,则默认值为 sudo。您可以覆盖此设置,以确保此前缀应用于所有执行的命令。
  3. managed_node_bootstrap_done_file:指定用于指示引导任务是否成功执行的文件。
  4. 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

关于项目

Bootstrap an ansible managed node with minimal dependencies

安装
ansible-galaxy install abn.managed-node-bootstrap
许可证
apache-2.0
下载
73