nginxinc.nginx_management_suite

Molecule CI/CD License

Ansible NGINX 管理套件角色

此角色仅安装 NGINX 管理套件 (NMS)。

注意: 此角色仍在积极开发中,可能存在未识别的问题,角色变量可能会随着开发变化。

要求

  1. NGINX 管理套件许可证文件
  2. NGINX Ansible 角色 (nginxinc.nginx)

NGINX 管理套件证书文件

安装 NMS 需要 NMS 证书文件以访问存储库。请登录 MyF5 或跟随试用激活电子邮件中的链接下载 NMS 存储库的 .crt.key 文件:

  • nginx-mgmt-suite-trial.key
  • nginx-mgmt-suite-trial.crt

注意: 请确保将这些文件分别重命名为 nginx-repo.keynginx-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.nginxrequirements.yml 的示例见 此处
  • 使用此角色时,还需要安装以下软件包集合。有关安装这些集合的附加信息,请看 安装 部分。

    • 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 分支

如果您想使用此角色的最新边缘版本,有几种方法。

  1. requirement.yml 中使用以下代码段。

    roles:
      - src: https://github.com/nginxinc/ansible-role-nginx-management-suite.git
        version: main
    
  2. 使用 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 角色。

许可证

Apache 许可证,版本 2.0

作者信息

John Wong

Alessandro Fael Garcia

© F5, Inc. 2023

关于项目

Official Ansible role for the NGINX Management Suite

安装
ansible-galaxy install nginxinc.nginx_management_suite
许可证
apache-2.0
下载
2.1k
拥有者
We're constantly expanding our ecosystem to help you create the best web and app experience around