azure - 如何在我的 ansible playbook 中引用 AWX 凭证

标签 azure ansible azure-active-directory azure-service-principal

我是 ansible 新手。我正在尝试使用现有的 playbook,但将其部署到具有单独凭据的不同 Azure 帐户,但遇到了一些问题。我通过 AWX 门户使用 client_id、tenant_id、subscription_id 和 secret 创建了一个新凭证,但我不知道如何让我的 playbook 提取此凭证而不是当前使用的凭证。

我的剧本身份验证角色像这样进行身份验证

- name: 'Authenticating against Azure'
  command: >
    az login --service-principal
    -u '{{ vault_azure_client_id }}'
    -p '{{ vault_azure_client_secret }}'
    -t '{{ vault_azure_tenant_id }}' 

然后有一个包含保管库文件的 Secrets 文件夹,其中包含看起来像加密字符串的内容,并从以下内容开始

$ANSIBLE_VAULT;1.1

我的主文件声明如下变量

  # Environment Variables
  environment:
    AZURE_CLIENT_ID: '{{ vault_azure_client_id }}'
    AZURE_SECRET: '{{ vault_azure_client_secret }}'
    AZURE_TENANT: '{{ vault_azure_tenant_id }}'

如何编辑主文件和角色以指向通过控制台创建的信用而不是存储在 ansibleVault 中的信用?

最佳答案

这是因为默认情况下您的 playbook 文件从保管库文件中获取凭据。指向您的主文件以获取凭据而不是默认文件(Vault 文件)。

变量可以来自不同的来源,例如 playbook 文件本身或在 playbook 中导入的外部变量文件。 Special precedence rules当使用定义同名变量的多个变量源时将适用。

建议 1:如果您在 playbook 文件本身中使用变量,则可以像这样使用变量。

vars:  
- AZURE_CLIENT_ID: Client ID  
- AZURE_SECRET: Client Secret Value
- AZURE_TENANT: Tenant ID  
tasks:  
- name: 'Authenticating against Azure'  
command: >  
az login --service-principal  
-u '{{ AZURE_CLIENT_ID}}'  
-p '{{ AZURE_SECRET }}'  
-t '{{ AZURE_TENANT}}'

引用:https://www.digitalocean.com/community/tutorials/how-to-use-variables-in-ansible-playbooks

建议 2:您还可以使用以下方法将额外的变量传递给 Ansible playbook

--extra-vars or -e option while running the Ansible playbook, as seen below.
#ansible-playbook myplaybook.yaml --extra-vars "nodes=webgroup”

可以引用这个Document从外部传递变量。

关于azure - 如何在我的 ansible playbook 中引用 AWX 凭证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71570873/

相关文章:

ansible - 使用 Vagrant 测试 ansible 角色

Ansible,从 Artifactory 的一般仓库下载 msi 文件

c# - Xamarin Azure Active Directory 重定向 URI 错误

c# - 澄清如何使用 Microsoft.Graph 客户端更新(修补)对象

function - Azure 函数 Blob 存储日期时间输出路径

azure - 在仪表板上显示正在运行的 Azure VM 的数量

Azure Functions 应用程序 + Auth0 提供程序,使用身份验证 token 调用 API 时收到 401

dependencies - 有人可以提供 ansible 角色依赖的最小工作示例吗?

authentication - 如何使用 java 脚本后端在 AAD 单点登录中使用访问 token 获取登录的用户详细信息(用户电子邮件 ID 和用户名)?

azure - 使用 Node.js 从 Azure WebJob 轮询 Azure 服务总线队列