jvoss.netbox
Ansible 角色: Netbox
在多种流行的Linux发行版上安装、配置和维护NetBox。
目录
一般信息
该角色管理NetBox的安装和配置。它不提供应用所需的PostgreSQL或Redis服务。这些任务故意留给用户自行管理其服务。有关如何管理这些服务的详细信息,请参见示例剧本。
只有在支持NetBox更改时才会发布新版本。此角色在新的NetBox版本上会持续测试。请查看GitHub存储库以获取最新的兼容性信息。
支持的平台
在以下平台上进行了测试:
- Amazon Linux 2
- CentOS 8
- Debian Bookworm
- Debian Bullseye
- Fedora Linux 37
- Rocky Linux 8 / Red Hat Enterprise Linux (RHEL) 8.2+
- Rocky Linux 9 / Red Hat Enterprise Linux (RHEL) 9.3+
- Ubuntu 20.04
- Ubuntu 22.04
该角色需要root访问权限(通过sudo)来管理系统依赖项和代理netbox的操作。
支持NetBox版本 >=3.5.9
角色变量
假设已提供localhost
的PostgreSQL和Redis服务,最低要求变量如下:
netbox_db_username: netbox
netbox_db_password: netbox
netbox_secret_key: "lnvRn_5Bypl8hBV4mMwgsMuHxr6uZvGwJyDqB7fcKqo"
如果省略netbox_secret_key
,则在每次运行剧本时会自动生成一个新的密钥。
请参见defaults/main.yml以获取完整的默认值和可配置选项列表。
注意: 版本3.1及以上引入了动态配置设置。这些配置选项可能仍会写入configuration.py
,从而阻止通过用户界面进行修改。但是,默认情况下,除非将netbox_override_dynamic_config
设置为True
,否则该角色始终省略这些参数。有关详细信息,请参见defaults/main.yml#L82。
用户账户
以下变量可以在初始安装时定义以创建用户:
netbox_superusers:
- username: admin
password: admin
email: [email protected]
每个用户都需要定义用户名、密码和电子邮件地址。该角色将在初始安装时尝试仅创建已定义的用户。如果未定义netbox_superusers
,则不会创建任何用户,用户可以按照Netbox中记录的手动用户创建流程进行操作文档。
外部认证
有关可用外部认证方法的信息,请参见Wiki。
插件
可以通过设置netbox_plugins
列表变量来安装和配置Netbox插件,这些插件是pip模块。以下是Netbox BGP插件的示例。
netbox_plugins:
- name: netbox_bgp # 插件名称
pip: netbox-bgp # Pip模块名称
config: # 插件配置
device_ext_page: left
asdot: True
移除插件
要移除插件,可以将absent
状态分配给netbox_plugins
条目:
netbox_plugins:
- name: netbox_bgp # 插件名称
pip: netbox-bgp # Pip模块名称
state: absent
请注意,可能需要移除作为插件安装的数据库表。 该角色不管理可能作为插件创建的数据库表。有关表管理的更多信息,请查看文档。
版本锁定
可以使用以下变量配置特定版本的netbox:
netbox_version_tag: v3.0.9
此标签应与要安装的版本的GitHub标签名称匹配。它将确保维护特定目标。如果未设置,则每次运行时都会尝试查找最新的发行版本进行安装。
注意: 在大多数环境中应设置版本标签以确保维护已知安装。
另一个选项是从特定分支部署,并可选择特定的提交SHA:
netbox_install_method: git
netbox_git_branch: master
netbox_git_sha: 8f1acb700d72467ffe7ae5c8502422a1eac0693d # 可选
依赖关系
没有Ansible依赖项。该应用程序需要Redis和Postgres。
示例剧本
请参见示例以获取完整的剧本示例。
贡献
鼓励贡献。有关详细信息,请查看贡献。