yanglgzh 发表于 2018-1-2 22:14:21

使用Ansible自动配置JDK环境

  1、首先安装好Ansible环境,具体步骤请见Ansible安装
  2、先创建hosts文件(为后面编写脚本安装JDK做铺垫)
# vi hosts

  192.168.186.134 ansible_ssh_user=guxiong ansible_ssh_pass=private
  注:记得/etc/ansible/hosts也要加入
  3、创建文件夹
#
  makedir roles
  ansible-demo
  jdk-install
  ddefault
  files          jdk-7u79-linux-x64.tar.gz
  handler
  meta
  tasks    main.yml
  templatesset_jdk.sh
  vars   main.yml
  4、编辑tasks下面的main.yml
  

- name: copy jdk to remote host  copy: src=jdk-7u79-linux-x64.tar.gz dest=~
  - name: unzip jdk
  shell: tar -zxf jdk-7u79-linux-x64.tar.gz
  - name: creat soft link
  shell: ln -s ~/jdk1.7.0_79 jdk
  - name: set jdk_env copy use template
  template: src=set_jdk.sh dest=~/set_jdk.sh
  - name: execute script to set jdkenv
  shell: sh set_jdk.sh
  - name: source bash_profile
  shell: source ~/.bash_profile
  - name: remove files
  shell: rm jdk-7u79-linux-x64.tar.gz set_jdk.sh
  

  

  5、编辑templates下的set_jdk.sh
  

#!/bin/bash  

  
echo "export JAVA_HOME=${HOME}/jdk" >> ~/.bash_profile

  
echo 'export>  
echo 'export PATH=${JAVA_HOME}/bin:$PATH' >> ~/.bash_profile
  
source ~/.bash_profile
  

  

  6、将使用到的变量编辑在vars下的main.yml
  user: guxiong
  host_cluster: jdktest
  7、ansible-playbook安装
# ansible-playbook jdk-install.yml --extra-var "host_cluster=jdktest user=guxiong"
  

PLAY ****************************************************************  

  
TASK: *********************************
  
changed:
  

  
TASK: ***********************************************
  
changed:
  

  
TASK: *****************************************
  
changed:
  

  
TASK: ***************************
  
changed:
  

  
TASK: ****************************
  
changed:
  

  
TASK: *************************************
  
changed:
  

  
TASK: ********************************************
  
changed:
  

  
PLAY RECAP ********************************************************************
  
192.168.186.134            : ok=7    changed=7    unreachable=0    failed=0
  

  

  8、为了方便编写安装脚本
# vi jdk-install.sh
  #!/bin/bash
  set -e
  source ~/.bash_profile
  ansible-playbook jdk-install.yml -i ./hosts -e "host_cluster=${host_cluster} user=${user}"       注:${host_cluster} 为执行脚本时需要传入的服务组名,${user}为用户名
# ./jdk-install.sh jdktest guxiong
  结果一样能安装成功
  

PLAY [] ***********************************************************************  

  
TASK: *********************************
  
changed:
  

  
TASK: ***********************************************
  
changed:
  

  
TASK: *****************************************
  
changed:
  

  
TASK: ***************************
  
changed:
  

  
TASK: ****************************
  
changed:
  

  
TASK: *************************************
  
changed:
  

  
TASK: ********************************************
  
changed:
  

  
PLAY RECAP ********************************************************************
  
192.168.186.134            : ok=7    changed=7    unreachable=0    failed=0
  
页: [1]
查看完整版本: 使用Ansible自动配置JDK环境