【问题标题】:puppet can't start tomcat modulepuppet 无法启动 tomcat 模块
【发布时间】:2018-02-28 09:13:14
【问题描述】:

我正在尝试创建用于安装 tomcat 8 的模块 puppet。 Tomcat 安装成功,添加了用户和角色,但是当 Tomcat 启动时出现以下问题...:

/Stage[main]/Main/Node[web_mzol]/Tomcat::Instance[tomcat8]/Tomcat::Config::Properties[/opt/tomcat-8.5 catalina.properties]/Concat[/opt/tomcat- 8.5/conf/catalina.properties]/Concat_file[/opt/tomcat-8.5/conf/catalina.properties]:无法使用“eval_generate”生成其他资源:“/opt/apache-tomcat/conf”的未定义方法“join” /catalina.properties":字符串

错误:无法启动服务[tomcat-tomcat8]:执行 'su -s /bin/bash -c 'CATALINA_HOME=/opt/apache-tomcat CATALINA_BASE=/opt/apache-tomcat /opt/apache-tomcat /bin/catalina.sh start'tomcat' 返回 127: bash: /opt/apache-tomcat/bin/catalina.sh: No such file or directory

如我所见,puppet 使用了错误的值变量“/opt/apache-tomcat”,但必须使用“/opt/tomcat-8.5”...或其他原因?

主清单 /etc/puppetlabs/code/environments/production/manifests/site.pp :

node 'web_mzol' {
  package { 'nginx' :
  ensure => installed,
} -> 
  service {'nginx': 
   ensure => running, 
   enable => true, 
  }
 class { '::tomcat': }
 class { '::java': }
tomcat::instance { 'tomcat8':
  catalina_base => '/opt/tomcat-8.5',
  source_url => 'https://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.28/src/apache-tomcat-8.5.28-src.tar.gz',
}
-> tomcat::config::server::tomcat_users {
  'tet-role-manager-script':
    ensure        => present,
    catalina_base => '/opt/tomcat-8.5',
    element       => 'role',
    element_name  => 'manager-script';
  'tet-user-mzol':
    ensure        => present,
    catalina_base => '/opt/tomcat-8.5',
    element       => 'user',
    element_name  => 'mzol',
    password      => 'mzol',
    roles         => ['manager-script'];
}
-> tomcat::service { 'tomcat8':
   }
}
node default {}

谢谢

【问题讨论】:

  • 据我所知 $catalina_base 是单个主机上多个 tomcat 的可选变量。但是 $catalina_home 是默认值,在您的情况下,它可能已被您尝试使用 puppet 设置的 $catalina_base 覆盖。
  • 如何解决?我尝试定义 catalina_home,但没有帮助,我遇到了同样的问题......

标签: linux tomcat centos puppet


【解决方案1】:

我修好了。

node 'web_mzol' {
  package { 'nginx' :
   ensure => installed,
  } -> # Order of the execution, service will be started after the installation
  service {'nginx': # Name of the service
   ensure => running, # Start the apache service
   enable => true, # Start on system boot
  }
 class { '::tomcat': }
 class { '::java': }

tomcat::instance { 'tom':
  catalina_home => '/opt/tomcat-8.5',
  source_url => 'https://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.28/bin/apache-tomcat-8.5.28.tar.gz',
  catalina_base => '/opt/tomcat-8.5',
}
-> tomcat::config::server::tomcat_users {
  'tet-role-manager-script':
    ensure        => present,
    catalina_base => '/opt/tomcat-8.5',
    element       => 'role',
    element_name  => 'manager-script';
  'tet-user-mzol':
    ensure        => present,
    catalina_base => '/opt/tomcat-8.5',
    element       => 'user',
    element_name  => 'mzol',
    password      => 'mzol',
    roles         => ['manager-script'];
}

【讨论】:

    猜你喜欢
    • 2015-11-25
    • 2013-02-01
    • 2015-04-17
    • 2016-04-22
    • 1970-01-01
    • 2019-12-01
    相关资源
    最近更新 更多