私はAzure RMストレージアカウントを作成していますが、後でテンプレートで使用するためにアクセスキーの値を取得したいと思います。これらの値はAzure側で生成されます。たとえば、PowerShell Get-AzureStorageKey
コマンドレットを使用してそれらを取得できます。AnsibleでAzure RMストレージアカウントキーを取得する方法は?
しかし、azure_rm_storageaccount
moduleの戻り値も、azure_rm_storageaccount_facts
moduleで収集されたファクトもこれらのキーを含んでいません。
私はREST APIコール(this answer)を使用してそれらをフェッチできると思いますが、このタスクのためだけにOAuth2トークンを作成する必要があります。 REST APIを使用すると、Ansible(環境変数AZURE_CLIENT_ID
、AZURE_SECRET
、AZURE_SUBSCRIPTION_ID
、AZURE_TENANT
)に定義されている資格情報のセットを使用する方法がない可能性があります。
(既にAnsibleに提供されている資格情報を使用して)これらのキーをフェッチする方法はありますか?
は実際には、Ansibleライブラリはthe code for fetching these keysを含めるように見えるが、また、彼らは内部でのみ使用されているようです。
マイ脚本:私は、私はあなたがストレージを取得することができませんでした理由について説明を提供するつもりですAnsible
で働いていないように直接あなたの質問に
---
- hosts: localhost
connection: local
vars:
resource_group_name: fetchtest01
resource_group_location: southcentralus
storage_account: fdsahf343u2s
storage_account_type: Standard_LRS
tasks:
- name: Ensure resource group "{{ resource_group_name }}" exists
azure_rm_resourcegroup:
name: "{{ resource_group_name }}"
location: "{{ resource_group_location }}"
- name: Ensure storage account "{{ storage_account }}" exists in "{{ resource_group_name }}" resource group
azure_rm_storageaccount:
resource_group: "{{ resource_group_name }}"
name: "{{ storage_account }}"
account_type: "{{ storage_account_type }}"
- name: Fetch storage account keys
# fetch storage_account_keys
- name: Use the storage_account_keys.primary in a template
template:
# ...
:)です。 'キーがすべてAZURE_CLIENT_ID、AZURE_SECRET、AZURE_SUBSCRIPTION_ID、AZURE_TENANT資格情報を使用する方法を使用してアクセス可能な場合、あなたは知っていますか? ' - はい。これは本質的に「サービス主体」です。このサービスプリンシパルがリストキー操作を実行する権限を持っていることを確認するだけです。このサービスプリンシパルを 'Storage Account Contributor'ロールに入れることができます。ただし、OAuth2も使用します。 –
はい、私は最初に、より深い分離があると思っていましたが、これはちょうど2つの異なる呼び出しです。実際には[Ansible](https:// github。com/ansible/ansible/blob/devel/lib/ansible/module_utils/azure_rm_common.py#L0455)。それを使用する方法をトレース... – techraf