gpt4 book ai didi

ansible - 默认安装tomcat7后模板不覆​​盖

转载 作者:行者123 更新时间:2023-12-02 16:10:12 25 4
gpt4 key购买 nike

我有简单的 ansible 角色,可以执行以下任务:

  1. 安装tomcat7
  2. 更新/etc/default/tomcat7 - 用于配置堆和其他配置
  3. 更新/etc/tomcat7/server.xml - 这会将 tomcat 端口从 8080 覆盖为 80
  4. 重启tomcat服务

这就是我的角色:

- 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

此文件存储在角色/任务中,我的模板存储在角色/模板中

当我运行剧本时,我没有看到任何错误或警告,但是当去检查实际文件时,它没有更新,显示了 tomcat7 安装附带的默认内容。

如果你们知道我在这里做错了什么,请告诉我!

最佳答案

模板任务中的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

您还希望您的 Roles/tomcat7/handlers/main.yml 文件如下所示:

---
- name: tomcat7-restart
service: name=tomcat7 state=restarted

关于ansible - 默认安装tomcat7后模板不覆​​盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29308796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com