nginxinc.nginx_config
👾 通过参与我们的 调查,帮助改进 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 Source 和 NGINX 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 角色。
许可
作者信息
© F5, Inc. 2020 - 2024
Official Ansible role for configuring NGINX
ansible-galaxy install nginxinc.nginx_config