6.11. 将云凭证与云清单搭配使用


在同步云清单时,可以使用云凭证。它们也可以与作业模板关联,并包含在运行时环境中,供 playbook 使用。支持以下云凭证:

6.11.1. OpenStack

以下示例 playbook 调用 nova_compute Ansible OpenStack 云模块并需要凭证:

  • auth_url
  • username
  • password
  • 项目名称

这些字段通过环境变量 OS_CLIENT_CONFIG_FILE 提供给 playbook,它指向控制器基于云凭证内容的 YAML 文件。以下示例 playbook 将 YAML 文件加载到 Ansible 变量空间中:

  • OS_CLIENT_CONFIG_FILE 示例:
clouds:
  devstack:
    auth:
      auth_url: http://devstack.yoursite.com:5000/v2.0/
      username: admin
      password: your_password_here
      project_name: demo
  • Playbook 示例:
- hosts: all
  gather_facts: false
  vars:
    config_file: "{{ lookup('env', 'OS_CLIENT_CONFIG_FILE') }}"
    nova_tenant_name: demo
    nova_image_name: "cirros-0.3.2-x86_64-uec"
    nova_instance_name: autobot
    nova_instance_state: 'present'
    nova_flavor_name: m1.nano


    nova_group:
      group_name: antarctica
      instance_name: deceptacon
      instance_count: 3
  tasks:
    - debug: msg="{{ config_file }}"
    - stat: path="{{ config_file }}"
      register: st
    - include_vars: "{{ config_file }}"
      when: st.stat.exists and st.stat.isreg


    - name: "Print out clouds variable"
      debug: msg="{{ clouds|default('No clouds found') }}"


    - name: "Setting nova instance state to: {{ nova_instance_state }}"
      local_action:
        module: nova_compute
        login_username: "{{ clouds.devstack.auth.username }}"
        login_password: "{{ clouds.devstack.auth.password }}"

6.11.2. Amazon Web Services

Amazon Web Services (AWS)云凭证在 playbook 执行过程中作为以下环境变量公开(在作业模板中,选择您的设置所需的云凭证):

  • AWS_ACCESS_KEY_ID
  • AWS-SECRET_ACCESS_KEY

每个 AWS 模块在通过控制器运行时都会隐式使用这些凭证,而无需设置 aws_access_key_idaws_secret_access_key 模块选项。

6.11.3. Google

Google 云凭证在 playbook 执行过程中作为以下环境变量公开(在作业模板中,选择您的设置所需的云凭证):

  • GCE_EMAIL
  • GCE_PROJECT
  • GCE_CREDENTIALS_FILE_PATH

每个 Google 模块在通过控制器运行时都会隐式使用这些凭证,而无需设置 service_account_emailproject_idpem_file 模块选项。

6.11.4. Azure

Azure 云凭证在 playbook 执行过程中作为以下环境变量公开(在作业模板中,选择您的设置所需的云凭证):

  • AZURE_SUBSCRIPTION_ID
  • AZURE_CERT_PATH

每个 Azure 模块在通过控制器运行时都会隐式使用这些凭证,而无需设置 subscription_idmanagement_cert_path 模块选项。

6.11.5. VMware

VMware 云凭证在 playbook 执行过程中作为以下环境变量公开(在作业模板中,选择您的设置所需的云凭证):

  • VMWARE_USER
  • VMWARE_PASSWORD
  • VMWARE_HOST

以下示例 playbook 演示了这些凭证的使用情况:

- vsphere_guest:
    vcenter_hostname: "{{ lookup('env', 'VMWARE_HOST') }}"
    username: "{{ lookup('env', 'VMWARE_USER') }}"
    password: "{{ lookup('env', 'VMWARE_PASSWORD') }}"
    guest: newvm001
    from_template: yes
    template_src: linuxTemplate
    cluster: MainCluster
    resource_pool: "/Resources"
    vm_extra_config:
      folder: MyFolder
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.