How to use chef to update-alternatives for java using execute?

前端 未结 2 940
我寻月下人不归
我寻月下人不归 2020-12-17 06:16

I am having syntax errors and I am unsure how to resolve them. In the roles file I have defined the fallowing:

default_attributes(
  \'jdk\' => {
    \'v         


        
2条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-17 07:01

    Are you using the community java cookbook?

    It includes an LWRP for this purpose:

    # set alternatives for java and javac commands
    java_alternatives "set java alternatives" do
        java_location '/usr/local/java'
        bin_cmds ["java", "javac"]
        action :set
    end
    

    Update: "my_java" wrapper cookbook example

    The following is a sample cookbook called "my_java" designed to install the oracle JDK on Ubuntu:

    ├── attributes
    │   └── java.rb   <-- Used for java cookbook attribute overrides
    ├── Berksfile
    ├── Berksfile.lock
    ├── metadata.rb
    ├── README.md
    └── recipes
        └── default.rb
    

    After running chef the oracle JDK is intalled

    $ java -version
    java version "1.8.0_31"
    Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
    

    Notes:

    • This cookbook relies on overriding attributes. This could just as easily be done from a chef environment or role.

    metadata.rb

    name             'my_java'
    maintainer       'Mark O''Connor'
    maintainer_email 'XXXXXXXXXXXXXXX'
    license          'All rights reserved'
    description      'Installs/Configures my_java'
    long_description 'Installs/Configures my_java'
    version          '0.1.0'
    
    depends "apt"
    depends "java"
    

    attribute/java.rb

    normal['java']['jdk_version'] = '8'
    normal['java']['install_flavor'] = 'oracle'
    normal['java']['oracle']['accept_oracle_download_terms'] = true
    

    Notes:

    • By default java will install openJDK. These overrides specify v8 of OracleJDK

    recipes/default.rb

    include_recipe "apt"
    include_recipe "java"
    

    Notes:

    • Obviously the "apt" cookbook only applies to Debian based linux. This recipe would require minor tweaking to work on redhat as well.

提交回复
热议问题