且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ansible-playbook jdk安装

更新时间:2022-10-03 21:51:45

ansible-playbook jdk安装


jdk role的目录结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
[root@192 roles]# tree jdk
jdk
├── defaults
├── files
│   └── jdk-8u101-linux-x64.tar.gz
├── handlers
├── meta
├── tasks
│   └── main.yml
├── templates
└── vars
    └── main.yml

#vars下面的忽略,那是之前写的一个。

task文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@192 tasks]# cat main.yml 
- name:  copy jdk-8u101-linux-x64.tar.gz remote hosts
  copy: src=jdk-8u101-linux-x64.tar.gz dest=/usr/local/
- name: tar jdk-8u101-linux-x64.tar.gz
  shell: chdir=/usr/local tar zxf jdk-8u101-linux-x64.tar.gz
- name: soft link
  file: src=/usr/local/jdk1.8.0_101 dest=/usr/local/java state=link
- name: java_profile config
  shell: /bin/echo {{ item }} >> /etc/profile && source /etc/profile
  with_items:
    export JAVA_HOME=/usr/local/java
    export JRE_HOME=/usr/local/java/jre
    export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:\$JRE_HOME/lib:\$CLASSPATH
    export PATH=\$JAVA_HOME/bin:\$PATH


#注意这块有个坑啊,特殊字符一定要反斜杠\ 屏蔽字符的特殊意义,试了好几次才发现这个问题,包括gather_facts 关了也没用,到目标主机就变了,最后发现要\.


#2台机器只跑一台:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@192 ansible]# ansible-playbook jdk.yml -l 192.168.121.129
PLAY [test] ********************************************************************
TASK [jdk : copy jdk-8u101-linux-x64.tar.gz remote hosts] **********************
changed: [192.168.121.129]
TASK [jdk : tar jdk-8u101-linux-x64.tar.gz] ************************************
changed: [192.168.121.129]
 [WARNING]: Consider using unarchive module rather than running tar
TASK [jdk : soft link] *********************************************************
changed: [192.168.121.129]
TASK [jdk : java_profile config] ***********************************************
changed: [192.168.121.129] => (item=export JAVA_HOME=/usr/local/java)
changed: [192.168.121.129] => (item=export JRE_HOME=/usr/local/java/jre)
changed: [192.168.121.129] => (item=export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:\$JRE_HOME/lib:\$CLASSPATH)
changed: [192.168.121.129] => (item=export PATH=\$JAVA_HOME/bin:\$PATH)
PLAY RECAP *********************************************************************
192.168.121.129            : ok=4    changed=4    unreachable=0    failed=0

#环境变量文件:

1
2
3
4
5
6
cat /etc/profile
-----
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

#测试java的版本:

1
2
3
4
[root@ansible_clent ~]# java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)


本文转自青衫解衣 51CTO博客,原文链接:
http://blog.51cto.com/215687833/1887057