天天看点

ansible-playbook jdk安装

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 }} &gt;&gt; </code><code>/etc/profile</code> <code>&amp;&amp; </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] =&gt; (item=</code><code>export</code> <code>JAVA_HOME=</code><code>/usr/local/java</code><code>)</code>

<code>changed: [192.168.121.129] =&gt; (item=</code><code>export</code> <code>JRE_HOME=</code><code>/usr/local/java/jre</code><code>)</code>

<code>changed: [192.168.121.129] =&gt; (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] =&gt; (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