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


浙公网安备 33010602011771号