ansible-playbook設定java環境變數後不生效解決方法
阿新 • • 發佈:2019-01-27
ansible playbook指令碼中有安裝jdk操作,並且設定環境變數後且source了 /etc/profile檔案,還會提示沒有JAVA_HOME
程式碼如下:
- name: install jdk1.8
yum: name=jdk1.8.0_144.x86_64 state=present disablerepo=* enablerepo=packages
- name: check jdk variable
shell: cat /etc/profile
register: result
#jdk_version 在變數檔案中有定義
- name: jdk variable configuration /etc/profile file
shell: /bin/echo {{ item }} >> /etc/profile; source /etc/profile
when: result.stdout.find('JAVA_HOME') == -1
with_items:
- export JAVA_HOME=/usr/java/jdk{{ jdk_version }}
- export JAVA_BIN=/usr/java/jdk{{ jdk_version }}/bin
- export PATH=$PATH:/usr/java/jdk{{ jdk_version }}/bin
- export JRE_HOME =/usr/java/jdk{{ jdk_version }}/jre
- export CLASSPATH=.:/usr/java/jdk{{ jdk_version }}/lib:/usr/java/jdk{{ jdk_version }}/jre/lib
- export JAVA_HOME JAVA_BIN PATH JRE_HOME CLASSPATH
在ansible環境下,控制其他機器,除了/etc/profile檔案需要修改,還需要修改/root/.bashrc檔案中的值
- name: check jdk variable
shell: cat /root/.bashrc
register: bashrc_result
- name: jdk variable configuration /root/.bashrc file
shell: /bin/echo {{ item }} >> /root/.bashrc; source /root/.bashrc
when: bashrc_result.stdout.find('JAVA_HOME') == -1
with_items:
- export JAVA_HOME=/usr/java/jdk{{ jdk_version }}