我有简单的ansible角色,可以执行以下任务:
这就是我的角色的样子:
- name: Update apt cache
apt: update_cache=yes
- name: Install Tomcat 7
apt: pkg=tomcat7 state=present
- name: Configure tomcat memory/java_home configuration
template: src=tomcat7.j2 dest=/etc/default
- name: Configure tomcat server configuration, port, connections ssl etc
template: src=server.xml.j2 dest=/etc/tomcat7
notify:
- tomcat7-restart
此文件存储在角色/任务中,我的模板存储在角色/模板中
当我运行playbook时,我没有看到任何错误或警告,但是当它去检查实际文件时它没有更新,显示tomcat7安装附带的默认内容。
如果你们知道我在这里做错了什么,请告诉我!
答案 0 :(得分:4)
模板任务中的dest
参数应该是文件的完整路径,而不仅仅是目录路径。您需要将任务更改为如下所示:
编辑:正确使用"通知"命令也包括在每个任务中。这样,如果任一任务修改其关联文件,则将调用重启tomcat的处理程序,但如果两个文件都未被修改,则tomcat不会重新启动。
- name: Configure tomcat memory/java_home configuration
template: src=tomcat7.j2 dest=/etc/default/tomcat7
notify: tomcat7-restart
- name: Configure tomcat server configuration, port, connections ssl etc
template: src=server.xml.j2 dest=/etc/tomcat7/server.xml
notify: tomcat7-restart
您还希望您的角色/ tomcat7 / handlers / main.yml文件看起来像这样:
---
- name: tomcat7-restart
service: name=tomcat7 state=restarted