ansible-galaxyでインストールする必要のある一連のロールがあります。
- src: 'https://gitlab.private/role-openstack-net.git'
scm: 'git'
version: '1.0.0'
name: 'role-openstack-net'
- src: 'https://gitlab.private/role-openstack-subnet.git'
scm: 'git'
version: '1.0.0'
name: 'role-openstack-subnet'
実際には、私には約20の役割があります。
すべての役割はプライベートなので、実行すると次のようになります。
ansible-galaxy install -f -c -r galaxy.yml
役割ごとにユーザー/パスを要求されますが、これはちょっと面倒です
手動で、私はします:
git config --global credential.helper store
クレデンシャルを一度入力すると、すべての人にそれが記憶されます
しかし、ジェンキンスの仕事ではどうすればよいですか?
私はここでトークンを置く方法があるのを見ました:
https://github.com/ansible/ansible/pull/34621
しかし、それはうまくいかないようです。
何か案が ?
現在、実行時にクレデンシャルパラメータをansible-galaxyに渡すことはサポートされていません。
にクレデンシャルを追加することは可能requirements.yml
ですが、他の人がいつかそれらを悪用する可能性があるため、一般にコードにクレデンシャルを追加することは理想的ではありません。
解決策はrequirements.yml
、実行時に更新することです。
プロファイルを表示して設定を更新することにより、Gitlabパーソナルアクセストークンを作成します:https://private.gitlab/profile/personal_access_tokens
選択したシークレットマネージャーを使用して、実行時にトークンで変数PAT_TOKENを設定します。
Jenkinsスクリプトで、以前sed
に更新requirements.yml
するために使用しますansible-galaxy install
sed -i "s#https://gitlab.private/#https://oauth2:[email protected]/#g requirements.yml
Jenkinsの代わりにGitlab-ciを使用していた場合は、既存のciトークンを使用できます。
sed -i "s#https://gitlab.private/#https://gitlab-ci-token:[email protected]/#g requirements.yml
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加