我正试图通过Ansible角色将文件从Host Mac系统复制到VM上的CentOS。
我创建了一个名为Ansible Roles的文件夹,在该文件夹下,我使用了ansible-galaxy命令,并创建了一个名为tomcatdoccfg的角色。 helloworld.war位于Ansible Roles根文件夹中。
在Mac上,Ansible Tasks \ main.yml剧本如下:
- name: Copy war file to tmp
copy:
src: helloworld.war
dest: /tmp/helloworld.war
abhilashdk(我的默认MAC用户名)用户应该可以访问helloworld.war文件。 CentOS VM也有一个名为abhilashdk的用户。我已经配置了ssh密钥。意思是我已经生成了ssh-keys -t rsa,并使用ssh-copy-id将密钥移到了CentOS VM上,并且能够使用ansible -i hosts node1 -m ping
命令来ping到VM。我也可以使用ansible在我的node1机器上安装docker。
我在Ansible Roles根文件夹中有一个main.yml文件,其内容如下:
---
- 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
时,出现以下错误,将war file复制到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文件赋予什么权限,以便我在vm上的centos能够通过ansible剧本/角色访问它。
有人可以帮我解决这个问题吗?
预先感谢