- hosts: webserver
become: true
roles:
- apache2
- { role: demo_app, db_user: demo, db_pass: demo, db_name: demo }
相关任务是:
.
├── ansible
│ ├── ansible
│ ├── ansible.cfg
│ ├── ansible.pub
│ ├── dev
│ ├── docker-compose.yml
│ ├── Docker.zip
│ ├── env
│ │ ├── ansible
│ │ ├── ansible.pub
│ │ ├── Dockerfile
│ │ ├── init-fake.conf
│ │ ├── ssh_config
│ │ └── ssh_host_config
│ ├── playbooks
│ │ ├── database.yml
│ │ ├── hostname.yml
│ │ └── loadbalancer.yml
│ ├── startup.sh
│ └── temp
│ ├── ansible
│ ├── ansible.cfg
│ ├── ansible.pub
│ ├── dev
│ ├── docker-compose.yml
│ └── Docker.zip
├── ansible.cfg
├── ansible.pub
├── control.yml
├── database.yml
├── demo
│ └── demo.conf
├── dev
├── docker-compose.yml
├── Docker.zip
├── env
│ ├── ansible
│ ├── ansible.pub
│ ├── Dockerfile
│ ├── init-fake.conf
│ ├── ssh_config
│ └── ssh_host_config
├── loadbalancer.yml
├── main.yml
├── playbooks
│ ├── hostname.yml
│ ├── stack_restart.yml
│ └── stack_status.yml
├── roles
│ ├── apache2
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── files
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── meta
│ │ │ └── main.yml
│ │ ├── README.md
│ │ ├── tasks
│ │ │ └── main.yml
│ │ ├── templates
│ │ ├── tests
│ │ │ ├── inventory
│ │ │ └── test.yml
│ │ └── vars
│ │ └── main.yml
│ ├── control
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── files
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── meta
│ │ │ └── main.yml
│ │ ├── README.md
│ │ ├── tasks
│ │ │ └── main.yml
│ │ ├── templates
│ │ ├── tests
│ │ │ ├── inventory
│ │ │ └── test.yml
│ │ └── vars
│ │ └── main.yml
│ ├── demo_app
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── files
│ │ │ └── app
│ │ │ ├── demo.py
│ │ │ └── requirements.txt
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── meta
│ │ │ └── main.yml
│ │ ├── README.md
│ │ ├── tasks
│ │ │ └── main.yml
│ │ ├── templates
│ │ │ └── demo.wsgi.j2
│ │ ├── tests
│ │ │ ├── inventory
│ │ │ └── test.yml
│ │ └── vars
│ │ └── main.yml
│ ├── mysql
│ │ ├── defaults
│ │ ├── files
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── meta
│ │ │ └── main.yml
│ │ ├── README.md
│ │ ├── tasks
│ │ ├── templates
│ │ ├── tests
│ │ │ ├── inventory
│ │ │ └── test.yml
│ │ └── vars
│ │ └── main.yml
│ └── nginx
│ ├── defaults
│ ├── files
│ ├── handlers
│ │ └── main.yml
│ ├── meta
│ │ └── main.yml
│ ├── README.md
│ ├── tasks
│ ├── templates
│ │ └── nginx.conf.j2
│ ├── tests
│ │ ├── inventory
│ │ └── test.yml
│ └── vars
│ └── main.yml
├── site.yml
├── startup.sh
├── templates
├── webserver.retry
└── webserver.yml
我尝试将上述副本src更改为
/demo_app
和src=demo_app/files/app
,但这并没有帮助。#1 楼
失败的任务是:- name: copy demo app source
copy: src=demo/app/ dest=/var/www/demo mode=0755
notify: restart apache2
如果查看文件夹结构,更具体地说是
demo_app
角色,则具有:│ ├── demo_app
│ │ ├── defaults
│ │ │ └── main.yml
│ │ ├── files
│ │ │ └── app
│ │ │ ├── demo.py
│ │ │ └── requirements.txt
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── meta
│ │ │ └── main.yml
│ │ ├── README.md
│ │ ├── tasks
│ │ │ └── main.yml
│ │ ├── templates
│ │ │ └── demo.wsgi.j2
│ │ ├── tests
│ │ │ ├── inventory
│ │ │ └── test.yml
│ │ └── vars
│ │ └── main.yml
copy
任务将在src
中查找demo_app/files/
。因此,将您的任务更改为:- name: copy demo app source
copy: src=app dest=/var/www/demo mode=0755
notify: restart apache2
,或者在
demo
中创建一个demo_app/files/
目录,并将app
目录放置在其中(例如demo_app/files/demo/app/
)。 />在任务中设置目录的绝对路径也可以,但是不要认为这是一个优雅的解决方案。