macos - Ansible 节点无法访问我的主机系统中的文件
问题描述
我正在尝试通过 Ansible 角色将文件从我的主机 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 文件复制到 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 playbook/roles 访问它。
谁能帮我解决这个问题。
提前致谢
解决方案
推荐阅读
- ruby-on-rails - 如何在没有资产预编译错误的情况下将 Rails 应用程序部署到 Digital Ocean
- spring-boot - 如果我更改 basePackages,Spring 组件扫描不会加载自己的组件?
- git - 无法提交和推送 Git,因为“无法生成 gpg2:没有这样的文件或目录”
- java - 在java中打印一个矩形
- command-line-interface - 回滚纱线命令
- kubernetes - 气流调度程序无法与 kubernetes 执行程序一起启动
- c++ - 在学习数据结构之前先了解一下 STL 是不是很好?
- mysql - mySQL如何从第一个表中选择不同的(1列:pruduct_Type)并从第二个表中选择2列
- typescript - 看不到 RXJS 如何确定在多个订阅上重复共享操作的哪一部分
- prolog - `is`和`=`之间的区别?