6.11. 클라우드 인벤토리와 함께 클라우드 인증 정보 사용
클라우드 인증 정보는 클라우드 인벤토리를 동기화할 때 사용할 수 있습니다. 작업 템플릿과 연관되고 플레이북에서 사용할 런타임 환경에 포함할 수도 있습니다. 지원되는 클라우드 인증 정보는 다음과 같습니다.
6.11.1. OpenStack
다음 샘플 플레이북은 nova_compute
Ansible OpenStack 클라우드 모듈을 호출하고 인증 정보가 필요합니다.
-
auth_url
-
사용자 이름
-
암호
-
프로젝트 이름
이러한 필드는 환경 변수 OS_CLIENT_CONFIG_FILE
을 통해 플레이북에 사용할 수 있습니다. 이 변수는 클라우드 인증 정보의 콘텐츠를 기반으로 컨트롤러에서 작성한 YAML 파일을 가리킵니다. 다음 샘플 플레이북은 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
- 플레이북 예:
- 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
AWS(Amazon Web Services) 클라우드 인증 정보는 플레이북 실행 중에 다음 환경 변수로 노출됩니다(작업 템플릿에서 설정에 필요한 클라우드 인증 정보 선택).
-
AWS_ACCESS_KEY_ID
-
AWS-SECRET_ACCESS_KEY
각 AWS 모듈은 aws_access_key_id
또는 aws_secret_access_key
모듈 옵션을 설정하지 않고도 컨트롤러를 통해 실행할 때 이러한 인증 정보를 암시적으로 사용합니다.
6.11.3. Google
Google 클라우드 인증 정보는 플레이북 실행 중에 다음 환경 변수로 노출됩니다(작업 템플릿에서 설정에 필요한 클라우드 인증 정보 선택).
-
GCE_EMAIL
-
GCE_PROJECT
-
GCE_CREDENTIALS_FILE_PATH
각 Google 모듈은 service_account_email
,project_id
또는 pem_file
모듈 옵션을 설정하지 않고도 컨트롤러를 통해 실행할 때 이러한 인증 정보를 암시적으로 사용합니다.
6.11.4. Azure
Azure 클라우드 인증 정보는 플레이북 실행 중에 다음 환경 변수로 노출됩니다(작업 템플릿에서 설정에 필요한 클라우드 인증 정보 선택).
-
AZURE_SUBSCRIPTION_ID
-
AZURE_CERT_PATH
각 Azure 모듈은 subscription_id
또는 management_cert_path
모듈 옵션을 설정하지 않고도 컨트롤러를 통해 실행할 때 이러한 인증 정보를 암시적으로 사용합니다.
6.11.5. VMware
VMware 클라우드 인증 정보는 플레이북 실행 중에 다음 환경 변수로 노출됩니다(작업 템플릿에서 설정에 필요한 클라우드 인증 정보 선택).
-
VMWARE_USER
-
VMWARE_PASSWORD
-
VMWARE_HOST
다음 샘플 플레이북은 이러한 인증 정보를 사용하는 방법을 보여줍니다.
- 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