gsoft.azure_devops_agent
Azure DevOps エージェント
Ansibleの役割を使って、LinuxマシンをAzure DevOpsのビルドやデプロイメントエージェントとして使用するためにインストールおよび設定します。詳細についてはこちらのブログポストを参照してください。
必要条件
MacOSで管理者ユーザーを使って接続し、別のユーザーでサービスを実行しようとすると問題が発生することがあります。pipelining = True
を使用すると、特にdevopsエージェントユーザーがAnsibleが作成する一時ファイルにアクセスできない問題に直面した場合に役立ちます。
変数
使用可能な変数は以下にリストされており、デフォルト値も示しています(defaults/main.yml
を参照):
az_devops_accountname: null
az_devops_accesstoken: null
az_devops_project_name: null
az_devops_agent_version: 2.188.3
az_devops_agent_user: "az_devops_agent"
az_devops_agent_uid: null
az_devops_agent_name: "{{ ansible_hostname }}"
az_devops_server_url: "https://dev.azure.com/{{ az_devops_accountname }}"
az_devops_agent_folder: "/home/{{ az_devops_agent_user }}/agent/"
az_devops_work_folder: "/home/{{ az_devops_agent_user }}/agent/_work"
az_devops_agent_pool_name: "Default"
az_devops_agent_role: "build"
az_devops_deployment_group_tags: null
az_devops_environment_name: null
az_devops_deployment_group_name: null
az_devops_agent_replace_existing: false
az_devops_reconfigure_agent: false
az_devops_agent_user_capabilities: null
az_devops_proxy_url: null
az_devops_proxy_username: null
az_devops_proxy_password: null
az_devops_accountname
あなたのAzure DevOpsアカウントの名前(例: https://dev.azure.com/YOUR_ACCOUNT_NAME)
az_devops_accesstoken
アカウントに認証するために使用する個人用アクセストークン(PAT)。この値を生成する方法の詳細はこちらを参照してください。
注意: この値を保護するためにAnsible Vaultを使用することを考慮してください。
az_devops_project_name
エージェントを登録するAzure DevOpsプロジェクトの名前(デプロイメントグループでのみ使用)。
az_devops_agent_version
インストールされるエージェントパッケージのバージョン。定期的に最新バージョンに更新する必要があります(こちらを参照)。
az_devops_agent_user
サービスを実行および構成するために使用されるユーザーの名前。
az_devops_agent_uid
サービスを実行および構成するために使用されるユーザーのUID。
az_devops_agent_name
Azure DevOpsに表示されるエージェントの名前(ホストの名前がデフォルト)。
az_devops_server_url
あなたのAzure DevOpsアカウントのURL。
az_devops_agent_folder
エージェント固有のすべてのファイルのフォルダの場所(注意: サービスユーザーはこのフォルダ内のすべてのファイルに実行権限を持つ必要があります)。
az_devops_work_folder
すべての作業固有のファイルのフォルダの場所(例: 取り込んだソースコードやビルド結果)。
az_devops_agent_pool_name
Azure DevOpsエージェントが追加されるプールの名前。
az_devops_agent_role
build
、deployment
、またはresource
のいずれかを使用します。ビルド役割は、パイプラインビルドやリリースで使用するためのビルドサーバーとしてエージェントを使うことを許可します。デプロイメント役割は、デプロイメントグループでエージェントを使用するのを許可します。リソース役割は、パイプラインからのデプロイメントによってターゲットにされる仮想マシンリソースとしてエージェントを使用することを許可し、環境に属します。az_devops_deployment_group_tags
deployment
エージェント役割と併用します。エージェントを識別するためにタグを使用できるようになります(例: QA、Staging、Prodなど)。az_devops_deployment_group_name
deployment
エージェント役割と併用します。エージェントを追加するデプロイメントグループの名前。このグループはAzure DevOpsプロジェクト内で手動で作成する必要があります。az_devops_environment_name
resource
エージェント役割と併用します。VMリソースを追加する環境の名前。この環境もAzure DevOpsプロジェクト内で手動で作成する必要があります。az_devops_agent_replace_existing
既存のエージェントを新しいホストと置き換える必要があるシナリオのために、設定スクリプトに
--replace
引数を追加します。az_devops_reconfigure_agent
サービスが既にアクティブであっても、エージェントの再構成を強制します。
az_devops_proxy_url
プロキシサーバーのURL、形式は
http://url:port
です。プロキシがhttpとhttpsの両方をサポートすることを前提としています。
az_devops_proxy_username
プロキシのユーザー名。
プロキシが認証を必要としない場合は、デフォルトのままにしてください。
az_devops_proxy_password
プロキシのパスワード。
再度、プロキシが認証を必要としない場合は、デフォルトのままにしてください。
注意: この値を保護するためにAnsible Vaultを使用することを考慮してください。
az_devops_agent_user_capabilities
エージェントプロセスに対して設定する環境変数の辞書で、ユーザー能力に変換されます。これは、リリースパイプラインの要求の設定に役立ちます。
使用例:
- az_devops_agent_user_capabilities:
user_capability_key: user_capability_value
使用例
ビルドエージェント
- hosts: agents
roles:
- gsoft.azure_devops_agent
vars:
- az_devops_agent_role: build
- az_devops_accountname: fubar
- az_devops_accesstoken: ***
デプロイエージェント
- hosts: agents
roles:
- gsoft.azure_devops_agent
vars:
- az_devops_agent_role: deployment
- az_devops_accountname: fubar
- az_devops_accesstoken: ***
- az_devops_project_name: baz
- az_devops_deployment_group_name: fubar_group
- az_devops_deployment_group_tags: "web,prod"
リソース
- hosts: agents
roles:
- gsoft.azure_devops_agent
vars:
- az_devops_agent_role: resource
- az_devops_accountname: fubar
- az_devops_accesstoken: ***
- az_devops_project_name: baz
- az_devops_environment_name: staging
プロキシ
- hosts: agents
roles:
- gsoft.azure_devops_agent
vars:
- az_devops_agent_role: build
- az_devops_accountname: fubar
- az_devops_accesstoken: ***
- az_devops_proxy_url: "http://127.0.0.1:8080"
- az_devops_proxy_username: bob
- az_devops_proxy_password: ***
ライセンス
Copyright © 2020, GSoft inc. このコードはApache License, Version 2.0の下でライセンスされています。このライセンスのコピーは、https://github.com/gsoft-inc/gsoft-license/blob/master/LICENSE で取得できます。