여기에 나와있는 예제 http://docs.ansible.com/ansible/iam_policy_module.html을 사용하여 새 AWS IAM 사용자를 만들고이 새 사용자의 사용자 이름을 사용하여 IAM 정책을 첨부하려고합니다.새롭게 생성 된 사전에 액세스하는 방법
예는 :
task:
- name: Create Two Groups, Mario and Luigi
iam:
iam_type: group
name: "{{ item }}"
state: present
with_items:
- Mario
- Luigi
register: new_groups
- name: Apply READ-ONLY policy to new groups that have been recently created
iam_policy:
iam_type: group
iam_name: "{{ item.created_group.group_name }}"
policy_name: "READ-ONLY"
policy_document: readonlypolicy.json
state: present
with_items: "{{ new_groups.results }}"
나는 하나의 사용자와 함께 작업 할 것을 적응 :
- hosts: 127.0.0.1
gather_facts: no
connection: local
tasks:
- name: Create user lamda_ecr_delete
iam:
iam_type: user
name: "{{ item }}"
state: present
with_items:
- lambda_ecr_delete
register: new_user
- name: Apply ecr delete policy to newly created user
iam_policy:
iam_type: user
iam_name: "{{ item.created_user.user_name }}"
policy_name: "lambda_ecr_delete"
policy_document: assets/aws-policies/lambda_ecr_delete.json
state: present
with_items: "{{ new_user.results }}"
하지만 사전에 사용자 이름을 검색 할 때, item.created_user
가 존재하지 않습니다.
나는 그것이 내가 아마 [0]
에 액세스하고 유효한 키입니다 invocation.module_args.name
를 호출 할 수 있도록 딕셔너리를 포함하는 파이썬 목록이 있다고 식별 할 수 {{ new_user.results }}
의 콘텐츠를 볼 수 debug
를 사용
ok: [127.0.0.1] => {
"changed": false,
"msg": [
{
"_ansible_item_result": true,
"_ansible_no_log": false,
"_ansible_parsed": true,
"changed": false,
"invocation": {
"module_args": {
"iam_type": "user",
"name": "lambda_ecr_delete",
"state": "present"
}
},
"item": "lambda_ecr_delete",
"msg": "remote module (iam) does not support check mode",
"skipped": true
}
]
}
하지만 그 hackish 보인다 --check
으로 실행할 때
이
는debug: msg="{{ new_user.results }}"
의 출력이다. 해당 module_args에 직접 액세스 할 수있는 지름길이 있습니까? 위의 예제에 표시된 것처럼
.created_user
?
나는 내 질문에 디버그의 출력을 추가했습니다. 보시다시피 귀하의 것과는 아주 다릅니다. 나는 어떻게 이해하지 못한다. 나는 방금 사용하기 시작했는데 문서에서 찾을 수 없었다. 분명한 이유가 있고 그것을 놓쳤다면, 저에게 자원을 가르쳐 주시고 저를 직접 파헤 치겠습니다. – Bastian
출력에 '원격 모듈 (iam)이 검사 모드를 지원하지 않습니다.'라는 명확한 메시지가 표시되어 작업이 Anipal에 의해 건너 뛰었습니다. 플레이 북 테스팅을 위해 AWS에서 놀이터 계정을 만들고'--check' 매개 변수가 아닌 실제 테스트를 해보십시오. –