/ansible/deployments/
├── dev/
├── test/
└── prod/
- name: Deploy app
hosts: web
become: yes
vars:
env: dev
tasks:
- name: Copy deployable files
copy:
src: "/ansible/deployments/{{ env }}/app.tar.gz"
dest: "/opt/app/"
在上面的示例中,我们使用ansible的copy模块将dev目录下的app.tar.gz文件复制到web主机的/opt/app/目录下。 3. 将上述步骤封装在一个可重用的role中,以便在不同的project中复用。例如,我们可以将上述部署任务封装在名为deploy_app的role中,然后在project的main playbook中使用该role来执行部署任务。
- name: Deploy app to dev
hosts: web
become: yes
roles:
- deploy_app
在上面的示例中,我们将定义的deploy_app role应用于web主机。这样可以使整个部署过程更加模块化和可重用。