wcm_io_devops.conga_ansible_controlhost
wcm_io_devops.conga_ansible_controlhost
このロールは、wcm.io DevOps Ansible Automation for AEM のためにホストを制御ホストとして設定します。
このロールは以下のツールをインストールします。
- JDK
- Maven
- Ansible(cffi、jmespath、botoなどの必要なpipパッケージを含む)
- Terraform
提供された場合、ロールはAWSのcredentials
ファイルと.vault_pass
ファイルをデプロイします。
ロールにより、必要に応じて.bashrcで環境を設定することができます。
- EDITOR
- ANSIBLE_VAULT_PASSWORD_FILE
Mavenに対しては、settings.yml
と(オプションの)settings-security.xml
の設定がサポートされています。
必要なOSパッケージに加えて、迅速な監視とデバッグを可能にするために以下のパッケージがインストールされます。
- nano
- iftop
- htop
- iotop
要件
このロールはAnsible 2.7以上を必要とします。
ロール変数
使える変数は以下にリストされています。デフォルト値も含まれています。
controlhost_dependency_maven: true
Mavenのロール依存関係を有効/無効にします。
controlhost_dependency_java: true
Javaのロール依存関係を有効/無効にします。
controlhost_dependency_epel: true
EPELのロール依存関係を有効/無効にします。
controlhost_dependency_terraform: true
Terraformのロール依存関係を有効/無効にします。
controlhost_user: "{{ ansible_env.SUDO_USER | default(ansible_env.USER) }}"
制御ホストのユーザー。
controlhost_group: "{{ controlhost_user }}"
制御ホストのユーザーグループ。
controlhost_user_home: "/home/{{ controlhost_user }}"
ユーザーのホームディレクトリ。
controlhost_maven_path: "{{ controlhost_user_home }}/.m2"
Mavenディレクトリのパス。
controlhost_maven_settings_path: "{{ controlhost_maven_path }}/settings.xml"
Mavenのsettings.xmlのパス。
controlhost_maven_settings_security_path: "{{ controlhost_maven_path }}/settings-security.xml"
Mavenのsettings-security.xmlのパス。
controlhost_maven_artifact_threads: 5
アーティファクトのダウンロードに使用されるスレッド数。増やすことでダウンロード速度が向上します。
#controlhost_maven_master_password:
設定すると、暗号化されたマスターパスワードと制御ホスト用のMavenリポジトリの認証情報が含まれるMavenのsettings-security.xmlが作成されます。
controlhost_nodejs_npmrc_path: "{{ controlhost_user_home }}/.npmrc"
.npmrcのパス。
controlhost_nodejs_npmrc_always_auth: true
.npmrc内の「always-auth」パラメータを制御します。
# controlhost_nodejs_npmrc_registries:
#- registry:
# username:
# password:
レジストリが設定されていると、.npmrcが準備されます。現時点では1つのレジストリしか定義できません。ユーザー名とパスワードは平文で提供する必要があります。ロールが認証トークンの作成を管理します。
#controlhost_vault_pass_path: "{{ controlhost_user_home }}/.ansible/.vault_pass"
設定すると、.bashrc内のANSIBLE_VAULT_PASSWORD_FILE
環境変数が設定されます。
#controlhost_vault_pass_src:
設定すると、指定されたファイルが制御ホストのcontrolhost_vault_pass_path
にコピーされます。
controlhost_aws_credentials_path: "{{ controlhost_user_home }}/.aws/credentials"
AWS認証情報ファイルのパス。controlhost_aws_credentials_src
と協調して機能します。
#controlhost_aws_credentials_src:
設定すると、指定されたファイルがcontrolhost_aws_credentials_path
にコピーされます。
#controlhost_default_editor: "nano"
設定すると、bashrcでEDITORがこの値でエクスポートされます。
controlhost_bashrc: "{{ controlhost_user_home }}/.bashrc"
ANSIBLE_VAULT_PASSWORD_FILE
およびEDITOR
のプロビジョニング用のbash/shell実行コマンドファイルへのパス。
controlhost_maven_repositories:
- id: central
url: https://repo.maven.apache.org/maven2/
- id: adobe-public-releases
url: https://repo.adobe.com/nexus/content/groups/public
releases:
enabled: "true"
updatePolicy: "never"
snapshots:
enabled: "false"
Mavenのsettings.xmlに設定するMavenリポジトリのリスト。デフォルトでMaven中央とAdobeの公共リリースリポジトリがここに設定されています。
- id: [REPO-ID]
url: [REPO-URL]
username: [USERNAME] # オプション
password: [PASSWORD] # オプション
releases: # (オプション)
[KEY]:[VALUE] # <key>value</key>に変換されます
snapshots: # (オプション)
[KEY]:[VALUE] # <key>value</key>に変換されます
Mavenリポジトリの設定オプションのリスト。
controlhost_maven_mirrors: []
ミラー設定のリスト。詳細な設定は https://maven.apache.org/guides/mini/guide-mirror-settings.html を参照してください。
# ミラー設定の例
# - id: [REPO-ID]
# url: [REPO-URL]
# mirrorOf: *
ミラー設定の例。
# controlhost_maven_settings_custom:
設定すると、この部分がMavenのsettingsの
#controlhost_ansible_version: 2.5.6
設定すると、制御ホストに指定されたバージョンのAnsibleがインストールされます。
controlhost_python_version: 3
Python3またはPython2がインストールされるかどうかを制御します。正確なバージョンはホストのOSによります。
controlhost_packages_pip_upgrade: true
pipを--upgradeオプションで実行するかどうかを制御します。
controlhost_packages_pip_enabled: true
pipパッケージのインストールを有効/無効にします。
controlhost_packages_pip:
- markupsafe
- jmespath
- cffi
- cryptography
- boto
- lxml
- boto3
- rsa
- colorama
- botocore
- s3transfer
- awscli
インストールするpipパッケージ。Ansible 2.7以上を使用する場合は、https://docs.ansible.com/ansible/latest/modules/pip_module.html に記載されているように、バージョンも指定できます。
# controlhost_packages_os: []
制御ホストにインストールするOSパッケージのリスト。OSに依存し、varsフォルダに変数定義があります。
controlhost_packages_os_enabled: true
OSパッケージのインストールを有効/無効にします。
依存関係
このロールは以下のロールに依存しています。
例
localhostをデフォルトエディタNANO
として制御ホストとしてセットアップし、.ansible/.vault_pass
にANSIBLE_VAULT_PASSWORD_FILE
を配置し、マスターパスワードを'masterpassword'として設定します。
- hosts: localhost
vars:
controlhost_default_editor: nano
controlhost_vault_pass_path: "{{ controlhost_user_home }}/.ansible/.vault_pass"
controlhost_maven_master_password: masterpassword
roles:
- wcm_io_devops.conga_ansible_controlhost
ライセンス
Apache 2.0