아주 간단한 게임에서 오류가 발생합니다.
- name: add to environment
lineinfile:
path: /etc/environment
line: "{{ item }}"
loop:
- "foo=1"
- "bar=2"
이 줄이 존재하지 않으면 파일에 추가하고 싶습니다. 내가 얻는 오류는,
치명적: [10.1.38.15]: 실패했습니다! => {"msg": "작업에 정의되지 않은 변수가 있는 옵션이 포함되어 있습니다. 오류: '항목'이 정의되지 않았습니다.\n\n오류는 '/home/ecarroll/cp/ansible/roles/sandbox에 있는 것 같습니다. /tasks /main.yml': 6행, 3열. 그러나\n특정 구문 문제에 따라 파일의 다른 곳에 있을 수 있습니다.\n\n문제의 행은 다음과 같습니다:\n\n dest: /\n- name: 환경에 추가\n ^여기\n"}
답변1
지침의 들여쓰기가 잘못되었습니다 loop
. 이것은 인수가 아닙니다 lineinfile
. 작업 설정입니다.
- name: add to environment
lineinfile:
path: /etc/environment
line: "{{ item }}"
loop:
- "foo=1"
- "bar=2"
답변2
루프를 사용하여 ansible lineinfile 모듈을 구현했는데 예상대로 작동합니다.
lineinfile 루프 모듈을 사용하여 sudoers 파일에 여러 항목을 추가하는 기능.
이것이 귀하의 요구 사항을 충족하기를 바랍니다.
- name: "Providing sudo access to linux team users"
lineinfile:
path: /etc/sudoers
line: '{{item}} ALL=(ALL) NOPASSWD: ALL'
state: present
create: yes
validate: 'visudo -cf %s'
loop:
- Admin.Linux
- Admin.Unix
ansible 플레이 실행 출력
TASK [Providing sudo access to accenture linux team members]
changed: [ANSIBLECLINETNODE] => (item=Admin.Linux)
changed: [ANSIBLECLINETNODE] => (item=Admin.Unix)
다음은 sudoers 파일 출력입니다.
[root@ANSIBLECLINETNODE~]# cat /etc/sudoers| tail -2
Admin.Linux ALL=(ALL) NOPASSWD: ALL
Admin.Unix ALL=(ALL) NOPASSWD: ALL