【实践】Ansible 部署 OpenJDK

背景:

Java是一种广泛使用的编程语言,许多应用程序和服务都基于Java开发。在部署Java应用程序时,配置正确的Java环境是至关重要的。Ansible作为一种自动化工具,可以帮助简化Java环境的部署过程,提高效率并减少配置错误的风险。本文将介绍如何使用Ansible来轻松部署Java环境,以便更高效地构建和运行您的Java应用程序。

步骤说明

1. 创建 Ansible Inventory

创建一个 deploy-openjdk-host.ini 的主机清单文件

[deploy]
aliyun_ecs ansible_ssh_host=47.96.125.179 ansible_ssh_port=22 ansible_user=ecs-user ansible_ssh_pass=Ecs-user123 ansible_sudo_pass=Ecs-user123

2. 创建环境变量文件

创建一个名为 java_env.sh.j2的环境变量文件, 这样做主要是方便自动化替换,覆盖

export JAVA_HOME=/home/{{ openjdk_install_user }}/{{ openjdk_home_name }}
export PATH=$JAVA_HOME/bin:$PATH

3. 创建 Ansible PlayBook

创建一个 deploy-openjdk.yaml 的文件

# Task OpenJdk
- name: 安装 OpenJdk
  hosts: deploy
  become: true
  vars:
    # openjdk 11
    # openjdk_version: 11.0.2
    # openjdk_home_name: "jdk-{{ openjdk_version }}"
    # openjdk_tar_name: "openjdk-{{ openjdk_version }}_linux-x64_bin.tar.gz"
    # openjdk 8
    openjdk_version: 8.382.05.1
    openjdk_home_name: "amazon-corretto-{{ openjdk_version }}-linux-x64"
    openjdk_tar_name: "{{ openjdk_home_name }}.tar.gz"
    openjdk_down_baseurl: "https://i-ansible.oss-cn-hangzhou-internal.aliyuncs.com"
    openjdk_install_user: ecs-user
  tasks:
    - name: 下载 Linux 通用包
      ansible.builtin.get_url:
        url: "{{ openjdk_down_baseurl }}/{{ openjdk_tar_name }}"
        validate_certs: false
        dest: "/tmp/{{ openjdk_tar_name }}"
        mode: "0644"
        force: true
        owner: "{{ openjdk_install_user }}"
        group: "{{ openjdk_install_user }}"
      tags: download

    - name: 解压
      ansible.builtin.unarchive:
        remote_src: true
        src: "/tmp/{{ openjdk_tar_name }}"
        dest: "/home/{{ openjdk_install_user }}"
        owner: "{{ openjdk_install_user }}"
        group: "{{ openjdk_install_user }}"
      become_user: "{{ openjdk_install_user }}"

    - name: 创建环境变量目录
      ansible.builtin.file:
        name: "/home/{{ openjdk_install_user }}/.bashrc.d"
        state: directory
        mode: "0755"
      become_user: "{{ openjdk_install_user }}"


    - name: 配置环境变量文件
      ansible.builtin.template:
        src: "{{ item }}.j2"
        dest: "/home/{{ openjdk_install_user }}/.bashrc.d/{{ item }}"
        mode: "0755"
        force: true
      with_items:
        - java_env.sh
      become_user: "{{ openjdk_install_user }}"


    # 配置 .bashrc 一下内容
    #  for file in ~/.bashrc.d/*.sh; do
    #      source "$file"
    #  done
    # source .bashrc

后续随着环境变量文件的增多, 不方便管理,可以在 .bashrc 文件中增加

for file in ~/.bashrc.d/*.sh; do
    source "$file"
done

一键加载 .bashrc.d 所有的环境变量文件

4. 执行 Ansible PlayBook

$ ansible-playbook -i inventory/deploy-openjdk-host.ini playbook/openjdk/deploy-openjdk.yaml         

PLAY [安装 OpenJdk] ***************************************************************************************************************************

TASK [Gathering Facts] ************************************************************************************************************************
ok: [aliyun_ecs]

TASK [下载 Linux 通用包] **********************************************************************************************************************
ok: [aliyun_ecs]

TASK [解压] ***********************************************************************************************************************************
ok: [aliyun_ecs]

TASK [创建环境变量目录] ***********************************************************************************************************************
ok: [aliyun_ecs]

TASK [配置环境变量文件] ***********************************************************************************************************************
ok: [aliyun_ecs] => (item=java_env.sh)

PLAY RECAP ************************************************************************************************************************************
aliyun_ecs                 : ok=5    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

总结:

通过使用Ansible来部署Java环境,您可以极大地简化Java环境的配置过程,提高效率,并减少手动操作和配置错误的风险。Ansible的自动化能力使您能够快速定义安装Java所需的任务和参数,并在多个主机上进行批量操作。同时,Ansible的可重复性和可扩展性使得在未来部署更多Java环境时也能轻松应对。通过将Java环境的部署自动化,您可以节省时间和精力,更专注于应用程序的开发和部署。

希望通过本文,读者能够了解到使用Ansible来部署Java环境的方法,并体验到其带来的便利和效率提升。无论是个人开发者还是企业用户,使用Ansible来部署Java环境可以帮助您更高效地构建和运行Java应用程序。借助自动化工具的力量,您可以更好地管理和维护Java环境,提高开发效率,并确保应用程序在正确的Java环境下稳定运行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱写代码的小任

感谢老板打赏,我将会再接再厉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值