ansibleguy.sw_semaphore
Ansible角色 - Ansible-Semaphore
在Linux服务器上配置Ansible Semaphore的角色。
Semaphore是一个轻量级的Ansible AWX替代方案。(_用于Ansible使用的Web界面_)
测试环境:
- Debian 11
安装
# 最新版
ansible-galaxy role install git+https://github.com/ansibleguy/sw_semaphore
# 从galaxy安装
ansible-galaxy install ansibleguy.sw_semaphore
# 或者安装到自定义角色路径
ansible-galaxy install ansibleguy.sw_semaphore --roles-path ./roles
# 安装依赖
ansible-galaxy install -r requirements.yml
使用方法
您想要一个简单的Ansible图形界面吗?可以查看我的Ansible WebUI
配置
最小配置:
semaphore:
nginx:
domain: 'semaphore.test.ansibleguy.net'
# 可选:
# version: '2.8.90'
# admin:
# user: 'admin'
# name: 'AnsibleGuy'
# email: '[email protected]'
根据需要定义配置:
semaphore:
manage:
webserver: true # 安装并配置本地nginx,使用最小CA证书
database: true # 安装并配置本地mariadb
backup: true # 安装每日本地数据库备份服务(如果数据库被管理)
user: true # 创建服务用户'semaphore'
ansible_cfg: true # 配置/home/semaphore/.ansible.cfg
admin: true # 安装后添加管理员用户
version: '2.8.90' # 参见:https://github.com/ansible-semaphore/semaphore/releases
persistent_requirements: false
admin:
user: 'admin'
email: '[email protected]'
pwd: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
config: # 配置键值对根据在'config.json'中设置的内容:https://docs.ansible-semaphore.com/administration-guide/configuration
concurrency_mode: 'node'
email_sender: '[email protected]'
email_host: 'mail.template.ansibleguy.net'
email_alert: true
# 可选
ldap_enable: true
ldap_needtls: true
ldap_binddn: 'service_semaphore'
ldap_bindpassword: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
ldap_server: 'ldap.template.ansibleguy.net:636'
ldap_searchfilter: '(&(mail=%s)(objectClass=person)(memberOf:=CN=semaphore,OU=Groups,DC=template,DC=ansibleguy,DC=net))' # 使用邮件登录;须在' semaphore'组中
# 可选=>参见:https://docs.ansible-semaphore.com/administration-guide/security#database-encryption
cookie_hash: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
cookie_encryption: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
access_key_encryption: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
requirements: # 执行环境所需的依赖
pip: ['httpx'] # 任何Python3模块
collections: ['community.general'] # 任何Ansible集合(如果persistent_requirements=true)
roles: [] # 任何Ansible角色(如果persistent_requirements=true)
ansible_config: # /home/semaphore/.ansible.cfg => 如果manage.ansible_cfg=true;参见:https://docs.ansible.com/ansible/latest/reference_appendices/config.html
defaults: # 部分
remote_port: 48322
vault_id_match: 'semaphore'
diff:
context: 2
backup:
retention_days: 30
您可能想使用'ansible-vault'来加密您的密码:
ansible-vault encrypt_string
执行
运行剧本:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml
还有一些有用的标签可用:
- webserver
- database
- config
- requirements
要调试错误,您可以在运行时设置'debug'变量:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes
功能
包安装
- 指定版本的Ansible-Semaphore
- Python3 PIP
- Python3虚拟环境
- Ansible
- 常见的Ansible Jinja-Filter依赖项
- Git
配置
服务:'semaphore.service'
服务用户:'semaphore'
默认配置:
- 目录:
- 虚拟环境:'/var/local/lib/semaphore_venv'
- 配置:'/etc/semaphore'
- 备份:'/var/backups/semaphore'
- 临时/运行:'/tmp/.semaphore'
- 目录:
默认选项:
默认不选项:
- 持续的需求
- 更新服务:'semaphore-requirements.service'
- 持续的需求
信息
注意:此角色当前仅支持基于Debian的系统
注意:角色的大部分功能可以选择启用或禁用。
有关所有可用选项,请参见主默认文件中的默认配置!
警告:您提供的并非每个设置/变量都会被检查有效性。错误的配置可能会导致角色无法使用!
注意:如果您想使用Docker,请查看Ansible-Semaphore的官方Docker镜像!
信息:可以使用持久需求加快执行速度:
它将使用外部服务/定时器安装和更新ansible角色和ansible集合。
默认情况下,semaphore在每次执行时都需要重新安装它们。
为了使其正常工作,您还必须确保需求文件在您的仓库中不存在:
- $REPO/collections/requirements.yml
- $REPO/roles/requirements.yml
安装
ansible-galaxy install ansibleguy.sw_semaphore
许可证
gpl-3.0
下载
2.1k
拥有者
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg