当前位置: 首页 > news >正文

使用Ansible批量安装JDK

使用Ansible批量安装JDK

1. 准备工作

1.1 主机列表

IP 主机名 内存(GB) CPU核数 磁盘 操作系统 CPU架构
10.0.0.13 arc-pro-dc01 16 1 500GB CentOS 7.9.2009 x86_64
10.0.0.14 arc-pro-dc02 16 1 500GB CentOS 7.9.2009 x86_64
10.0.0.15 arc-pro-dc03 16 1 500GB CentOS 7.9.2009 x86_64
10.0.0.16 arc-pro-dc04 8 2 500GB CentOS 7.9.2009 x86_64
10.0.0.17 arc-pro-dc05 8 2 500GB CentOS 7.9.2009 x86_64
10.0.0.18 arc-pro-dc06 8 2 500GB CentOS 7.9.2009 x86_64
10.0.0.19 arc-pro-dc07 8 2 500GB CentOS 7.9.2009 x86_64
10.0.0.20 arc-pro-dc08 8 2 500GB CentOS 7.9.2009 x86_64
10.0.0.21 arc-pro-dc09 8 2 500GB CentOS 7.9.2009 x86_64

1.2 已安装服务

版本 arc-pro-dc01 arc-pro-dc02 arc-pro-dc03 arc-pro-dc04 arc-pro-dc05 arc-pro-dc06 arc-pro-dc07 arc-pro-dc08 arc-pro-dc09
Ansible 2.9.27

说明:

  • 每个服务器的 IP 均是静态的
  • 每个服务器的防火墙都已关闭
  • 每个服务器的 SELINUX 已经禁用
  • 每个服务器均存在一个管理员用户 admin,该用户可以免密码执行 sudo 命令;
  • 在 arc-pro-dc01 机器上,可以使用 admin 用户免密码 ssh 到其他机器;
  • 服务器之间的时间同步;
  • 所有操作均使用 admin 用户完成;
  • 每个服务的 /etc/hosts 文件均包含如下内容:
10.0.0.13 arc-pro-dc01
10.0.0.14 arc-pro-dc02
10.0.0.15 arc-pro-dc03
10.0.0.16 arc-pro-dc04
10.0.0.17 arc-pro-dc05
10.0.0.18 arc-pro-dc06
10.0.0.19 arc-pro-dc07
10.0.0.20 arc-pro-dc08
10.0.0.21 arc-pro-dc09

为使集群满足以上要求,参考下列文章进行配置:

  • 使用 VMware Workstation 安装 CentOS-7 虚拟机
  • 用 Ansible 批量完成 CentOS 7 操作系统基础配置

1.3 集群规划

版本 arc-pro-dc01 arc-pro-dc02 arc-pro-dc03 arc-pro-dc04 arc-pro-dc05 arc-pro-dc06 arc-pro-dc07 arc-pro-dc08 arc-pro-dc09
JDK 8u461

1.4 下载安装包

JDK 8 下载页面:

  • 8u211以及之后版本的下载页面:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html
  • 8u202以及更早的版本下载页面:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html

该网站需要注册登录后才可以下载JDK。下载 jdk-8u461-linux-x64.tar.gz。

Snipaste_2025-11-23_18-59-22

使用 admin 用户登录 arc-pro-dc01 机器,创建目录:/home/admin/ansible/jdk

将 jdk-8u461-linux-x64.tar.gz 上传至 arc-pro-dc01 机器的 /home/admin/ansible/jdk 目录下。

2. Ansible 文件

2.1 Ansible 目录结构

说明:在 arc-pro-dc01 机器上,执行 ansible 命令的基础目录为 /home/admin/ansible

$ tree /home/admin/ansible/
/home/admin/ansible/
├── ansible.cfg
├── hosts
└── jdk   ├── install_jdk.yml   └── jdk-8u461-linux-x64.tar.gz

2.2 ansible.cfg

[defaults]
inventory=./hosts
host_key_checking=False

2.3 hosts

[cluster]
arc-pro-dc01
arc-pro-dc02
arc-pro-dc03
arc-pro-dc04
arc-pro-dc05
arc-pro-dc06
arc-pro-dc07
arc-pro-dc08
arc-pro-dc09

2.4 install_jdk.yml

---
- name: Install JDK 8hosts: clusterbecome: truegather_facts: falsevars:admin_user: adminjdk_tarball: "jdk-8u461-linux-x64.tar.gz"jdk_install_dir: "/usr/java"jdk_dirname: "jdk1.8.0_461" # 解压后的目录名jdk_symlink: "jdk"env_file: "/etc/profile.d/arc-env-jdk.sh"tasks:- name: Ensure JDK install directory existsfile:path: "{{ jdk_install_dir }}"state: directorymode: '0755'- name: Remove jdk dir and create newshell: |rm -rf {{ jdk_install_dir }}/{{ jdk_symlink }} {{ jdk_install_dir }}/{{ jdk_dirname }}mkdir -p {{ jdk_install_dir }}/{{ jdk_dirname }}- name: Extract JDK tarballunarchive:src: "{{ jdk_tarball }}"dest: "{{ jdk_install_dir }}/{{ jdk_dirname }}"remote_src: noextra_opts:- "--strip-components=1" # 去掉压缩包最顶层目录,直接解压到目标- name: Create jdk symlinkfile:src: "{{ jdk_dirname }}"dest: "{{ jdk_install_dir }}/{{ jdk_symlink }}"state: link- name: Ensure environment file existsfile:path: "{{ env_file }}"state: touch # 文件存在则不改内容,不存在则创建空文件owner: "{{ admin_user }}"group: "{{ admin_user }}"mode: '0755'- name: Set JAVA_HOME and update PATHcopy:dest: "{{ env_file }}"content: |export JAVA_HOME={{ jdk_install_dir }}/{{ jdk_symlink }}export PATH=$JAVA_HOME/bin:$PATH- name: Print java versionshell: |source {{ env_file }}java -versionargs:executable: /bin/bashregister: java_versionignore_errors: yes- name: Show java version outputdebug:msg: "{{ java_version.stderr_lines }}"

3. 安装

在 arc-pro-dc01(Ansible 管理节点) 服务器执行

$ pwd
/home/admin/ansible$ ansible-playbook jdk/install_jdk.yml# 输出
TASK [Show java version output] *********************************************
ok: [arc-pro-dc01] => {"msg": ["java version \"1.8.0_461\"","Java(TM) SE Runtime Environment (build 1.8.0_461-b11)","Java HotSpot(TM) 64-Bit Server VM (build 25.461-b11, mixed mode)"]
}
ok: [arc-pro-dc05] => {"msg": ["java version \"1.8.0_461\"","Java(TM) SE Runtime Environment (build 1.8.0_461-b11)","Java HotSpot(TM) 64-Bit Server VM (build 25.461-b11, mixed mode)"]
}
ok: [arc-pro-dc02] => {"msg": ["java version \"1.8.0_461\"","Java(TM) SE Runtime Environment (build 1.8.0_461-b11)","Java HotSpot(TM) 64-Bit Server VM (build 25.461-b11, mixed mode)"]
}
ok: [arc-pro-dc03] => {"msg": ["java version \"1.8.0_461\"","Java(TM) SE Runtime Environment (build 1.8.0_461-b11)","Java HotSpot(TM) 64-Bit Server VM (build 25.461-b11, mixed mode)"]
}
ok: [arc-pro-dc04] => {"msg": ["java version \"1.8.0_461\"","Java(TM) SE Runtime Environment (build 1.8.0_461-b11)","Java HotSpot(TM) 64-Bit Server VM (build 25.461-b11, mixed mode)"]
}
ok: [arc-pro-dc06] => {"msg": ["java version \"1.8.0_461\"","Java(TM) SE Runtime Environment (build 1.8.0_461-b11)","Java HotSpot(TM) 64-Bit Server VM (build 25.461-b11, mixed mode)"]
}
ok: [arc-pro-dc08] => {"msg": ["java version \"1.8.0_461\"","Java(TM) SE Runtime Environment (build 1.8.0_461-b11)","Java HotSpot(TM) 64-Bit Server VM (build 25.461-b11, mixed mode)"]
}
ok: [arc-pro-dc07] => {"msg": ["java version \"1.8.0_461\"","Java(TM) SE Runtime Environment (build 1.8.0_461-b11)","Java HotSpot(TM) 64-Bit Server VM (build 25.461-b11, mixed mode)"]
}
ok: [arc-pro-dc09] => {"msg": ["java version \"1.8.0_461\"","Java(TM) SE Runtime Environment (build 1.8.0_461-b11)","Java HotSpot(TM) 64-Bit Server VM (build 25.461-b11, mixed mode)"]
}PLAY RECAP *******************************************************************************************************
arc-pro-dc01               : ok=8    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
arc-pro-dc02               : ok=8    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
arc-pro-dc03               : ok=8    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
arc-pro-dc04               : ok=8    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
arc-pro-dc05               : ok=8    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
arc-pro-dc06               : ok=8    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
arc-pro-dc07               : ok=8    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
arc-pro-dc08               : ok=8    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
arc-pro-dc09               : ok=8    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
http://www.gsyq.cn/news/58435.html

相关文章:

  • static 静态变量
  • 2025-09-10-Wed-T-Milvus
  • 2025.11.23
  • java linux服务器
  • 贪心做题记录-2
  • 2025 年上海金蝶软件定制开发代理商推荐榜出炉
  • 【开发者导航】全自动 AI 视频创作与发布工具:LuoGen-agent - 教程
  • 截图工具
  • 人工智能之数据分析 numpy:第十二章 数据持久化
  • anchor
  • 2025 年上海最靠谱的金蝶代理商:聚焦官方授权与深度适配,这家最高级铂金伙伴值得选
  • 单克隆抗体在药物研发和治疗领域的应用前景
  • 2025 年上海金蝶软件代理商推荐榜:上海宝蝶信息科技有限公司全行业覆盖、金蝶最高级铂金伙伴
  • Jetson Orin Nano super -3 NVIDIA Jetson 平台的技术架构和NVIDIA JetPack
  • 学习DA
  • 候选区域
  • 数据结构理论知识 - 指南
  • 大盘风险控制策略分析报告 - 2025年11月21日
  • 前端八股文-高频面试题 - 教程
  • 2024软工K班结对编程任务
  • 实用指南:各种各样的Self-attention学习上(第二十周周报)
  • 20251123 之所思 - 人生如梦
  • 人工智能之数据分析 numpy:第十章 副本视图
  • Node.js 端的接口签名处理
  • 20232402 2025-2026-1 《网络与系统攻防技术》实验六实验报告
  • the success of Japan
  • 赫尔默特变化 A=0的情况
  • 20232411 2024-2025-1 《网络与系统攻防技术》实验六实验报告
  • Oracle数据库核心操作完全手册:运维、开发与调优必备
  • 2025/11/25