zoukankan      html  css  js  c++  java
  • salt一键部署jdk

    1.准备工作

    我们来看一下一键部署jdk的脚本。

    [root@bgs-5p173-wangwenting jdk]# more init.sls 
    jdk-file:
      file.managed:
       - source: salt://jdk/jdk1.8.0_74.tar.gz    //这里的salt://  表示的salt的工作目录,在/etc/salt/master中file_roots有配置的。后面的目录文件是工作区下的安装包
       - name: /opt/jdk1.8.0_74.tar.gz            //这个参数的意思是拷贝到minion机器上的哪个位置上。我这里是放到/opt下面的。
       - user: root                  //用是什么用户和用户组的权限去执行这个命令
       - group: root
    
    jdk-install:
      cmd.run:
       - name: 'cd /opt && tar zxf jdk1.8.0_74.tar.gz && ln -s /opt/jdk1.8.0_74  /opt/java && chown -R root:root /opt/jdk* && chown -R j
    ava:java /opt/java'                                 //解压,创建软件接,改变用户和用户组的指令
       - unless: test -d /opt/jdk1.8.0_74               //unless:用于检查的命令,仅当``unless``选项指向的命令返回false时才执行name指向的命令,检查是否安装。
       - require:                       //require要求jdk-file模块成功执行后,这里才会继续执行该模块。
         - file: jdk-file
     
    jdk-rmtgz:
      file.absent:                                      //删除minion机器上,上述jdk-file模块中copy过去的安装包,在安装完毕后,删除这个安装包。
        - name: /opt/jdk1.8.0_74.tar.gz                 //制定删除的位置和包名。   
        - require:                                      //依赖关系,先安装然后才删除。
          - cmd: jdk-install
    
    /etc/profile:                                       //修改环境变量。
      file.append:                         
        - text:
          - export JAVA_HOME=/opt/java
          - export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
          - export  CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
        - require:
          - file: jdk-rmtgz
    

      

    我们查看salt的入口文件,top.sls中的内容:

    2.一键部署执行命令。

    s2:
    ----------
              ID: jdk-file
        Function: file.managed
            Name: /opt/jdk1.8.0_74.tar.gz
          Result: True
         Comment: File /opt/jdk1.8.0_74.tar.gz updated
         Started: 02:40:07.024556
        Duration: 5037.368 ms
         Changes:   
                  ----------
                  diff:
                      New file
                  mode:
                      0644
    ----------
              ID: jdk-install
        Function: cmd.run
            Name: cd /opt && tar zxf jdk1.8.0_74.tar.gz && ln -s /opt/jdk1.8.0_74  /opt/java && chown -R root:root /opt/jdk* && chown -R hadoop:hadoop /opt/java
          Result: True
         Comment: unless execution succeeded
         Started: 02:40:12.063435
        Duration: 15.891 ms
         Changes:   
    ----------
              ID: jdk-rmtgz
        Function: file.absent
            Name: /opt/jdk1.8.0_74.tar.gz
          Result: True
         Comment: Removed file /opt/jdk1.8.0_74.tar.gz
         Started: 02:40:12.080015
        Duration: 32.4 ms
         Changes:   
                  ----------
                  removed:
                      /opt/jdk1.8.0_74.tar.gz
    ----------
              ID: /etc/profile
        Function: file.append
          Result: True
         Comment: File /etc/profile is in correct state
         Started: 02:40:12.112970
        Duration: 6.612 ms
         Changes:   
    
    Summary for s2
    ------------
    Succeeded: 4 (changed=2)
    Failed:    0
    ------------
    Total states run:     4
    Total run time:   5.092 s
    

      这样我们去s2机器上就可以看到jdk已经安装成功了。

  • 相关阅读:
    SharpDeveloeper开发ASP.NET MVC汗流浃背
    暂停更新文章通知
    一步步学习NHibernate(10)——连接查询和子查询(2)
    一步步学习NHibernate(9)——连接查询和子查询(1)
    20165103 2017-2018-2 课程总结
    Android开发学习——UI篇1.0
    团队作业(三):确定分工
    20165103实验三 Java面向对象程序设计
    查漏补缺
    20165103 实验三 Java面向对象程序设计
  • 原文地址:https://www.cnblogs.com/wyl9527/p/6839860.html
Copyright © 2011-2022 走看看