1. 程式人生 > >Ansible入門篇(三):JDK自動化安裝

Ansible入門篇(三):JDK自動化安裝

JDK是各個元件所依賴的基礎環境。

目錄結構如下,後文將不再展示

[[email protected] 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