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已经安装成功了。

猜你喜欢

转载自blog.csdn.net/wyl9527/article/details/72598126