2016-12-04 5 views
1

Я пытаюсь настроить playbook, который будет настраивать мою систему разработки. Я хотел бы скопировать файл /etc/hosts из каталога файлов «Мои файлы» в каталог /etc в моей системе. В настоящее время я делаю следующее:Как скопировать файл в локальный каталог с помощью Ansible?

# main.yml 
- hosts: all 
- tasks: 
    - copy: src=files/hosts 
      dest=/etc/hosts 
      owner=root 
      group=wheel 
      mode=0644 
      backup=true 
     become: true 
# inventory 
localhost ansible_connection=local 

Когда я бегу пьес я получаю эту ошибку:

fatal: [localhost]: FAILED! => {... "msg": Failed to get information on remote file (/etc/hosts): MODULE FAILURE"} 

Я считаю, что это происходит потому, что копия должна быть использована для копирования файла в удаленную файловую систему. Итак, как вы копируете файл в свою локальную систему управления? Я сделал поиск Google, и все говорит о том, как это сделать. Я не видел этого в документах Ansible.

+0

"скопировать файл в локализованный каталог"? 'scuse me, но в каком смысле/etc/hosts * local *? – Danimal

+0

@Danimal: Комментарий к комментарию Dave: ** # инвентарь localhost ansible_connection = local ** Это значит, что он выполняет все свои материалы для воспроизведения на локальном хосте –

ответ

3

Ваша задача в порядке.

Вы должны добавить --ask-sudo-pass в контакт ansible-playbook.


Если вы работаете с -vvv вы можете увидеть старты команды с sudo -H -S -n -u root /bin/sh -c echo BECOME-SUCCESS-somerandomstring (с последующим вызовом сценария Python). Если вы выполните его самостоятельно, вы получите сообщение sudo: a password is required. Ansible совершенно бесполезно заменяет это сообщение об ошибке своим Failed to get information on remote file (/etc/hosts): MODULE FAILURE.