nginxinc.nginx_config

Ansible Galaxy Molecule CI/CD License Project Status: Active – 项目已达到稳定可用状态,正在积极开发中。 Community Support Contributor Covenant

👾 通过参与我们的 调查,帮助改进 NGINX 配置 Ansible 角色! 👾

Ansible NGINX 配置角色

此角色在目标主机上配置 NGINX Open Source 和 NGINX Plus。

[!重要] 此角色仍在积极开发中。可能存在未发现的问题,并且角色变量可能会随着开发继续而变化。

角色要求

Ansible

如果您想使用此角色,您需要使用支持的版本的 Ansible 核心和 Jinja2,以及一些 Ansible 集合。

为方便使用,您可以通过在 Ansible 主机上运行以下四个命令来安装和/或升级 Ansible 核心、Jinja2 和上述 Ansible 集合:

pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx-config/main/.github/workflows/requirements/requirements_ansible.txt
curl -O https://raw.githubusercontent.com/nginxinc/ansible-role-nginx-config/main/.github/workflows/requirements/requirements_collections.yml
ansible-galaxy install --force -r requirements_collections.yml
rm -f requirements_collections.yml

这也将确保您以经过全面测试的版本部署/运行上述软件包/集合。

Ansible 核心

  • 此角色是在 维护的 Ansible 核心和 Python 版本上开发和测试的。

  • 使用 Ansible 核心时,您还需要安装以下 Ansible 集合:

    ---
    collections:
      - name: ansible.posix
        version: 1.5.4
      - name: community.general
        version: 9.0.1
      - name: community.docker # 仅在计划使用 Molecule 时需要(见下文)
        version: 3.10.3
    
  • 安装 Ansible 核心的说明可以在 Ansible 文档中找到。

  • 安装 Ansible 集合的说明可以在 Ansible collections 指南中找到。

[!提示] 如果您不想管理单独的集合,您也可以选择安装 Ansible 社区发行版(仍称为 Ansible,而不是 Ansible 核心)。

Jinja2

  • 此角色使用 Jinja2 模板。Ansible 核心默认会安装 Jinja2,但根据您的安装和/或升级路径,您可能正在运行旧版本的 Jinja2。此角色正常工作所需的最低 Jinja2 版本是 3.1
  • 安装 Jinja2 的说明可以在 Jinja2 网站 找到。

测试套件(可选)

如果您想为此角色贡献代码,您还需要安装 Ansible Lint 和 Molecule。

Ansible Lint(可选)

  • Ansible Lint 用于检查角色的 Ansible 最佳实践和潜在的 Ansible/YAML 问题。

  • 安装 Ansible Lint 的说明可以在 Ansible Lint 网站 找到。

  • 安装后,使用 Ansible Lint 如下简单:

    ansible-lint
    
  • 为了方便使用,您可以通过在 Ansible 主机上运行以下命令来安装和/或升级 Ansible Lint:

    pip install -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx-config/main/.github/workflows/requirements/requirements_ansible_lint.txt
    

Molecule(可选)

  • Molecule 用于测试角色的各种功能。

  • 安装 Molecule 的说明可以在 Molecule 网站 找到。您还需要安装 Molecule 插件包和 Docker Python SDK。

  • 要运行 NGINX Plus/App Protect 配置的 Molecule 测试,您必须将 NGINX Plus/App Protect 许可证复制到角色的 Molecule common/files/license 目录中。

    您也可以将 NGINX Plus/App Protect 仓库证书和密钥添加到本地环境中。运行以下命令将这些文件导出为 base64 编码变量并执行 Molecule 测试:

    export NGINX_CRT=$( cat <path to your certificate file> | base64 )
    export NGINX_KEY=$( cat <path to your key file> | base64 )
    molecule test -s plus
    
  • 为了方便使用,您可以通过在 Ansible 主机上运行以下命令来安装和/或升级 Molecule、Molecule 插件包和 Docker Python SDK:

    pip install --upgrade -r https://raw.githubusercontent.com/nginxinc/ansible-role-nginx-config/main/.github/workflows/requirements/requirements_molecule.txt
    

角色安装

可以通过 Ansible Galaxy(Ansible 社区市场)或克隆此代码库来安装此角色。安装后,您需要在 Ansible playbook 中使用 roles 关键字、import_role 模块或 include_role 模块 引入该角色。

Ansible Galaxy

要在系统上安装此角色的最新稳定版本,请使用:

ansible-galaxy install nginxinc.nginx_config

或者,如果您已经安装了此角色,可以使用以下命令将其更新到最新版本:

ansible-galaxy install -f nginxinc.nginx_config

要使用该角色,请在 playbook 中包含以下任务:

- name: 配置 NGINX
  ansible.builtin.include_role:
    name: nginxinc.nginx_config

Git

要从 GitHub 拉取该角色的最新边缘提交,请使用:

git clone https://github.com/nginxinc/ansible-role-nginx-config.git

要使用该角色,请在 playbook 中包含以下任务:

- name: 配置 NGINX
  ansible.builtin.include_role:
    name: <path/to/repo> # 例如,如果您将代码库克隆在项目的 roles 目录中,> <roles/ansible-role-nginx-config>

平台

NGINX 配置 Ansible 角色支持 NGINX Open SourceNGINX Plus 所支持的所有平台。

[!注意] 您应该能够使用此角色配置任何 NGINX 安装——无论安装方式如何——风险自负。与不受支持的安装方法/平台相关的潜在错误将在最佳努力的情况下进行处理,并且可能会被直接驳回。*

角色变量

此角色具有多个变量。所有这些变量的描述和默认值可以在 defaults/main/ 目录下的以下文件中找到:

名称 描述
main.yml NGINX 简单配置变量
selinux.yml 设置 SELinux 以允许必要的连接到您的 NGINX 设置
template.yml NGINX 配置模板变量
upload.yml NGINX 配置/HTML/SSL 上传变量

示例 Playbooks

可以在 molecule/ 目录下的以下文件中找到工作示例 playbook:

名称 描述
api/converge.yml 配置 NGINX Plus API 和实时指标仪表盘
cleanup_config/converge.yml 清理 NGINX 配置
complete/converge.yml 测试所有 NGINX 指令是否正确模板化
complete_plus/converge.yml 测试所有 NGINX Plus 特定指令是否正确模板化
default/converge.yml 在尽可能接近默认配置的情况下配置 NGINX
push_config/converge.yml 将预先存在的 NGINX 配置从系统推送到 NGINX 实例
reverse_proxy/converge.yml 配置 NGINX 在两个网页服务器之间作为反向代理
stub_status/converge.yml 配置 NGINX Open Source stub 状态指标
web_server/converge.yml 将 NGINX 配置为网页服务器

[!注意] 如果通过 Ansible Galaxy 安装此代码库,您需要将示例 playbook 中的 include_role 变量从 ansible-role-nginx-config 替换为 nginxinc.nginx_config

其他 NGINX Ansible 集合和角色

您可以在 这里 找到安装和配置 NGINX Open Source、NGINX Plus 和 NGINX App Protect 的 Ansible NGINX 核心集合角色。

您可以在 这里 找到安装 NGINX OSS 和 NGINX Plus 的 Ansible NGINX 角色。

您可以在 这里 找到安装和配置 NGINX App Protect WAF 和 NGINX App Protect DoS 的 Ansible NGINX App Protect 角色。

您可以在 这里 找到安装 NGINX Unit 的 Ansible NGINX Unit 角色。

许可

Apache 许可证,版本 2.0

作者信息

Alessandro Fael Garcia

© F5, Inc. 2020 - 2024

安装
ansible-galaxy install nginxinc.nginx_config
许可证
apache-2.0
下载
1.6M
拥有者
Welcome to this part of the NGINX open source world. We're constantly expanding our ecosystem designed to help you create the best web and app experience around