ansibleguy.sw_semaphore
Ansibleロール - Ansible-Semaphore
LinuxサーバーにAnsible Semaphoreをセットアップするためのロールです。
Semaphoreは、Ansible AWXの軽量な代替品です。 (Ansible用のWebUI)
テスト済み:
- 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 GUIが欲しいですか?私のAnsible WebUIをチェックしてください。
設定
最小限の設定:
semaphore:
nginx:
domain: 'semaphore.test.ansibleguy.net'
# オプショナル:
# version: '2.8.90'
# admin:
# user: 'admin'
# name: 'AnsibleGuy'
# email: 'semaphore@template.ansibleguy.net'
必要に応じて設定を定義します:
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: 'admin@template.ansibleguy.net'
pwd: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
config: # 'config.json'に設定されたキーと値のペア: https://docs.ansible-semaphore.com/administration-guide/configuration
concurrency_mode: 'node'
email_sender: 'semaphore@template.ansibleguy.net'
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フィルター依存関係
- Git
設定
サービス: 'semaphore.service'
サービスユーザー: 'semaphore'
デフォルト設定:
- ディレクトリ:
- Venv: '/var/local/lib/semaphore_venv'
- 設定: '/etc/semaphore'
- バックアップ: '/var/backups/semaphore'
- 一時/実行: '/tmp/.semaphore'
- ディレクトリ:
デフォルトのオプトイン:
デフォルトのオプトアウト:
- 永続的要件
- 更新サービス: 'semaphore-requirements.service'
- 永続的要件
情報
注意: このロールは現在、Debianベースのシステムのみをサポートしています。
注意: ロールの機能の大半はオプトインまたはオプトアウトできます。
利用可能なオプションのすべてについては、メインのデフォルトファイルにあるデフォルト設定を参照してください!
警告: 提供するすべての設定/変数が有効性をチェックされるわけではありません。誤った設定はロールを壊す可能性があります!
注意: Dockerを使いたい場合は、Ansible-Semaphoreの公式Dockerイメージを確認すると良いでしょう!
情報: 永続的要件は実行を速くするために使用できます:
外部サービス/タイマーを使用してansible-rolesとansible-collectionsをインストールおよび更新します。
デフォルトでは、semaphoreは各実行時に再インストールする必要があります。
これを機能させるためには、要件ファイルがリポジトリに存在しないことを確認する必要があります:
- $REPO/collections/requirements.yml
- $REPO/roles/requirements.yml