1. 程式人生 > >ansible-playbook設定java環境變數後不生效解決方法

ansible-playbook設定java環境變數後不生效解決方法

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 }}