ansible-playbook jdk安装
jdk role的目录结构如下:
1
2
3
4
5
6
7
8
9
10
11
12
<code>[root@192 roles]</code><code># tree jdk</code>
<code>jdk</code>
<code>├── defaults</code>
<code>├── files</code>
<code>│ └── jdk-8u101-linux-x64.</code><code>tar</code><code>.gz</code>
<code>├── handlers</code>
<code>├── meta</code>
<code>├── tasks</code>
<code>│ └── main.yml</code>
<code>├── templates</code>
<code>└── vars</code>
<code> </code><code>└── main.yml</code>
#vars下面的忽略,那是之前写的一个。
task文件内容如下:
13
14
<code>[root@192 tasks]</code><code># cat main.yml </code>
<code>- name: copy jdk-8u101-linux-x64.</code><code>tar</code><code>.gz remote hosts</code>
<code> </code><code>copy: src=jdk-8u101-linux-x64.</code><code>tar</code><code>.gz dest=</code><code>/usr/local/</code>
<code>- name: </code><code>tar</code> <code>jdk-8u101-linux-x64.</code><code>tar</code><code>.gz</code>
<code> </code><code>shell: chdir=</code><code>/usr/local</code> <code>tar</code> <code>zxf jdk-8u101-linux-x64.</code><code>tar</code><code>.gz</code>
<code>- name: soft link</code>
<code> </code><code>file</code><code>: src=</code><code>/usr/local/jdk1</code><code>.8.0_101 dest=</code><code>/usr/local/java</code> <code>state=link</code>
<code>- name: java_profile config</code>
<code> </code><code>shell: </code><code>/bin/echo</code> <code>{{ item }} >> </code><code>/etc/profile</code> <code>&& </code><code>source</code> <code>/etc/profile</code>
<code> </code><code>with_items:</code>
<code> </code><code>- </code><code>export</code> <code>JAVA_HOME=</code><code>/usr/local/java</code>
<code> </code><code>- </code><code>export</code> <code>JRE_HOME=</code><code>/usr/local/java/jre</code>
<code> </code><code>- </code><code>export</code> <code>CLASSPATH=.:\$JAVA_HOME</code><code>/lib/dt</code><code>.jar:$JAVA_HOME</code><code>/lib/tools</code><code>.jar:\$JRE_HOME</code><code>/lib</code><code>:\$CLASSPATH</code>
<code> </code><code>- </code><code>export</code> <code>PATH=\$JAVA_HOME</code><code>/bin</code><code>:\$PATH</code>
#注意这块有个坑啊,特殊字符一定要反斜杠\ 屏蔽字符的特殊意义,试了好几次才发现这个问题,包括gather_facts 关了也没用,到目标主机就变了,最后发现要\.
#2台机器只跑一台:
15
16
<code>[root@192 ansible]</code><code># ansible-playbook jdk.yml -l 192.168.121.129</code>
<code>PLAY [</code><code>test</code><code>] ********************************************************************</code>
<code>TASK [jdk : copy jdk-8u101-linux-x64.</code><code>tar</code><code>.gz remote hosts] **********************</code>
<code>changed: [192.168.121.129]</code>
<code>TASK [jdk : </code><code>tar</code> <code>jdk-8u101-linux-x64.</code><code>tar</code><code>.gz] ************************************</code>
<code> </code><code>[WARNING]: Consider using unarchive module rather than running </code><code>tar</code>
<code>TASK [jdk : soft link] *********************************************************</code>
<code>TASK [jdk : java_profile config] ***********************************************</code>
<code>changed: [192.168.121.129] => (item=</code><code>export</code> <code>JAVA_HOME=</code><code>/usr/local/java</code><code>)</code>
<code>changed: [192.168.121.129] => (item=</code><code>export</code> <code>JRE_HOME=</code><code>/usr/local/java/jre</code><code>)</code>
<code>changed: [192.168.121.129] => (item=</code><code>export</code> <code>CLASSPATH=.:\$JAVA_HOME</code><code>/lib/dt</code><code>.jar:$JAVA_HOME</code><code>/lib/tools</code><code>.jar:\$JRE_HOME</code><code>/lib</code><code>:\$CLASSPATH)</code>
<code>changed: [192.168.121.129] => (item=</code><code>export</code> <code>PATH=\$JAVA_HOME</code><code>/bin</code><code>:\$PATH)</code>
<code>PLAY RECAP *********************************************************************</code>
<code>192.168.121.129 : ok=4 changed=4 unreachable=0 failed=0</code>
#环境变量文件:
<code>cat</code> <code>/etc/profile</code>
<code>-----</code>
<code>export</code> <code>JAVA_HOME=</code><code>/usr/local/java</code>
<code>export</code> <code>JRE_HOME=</code><code>/usr/local/java/jre</code>
<code>export</code> <code>CLASSPATH=.:$JAVA_HOME</code><code>/lib/dt</code><code>.jar:</code><code>/lib/tools</code><code>.jar:$JRE_HOME</code><code>/lib</code><code>:$CLASSPATH</code>
<code>export</code> <code>PATH=$JAVA_HOME</code><code>/bin</code><code>:$PATH</code>
#测试java的版本:
<code>[root@ansible_clent ~]</code><code># java -version</code>
<code>java version </code><code>"1.8.0_101"</code>
<code>Java(TM) SE Runtime Environment (build 1.8.0_101-b13)</code>
<code>Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)</code>
本文转自青衫解衣 51CTO博客,原文链接:
http://blog.51cto.com/215687833/1887057