CentOS6u8 java和tomcat多版本模板的ansible批量部署实现(二)

部署多版本java环境:


192.168.77.100操作:

su - deploy
mkdir -pv muti_java_env/{inventory,roles}
# 配置被操控的主机信息
cat >muti_java_env/inventory/proenv<<EOF
192.168.77.200
[Server]
192.168.77.200
[Server:vars]
jre16=jre-6u45-linux-x64.bin
jre17=server-jre-7u80-linux-x64.tar.gz
jre18=server-jre-8u172-linux-x64.tar.gz
EOF

# 创建java角色,实现多java版本的部署
mkdir -pv muti_java_env/roles/java/{files,templates,tasks}
# 将对应的jre部署包上传到muti_java_env/roles/java/files目录之下
cat >muti_java_env/roles/java/templates/java.sh.j2<<EOFALL
#!/bin/bash
source ~/.bash_profile
# chattr -i -R /usr/local/java &>/dev/null
rm -rf /usr/local/java
mkdir -p /usr/local/java
cd /usr/local/java
bash /tmp/{{ jre16 }}
find . -name "jre1.6*" -exec ln -s {} java_1.6 \;
tar -xf /tmp/{{ jre17 }}
find . -name "jdk1.7*" -exec ln -s {} java_1.7 \;
tar -xf /tmp/{{ jre18 }}
find . -name "jdk1.8*" -exec ln -s {} java_1.8 \;
chown root: -R .
cat >java_1.6_env<<EOF
export JAVA_HOME=/usr/local/java/java_1.6
export CLASSPATH=\$JAVA_HOME/lib:\$JAVA_HOME/jre/lib
export PATH=\$JAVA_HOME/bin:\$JAVA_HOME/jre/bin:\$PATH
EOF
chmod 444 java_1.6_env
cat >java_1.7_env<<EOF
export JAVA_HOME=/usr/local/java/java_1.7
export CLASSPATH=\$JAVA_HOME/lib:\$JAVA_HOME/jre/lib
export PATH=\$JAVA_HOME/bin:\$JAVA_HOME/jre/bin:\$PATH
EOF
chmod 444 java_1.7_env
cat >java_1.8_env<<EOF
export JAVA_HOME=/usr/local/java/java_1.8
export CLASSPATH=\$JAVA_HOME/lib:\$JAVA_HOME/jre/lib
export PATH=\$JAVA_HOME/bin:\$JAVA_HOME/jre/bin:\$PATH
EOF
chmod 444 java_1.8_env
# chattr +i -R /usr/local/java &>/dev/null
EOFALL
sed -i 's/\$/\\$/g' muti_java_env/roles/java/templates/java.sh.j2
# 该文件是文件套文件的方式,需要做变量引用的二次修正

cat >muti_java_env/roles/java/tasks/main.yml<<EOF
- name: rsync java16
  copy: "remote_src=no src=roles/java/files/{{ jre16 }} dest=/tmp/{{ jre16 }} mode=0644"
- name: rsync java17
  copy: "remote_src=no src=roles/java/files/{{ jre17 }} dest=/tmp/{{ jre17 }} mode=0644"
- name: rsync java18
  copy: "remote_src=no src=roles/java/files/{{ jre18 }} dest=/tmp/{{ jre18 }} mode=0644"
- name: rsync java.sh
  template: src=roles/java/templates/java.sh.j2 dest=/tmp/java.sh
- name: setup java environment
  command: "bash /tmp/java.sh"
EOF

cat >muti_java_env/deploy.yml<<EOF
- hosts: "Server"
  gather_facts: true
  remote_user: root
  roles:
    - java
EOF

cd muti_java_env
ansible-playbook -i inventory/proenv ./deploy.yml
cd

[TOC]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值