【问题标题】:Simple puppet module for Java8 for a VM built with Vagrant用于使用 Vagrant 构建的 VM 的 Java8 简单 puppet 模块
【发布时间】:2023-04-02 19:05:01
【问题描述】:

我正在尝试编写一个 puppet 模块来在虚拟机上安装 Java 8。 使用 Java 6 这不是问题:我编写了一个 java.pp 或多或少有这些行,并且一切正常。

class java_6 {

package { "openjdk-6-jdk":
  ensure => installed,
require => Exec["update-package-list"],
}}

我尝试了一些在线教程,但一切似乎都比我需要的复杂。你知道如何通过 Puppet 获取安装在 VM 上的 Java 8 吗?

【问题讨论】:

    标签: java java-8 vagrant puppet provisioning


    【解决方案1】:

    java8.pp 用于 Ubuntu:

    case $::operatingsystem {
        ubuntu: {
          include apt
    
          apt::ppa { 'ppa:openjdk-r/ppa': 
            ensure => present,
          }
    
          exec { 'apt-update':
            command => '/usr/bin/apt-get update',
            require => [
              Apt::Ppa['ppa:openjdk-r/ppa']
            ],
          }
    
          package { 'openjdk-8-jdk':
            require  => [
              Exec['apt-update'],
              Apt::Ppa['ppa:openjdk-r/ppa'],
            ],
          }
        }
    
        default: {
          notice "Unsupported operatingsystem ${::operatingsystem}"
        }
      }
    

    这个 java8.pp 文件依赖于 apt 模块,它必须安装在你的机器上。

    1. sudo puppet module install puppetlabs-apt
    2. sudo puppet apply java8.pp
    3. 运行java -version 进行验证:

      ravitezu@Lenevo:~/Workspace/Puppet$ java -version
      openjdk 版本“1.8.0_91”
      OpenJDK 运行环境(build 1.8.0_91-8u91-b14-0ubuntu4~16.04.1-b14)
      OpenJDK 64-Bit Server VM(build 25.91-b14,混合模式)

    【讨论】:

      【解决方案2】:

      你不一定需要自己构建一个模块来运行Java8,最推荐的方法是让master来做并使用像puppetlabs-java puppet模块这样的模块,最新的更新可以通过简单的类安装Java 8

      class { 'java' : 
        distribution  => 'jdk',
        package       => 'java-1.8.0-openjdk-devel'
      }
      

      【讨论】:

      • 我没明白你的意思。我应该在 java/manifest 中的文件 init.pp 中声明什么?
      • 不,您需要安装 puppetlabs-java 模块(推送到 puppet/modules 或从安装脚本),然后在从 Vagrantfile 声明的 puppet 文件(可以是 init 或其他内容)中,您只需参考这个类 - 这里我建议你不要创建一个新模块,而是使用一个现有的
      • 好的,谢谢。所以在我的 site.pp 文件中我会有类似 node 'web'{ class { 'java' : distribution => 'jdk', package => 'java-1.8.0-openjdk-devel' }} 我还有另一个现在的问题:如果我必须安装许多软件(java、postgres、...),我的 site.pp 会增长很多。这是正确的方法吗?还是有一些“模式”可以采用?
      • 如果你觉得你的文件太大了,你可以把它分解,并确保在需要时从另一个 puppet 文件中包含另一个类
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      相关资源
      最近更新 更多