您的位置 首页 java

Ansible实战:批量部署java

在使用ansible部署 java 的时候,首先来缕清手动部署java的步骤:

1、下载java(这步省略,因为在下载java的时候有个交互模式,需要点击“accept”);

2、查看远程主机是否有openjdk;

3、删除远程主机的openjdk;

4、解压java(本次操作将java直接拷贝到ansible主机上,有它来下发java压缩包);

5、重命名java(这步可以省略);

6、增加 环境变量

7、使环境变量生效;

8、配置java命令的软链接;

9、查看java是否安装成功。

具体部署步骤:

1、将java压缩包拷贝到ansible主机上,并创建java_install.yml文件

touch java_install.yml

2、查看远程主机是否有openjdk

ansible web -m shell -a “rpm -aq | grep jdk”

3、写入playbook,内容如下:

– hosts: web

tasks:

– name: remove openjdk

yum:

name: java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64,java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64,java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64,java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64

state: absent

– name: unarchive java

unarchive:

copy: yes

src: /home/tools/jdk-8u91-linux-x64.tar.gz

dest : /usr/local/

– name: rename java

shell : mv /usr/local/jdk1.8.0_91 /usr/local/java

– name: add env var

shell: echo {{ item }} >> /etc/profile

with_items:

– export JAVA_HOME=/usr/local/java

– export PATH=$PATH:$JAVA_HOME/bin

– export CLASSPATH =.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

– name: source env

shell: source /etc/profile

– name: soft link

file: src=/usr/local/java/bin/java dest=/usr/bin/java state=link

– name: test

shell: java -version

内容说明:

#ansible-playbook开头

#指定主机组

– hosts: web

#ansible-playbook的主体部分

tasks:

#3、删除远程主机的openjdk;

– name: remove openjdk

yum:

name: java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64,java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64,java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64,java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64

state: absent

#4、解压java(本次操作将java直接拷贝到ansible主机上,有它来下发java压缩包);

– name: unarchive java

unarchive:

copy: yes

src: /home/tools/jdk-8u91-linux-x64.tar.gz

dest: /usr/local/

#5、重命名java(这步可以省略);

– name: rename java

shell: mv /usr/local/jdk1.8.0_91 /usr/local/java

#6、增加环境变量(这里使用了with_items循环);

– name: add env var

shell: echo {{ item }} >> /etc/profile

with_items:

– export JAVA_HOME=/usr/local/java

– export PATH=$PATH:$JAVA_HOME/bin

– export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

注:该部分所有的“$”符号前都有 转义符 “”。如果不使用转义符“”一定会报错,要额外小心!!!

#7、使环境变量生效;

– name: source env

shell: source /etc/profile

#8、配置java命令的软链接;

– name: soft link

file: src=/usr/local/java/bin/java dest=/usr/bin/java state=link

#9、查看java是否安装成功。

– name: test

shell: java -version

报错:

这个是由于没有配置java在/usr/bin下的软连接!

fatal: [192.168.139.96]: FAILED! => {“changed”: true, “cmd”: “java -version” , “delta”: “0:00:00.004190”, “end”: “2018-11-21 09:01:21.162576”, “msg”: “non-zero return code”, “rc”: 127, “start”: “2018-11-21 09:01:21.158386”, “stderr”: “/bin/sh: java: command not found” , “stderr_lines”: [“/bin/sh: java: command not found”], “stdout”: “”, “stdout_lines”: []}

fatal: [192.168.139.95]: FAILED! => {“changed”: true, “cmd”: “java -version” , “delta”: “0:00:00.003742”, “end”: “2018-11-21 09:01:21.178077”, “msg”: “non-zero return code”, “rc”: 127, “start”: “2018-11-21 09:01:21.174335”, “stderr”: “/bin/sh: java: command not found” , “stderr_lines”: [“/bin/sh: java: command not found”], “stdout”: “”, “stdout_lines”: []}

4、检查是否部署成功

ansible web -m shell -a “java -version”

文章来源:智云一二三科技

文章标题:Ansible实战:批量部署java

文章地址:https://www.zhihuclub.com/187178.shtml

关于作者: 智云科技

热门文章

网站地图