Ansible入门篇(三):JDK自动化安装

版权声明:有不正确的地方,还望各位指正指导,Thanks! https://blog.csdn.net/a544258023/article/details/85157378

JDK是各个组件所依赖的基础环境。

目录结构如下,后文将不再展示

[root@s130 ansible]# tree /opt/ansible/
├── bootstrap.yml
├── hosts
├── roles
│   ├── files
│   │   ├── elasticsearch.tar.gz
│   │   ├── hadoop.tar.gz
│   │   ├── jdk.tar.gz
│   │   ├── kafka.tar.gz
│   │   ├── scala.tar.gz
│   │   ├── spark.tar.gz
│   │   └── zookeeper.tar.gz
│   ├── templates
│   │   ├── application.conf.j2
│   │   ├── core-site.xml.j2
│   │   ├── elasticsearch.in.sh.j2
│   │   ├── elasticsearch.yml.j2
│   │   ├── hadoop-env.sh.j2
│   │   ├── hdfs-site.xml.j2
│   │   ├── producer.properties.j2
│   │   ├── server.properties.j2
│   │   ├── slaves.hadoop.j2
│   │   ├── slaves.spark.j2
│   │   ├── spark-env.sh.j2
│   │   └── zoo.cfg.j2
│   └── vars
│       └── main.yml
└── yml
    ├── create_kafka_topic.yml
    ├── createTable.yml
    ├── dockerInstall.yml
    ├── esStart.yml
    ├── esStop.yml
    ├── hadoopStart.yml
    ├── hadoopStop.yml
    ├── install.yml
    ├── kafkaStart.yml
    ├── kafkaStop.yml
    ├── sparkStart.yml
    ├── sparkStop.yml
    ├── sshKey.yml
    ├── start.yml
    ├── stop.retry
    ├── stop.yml
    ├── zookeeperStart.yml
    └── zookeeperStop.yml

JDK安装包下载


JAVA官网下载对应版本的JDK,本文以JKD8为例。

将下载好的jdk-8u181-linux-x64.tar.gz上传到/opt/ansible/roles/files目录下,本文将所有tar安装包都进行了重命名操作,比如将jdk-8u181-linux-x64.tar.gz解压后重命名为jdk并打成jdk.tar.gz包

编写主机hosts

编辑/opt/ansible/hosts文件添加部署JKD机器IP

[jdk8]
172.18.18.120 
172.18.18.121 
172.18.18.122 

 

编写参数配置main.yml

编辑/opt/ansible/roles/vars/main.yml文件,添加变量

BigdataDir: /opt/hzgc

编写执行文件jdk.yml

编辑新建/opt/ansible/yml/jdk.yml文件,添加内容如下:

- hosts: jdk8
  remote_user: root
  roles:
  - roles

  tasks:
   - name: mkdir jdk directory 
#创建安装目录
     file: path={{BigdataDir}} state=directory mode=0755
   - name: copy and unzip jdk 
#解压安装
     unarchive: src={{AnsibleDir}}/roles/files/jdk.tar.gz dest={{BigdataDir}}
   - name: set env 
#设置环境变量
     lineinfile: dest=/etc/profile insertafter="{{item.position}}" line="{{item.value}}" state=present
     with_items:
     - {position: EOF, value: "export JAVA_HOME={{BigdataDir}}/jdk"}
     - {position: EOF, value: "export PATH=$JAVA_HOME/bin:$PATH"}
   - name: chmod bin 
#修改执行权限
     file: dest={{BigdataDir}}/jdk/bin mode=0755 recurse=yes
   - name: enforce env 
#刷新环境变量
     shell: source /etc/profile

执行JDK安装部署 

ansible-playbook -i hosts  yml/jdk.yml 

检查JDK是否安装成功:java -version

猜你喜欢

转载自blog.csdn.net/a544258023/article/details/85157378