Ansible узел не может получить доступ к файлу в моей хост-системе - PullRequest
0 голосов
/ 23 июня 2018

Я пытаюсь скопировать файл из моей системы Host Mac в CentOS на виртуальной машине через Ansible Roles.

У меня есть папка, созданная под названием Ansible Roles, в которой я использовал команду ansible-galaxy и создал роль под названием tomcatdoccfg. helloworld.war присутствует в корневой папке Ansible Roles.

Структура папок выглядит следующим образом: enter image description here

Сборник заданий Ansible tasks \ main.yml на Mac:

- name: Copy war file to tmp
  copy:
    src: ⁨helloworld.war
    dest: /tmp/helloworld.war

Файл helloworld.war должен быть доступен для пользователя abhilashdk (имя пользователя по умолчанию для MAC). В CentOS VM также есть пользователь abhilashdk. Я настроил SSH ключи. Это значит, что я сгенерировал ssh-keys -t rsa и переместил ключи на виртуальную машину CentOS с помощью ssh-copy-id, и я могу пропинговать виртуальную машину с помощью команды ansible -i hosts node1 -m ping. Я могу установить докер также на мою машину node1, используя ansible.

У меня есть файл main.yml в корневой папке Ansible Roles, содержимое которого указано ниже:

---
- hosts: node1
  vars:
    webapp:
      app1:
        PORT: 8090
        NAME: webapp1
      app2:
        PORT: 8091
        NAME: webapp2
  become: true
  roles:
    - docinstall
    - tomcatdoccfg

Теперь, когда я запускаю команду ansible-playbook -i hosts main.yml, я получаю следующую ошибку для Copy war file to tmp:

TASK [tomcatdoccfg : Copy war file to tmp] ************************************************************************************ An exception occurred during task execution. To see the full traceback, use -vvv. The error was: /Files/DevOps/Ansible/Ansible_roles/⁨helloworld.war fatal: [node1]: FAILED! => {"changed": false, "msg": "Could not find or access '⁨helloworld.war'\nSearched in:\n\t/Files/DevOps/Ansible/Ansible_roles/tomcatdoccfg/files/⁨helloworld.war\n\t/Files/DevOps/Ansible/Ansible_roles/tomcatdoccfg/⁨helloworld.war\n\t/Files/DevOps/Ansible/Ansible_roles/tomcatdoccfg/tasks/files/⁨helloworld.war\n\t/Files/DevOps/Ansible/Ansible_roles/tomcatdoccfg/tasks/⁨helloworld.war\n\t/Files/DevOps/Ansible/Ansible_roles/files/⁨helloworld.war\n\t/Files/DevOps/Ansible/Ansible_roles/⁨helloworld.war"}

Я не понимаю, какие разрешения я должен дать файлу hellowrold.war, чтобы мои centos на vm могли получить к нему доступ через ANSIBLE PlayBook / Роли.

Может кто-нибудь помочь мне решить эту проблему.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

добавив в качестве ответа, чтобы я мог показывать нелатинские символы, к которым относится журнал, который вы добавили в вопросе:

примечание прямо перед helloworld.war.log

Может быть причиной, по которой Ansible не может найти файл на FS.Чтобы быть в безопасности, я бы удалил весь main.yml и переписал бы его.

0 голосов
/ 23 июня 2018

ansible-playbook -i hosts main.yml --ask-sudo-pass или ansible-playbook -i hosts main.yml --ask-pass Этот параметр попросит вас ввести пароль sudo для операций с playbook

...