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
tasks: 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