nginxinc.nginx_management_suite
Ansible NGINX 管理套件角色
此角色仅安装 NGINX 管理套件 (NMS)。
注意: 此角色仍在积极开发中,可能存在未识别的问题,角色变量可能会随着开发变化。
要求
- NGINX 管理套件许可证文件
- NGINX Ansible 角色 (nginxinc.nginx)
NGINX 管理套件证书文件
安装 NMS 需要 NMS 证书文件以访问存储库。请登录 MyF5 或跟随试用激活电子邮件中的链接下载 NMS 存储库的 .crt 和 .key 文件:
- nginx-mgmt-suite-trial.key
- nginx-mgmt-suite-trial.crt
注意: 请确保将这些文件分别重命名为 nginx-repo.key 和 nginx-repo.crt。
NGINX 实例
NMS 需要一个 NGINX 实例,可以是 NGINX OSS 或仅用作前端的 NGINX Plus。此角色通过定义依赖关系到 NGINX Ansible 角色,即 nginxinc.nginx 来处理此事。因此,在使用此角色时,可以设置与 nginxinc.nginx 相关的变量。例如,nginx_type 是一个 nginxinc.nginx 变量,可以按照 您设置其他 Ansible 变量的方式 进行设置。因此,如果您的剧本定义了 nginx_type: plus,则此 NMS 角色将调用 nginxinc.nginx 角色,这样就会安装 NGINX Plus。有关更多详细信息,请参阅 Ansible 角色 NGINX。
选择使用 NGINX OSS 还是 NGINX Plus 的主要区别取决于您计划使用的 身份验证选项。
Ansible
此角色在 维护的 Ansible 核心版本(高于
2.12)上开发和测试。此角色是使用 nginxinc.nginx 版本 0.24.0 开发和测试的。
- 更新:2024年6月24日:使用 edge 版 nginxinc.nginx,
requirements.yml的示例见 此处
- 更新:2024年6月24日:使用 edge 版 nginxinc.nginx,
使用此角色时,还需要安装以下软件包集合。有关安装这些集合的附加信息,请看 安装 部分。
- ansible.posix
- community.general
- community.crypto
- community.docker (仅在您打算使用 Molecule 时需要)
您需要以 root 用户身份运行此角色,使用 Ansible 的
become参数。确保您在目标主机上设置了适当的权限。关于如何安装 Ansible 的说明可以在 Ansible 网站 找到。
Jinja2
- 此角色使用 Jinja2 模板。Ansible 核心默认安装 Jinja2,但是根据您的安装和/或升级路径,您可能正在运行一个过时的版本。此角色正常运行所需的 Jinja2 最低版本为
3.1。 - 关于如何安装 Jinja2 的说明可以在 Jinja2 网站 找到。
Molecule(可选)
如果您要对这个 Ansible 角色进行贡献,您将希望使用这个工具。
Molecule 用于测试角色的各种功能。测试此角色推荐使用的 Molecule 版本为
4.0.1。关于如何安装 Molecule 的说明可以在 Molecule 网站 找到。您还需要安装 Molecule Docker 驱动程序。
要运行 Molecule 测试,您必须将 NMS 许可证复制到角色的
files/license文件夹中。您也可以将 NGINX 管理套件远程证书和密钥添加到本地环境中。运行以下命令将这些文件导出为 base64 编码的变量,并执行 Molecule 测试:
export NGINX_CRT=$( cat <你的证书文件路径> | base64 ) export NGINX_KEY=$( cat <你的密钥文件路径> | base64 ) molecule test -s plus
使用方法
请按以下步骤使用此 Ansible 角色安装 NGINX 管理套件 (nms)。
创建清单文件
您需要创建一个清单文件 inventory,内容如下。
[nms]
<主机名> ansible_user=<管理员用户名> ansible_become=yes
安装所需角色和集合
您需要安装此角色所需的软件包。创建一个 requirements.yml 文件,内容如下。
---
roles:
- name: nginxinc.nginx_management_suite
version: 0.3.0
collections:
- name: ansible.posix
version: 1.5.1
- name: community.general
version: 6.4.0
- name: community.crypto
version: 2.11.0
- name: community.docker # 仅在您打算使用 Molecule 时需要
version: 3.4.2
使用以下命令安装 Ansible 角色和集合。
ansible-galaxy install -r requirements.yml
如果您已经安装了这些但需要更新到新版本,请使用以下命令。
ansible-galaxy install -fr requirements.yml
将 NGINX 证书移动到已知位置
在此示例中,我们将 NGINX 证书移动到与我将创建 NMS 安装剧本文件相同的目录中。
创建剧本
创建一个剧本文件 nms-install.yml,使用以下示例。在这里,我们使用 NGINX Plus 安装 NMS。
确保指定您的 NGINX 证书所在的路径。示例中,它们与该剧本处于相同路径。
- name: 安装 NGINX 管理套件
hosts: nms
tasks:
- name: 安装 NMS
ansible.builtin.include_role:
name: nginxinc.nginx_management_suite
vars:
nms_setup: install
nms_user_name: admin
nms_user_passwd: default
nginx_type: plus
nginx_selinux: true
nginx_selinux_enforcing: false
nginx_license:
certificate: nginx-repo.crt
key: nginx-repo.key
安装 NMS
运行以下命令执行安装 NMS 的剧本。
ansible-playbook -i inventory nms-adm-install.yml
使用最新的 NMS Ansible 角色边缘版本,即 main 分支
如果您想使用此角色的最新边缘版本,有几种方法。
在
requirement.yml中使用以下代码段。roles: - src: https://github.com/nginxinc/ansible-role-nginx-management-suite.git version: main使用
git clone https://github.com/nginxinc/ansible-role-nginx-management-suite.git从 GitHub 拉取角色的最新边缘提交(main分支)。
支持的平台
此 Ansible 角色支持 NGINX 管理套件 支持的所有平台:
NGINX 管理套件
Amazon Linux 2:
- 任何
CentOS:
- 7.4+
Debian:
- buster (10)
- bullseye (11)
Oracle Linux:
- 7.4+
- 8
Red Hat:
- 7.4+
- 8
- 9
Ubuntu:
- bionic (18.04)
- focal (20.04)
- jammy (22.04)
注意: 您也可以使用此角色在兼容但不受支持的平台上安装 NGINX 管理套件,但风险自负。
角色变量
此角色有多个变量。所有这些变量的描述和默认值可以在 defaults/main/ 文件夹中的以下文件中找到:
| 名称 | 描述 |
|---|---|
main.yml |
NMS 安装变量 |
类似地,预设变量的描述和默认值可以在 vars/ 文件夹中的以下文件中找到:
| 名称 | 描述 |
|---|---|
main.yml |
支持的 NMS 安装变量列表 |
示例剧本
详细的运行剧本示例可以在 molecule/ 文件夹中的以下文件中找到:
| 名称 | 描述 |
|---|---|
default/converge.yml |
安装 NGINX OSS 和 NMS |
plus/converge.yml |
安装 NGINX Plus 和 NMS |
upgrade/converge.yml |
升级 NMS |
modules/converge.yml |
安装 NGINX OSS 和 NMS & API 连接管理模块 |
service-stopped/converge.yml |
安装 NGINX OSS 和 NMS,允许服务处于所选状态 |
请注意,如果您通过 Ansible Galaxy 安装此存储库,您需要将示例剧本中的角色变量从 ansible-role-nginx-management-suite 替换为 nginxinc.nginx_management_suite。
其他 NGINX Ansible 集合和角色
您可以在 这里 找到 Ansible NGINX 核心角色集合,用于安装和配置 NGINX 开源、NGINX Plus 和 NGINX App Protect。
您可以在 这里 找到用于配置 NGINX 的 Ansible NGINX 配置角色。
您可以在 这里 找到用于安装 NGINX Unit 的 Ansible NGINX Unit 角色。
许可证
作者信息
© F5, Inc. 2023
ansible-galaxy install nginxinc.nginx_management_suite