2017-03-22 2 views
1

/etc/hosts 파일의 특정 줄을 임시 파일로 복사 할 수있는 가능성있는 플레이 북을 구성하고 싶습니다.아이템에 명령을 사용하는 방법은 무엇입니까?

--- 
hosts: 127.0.0.1 
gather_facts: False 
tasks: 
    - command: grep {{ item }} /etc/hosts >> /tmp/hosts_to_backup 
    with_items: 
     - web 
     - database 

나는이 일 것이다 그러나 나는 오류 받고 있어요 생각하는 것 : 나는 Ansible을 알고

TypeError: string indicies must be integers, not str

이 인용되지 않은 치아 교정기에 대한 까다 롭고 그래서 내가 주위에 따옴표를 넣어이 쉽게 할 수 있어야 전체 명령 줄 그러나 나는 여전히 오류가 발생합니다.

- command: "grep {{ item }} /etc/hosts >> /tmp/hosts_to_backup" 

답변

2

나는 당신이 당신이 얻을 주장하는 오류가 왜 아무 생각이 없다 (시스템 Ansible에 이상한 오류 메시지를 반환하는 경우 어쩌면 그것은 OS 관련 일입니다).

확실히 하나의 사실은 command 모듈로 파일 리디렉션을 사용할 수 없다는 것입니다. 그 외에는

- shell: grep {{ item }} /etc/hosts >> /tmp/hosts_to_backup 

, 당신의 작업에 with_items에 문제가없는 대신 당신은 shell 모듈을 사용하기 때문에 당신의 행동을 교체해야합니다. 재생을위한 아무 -도 없다.

다음 코드는 작동 : 당신이 올바른지

--- 
- hosts: 127.0.0.1 
    gather_facts: False 
    tasks: 
    - shell: grep {{ item }} /etc/hosts >> /tmp/hosts_to_backup 
     with_items: 
     - web 
     - database 
+0

. 명령 대신 셸을 사용해야했습니다. 감사. – William

관련 문제