首页 > 其他分享 >ansible自动化部署rabbitmq

ansible自动化部署rabbitmq

时间:2024-08-23 17:58:39浏览次数:6  
标签:JAVA name rabbitmq etc ansible 192.168 自动化

一、准备环境

1、准备机器

本次以192.168.190.155,192.168.190.156,192.168.190.157,192.168.190.158四台虚机为例,本文操作全在管理机中。

机器IP

节点

CPU&内存

系统盘

存储

192.168.190.155

Ansible管理机

2C4G

50GB

50GB

192.168.190.158

Master/Worker(被管理机)

2C4G

50GB

50GB

192.168.190.157

Master/Worker(被管理机)

2C4G

50GB

50GB

192.168.190.156

Worker(被管理机)

2C4G

50GB

50GB

本次主要操作都在管理机:192.168.190.155上完成

二、详细步骤

1、配置ansible的hosts,定义变量:

vi /etc/ansible/hosts

内容:

[rabbitmq]

192.168.190.158

192.158.190.157

192.168.190.156

[rabbitmq_servers]  

rabbitmq-1 ansible_host=192.168.1.101  

rabbitmq-2 ansible_host=192.168.1.102  

rabbitmq-3 ansible_host=192.168.1.103

2、在管理机上创建安装rabbitmq的必要的目录

mkdir -p /etc/ansible/roles/{rabbitmq,java}/{defaults,tasks,templates}

3、编辑配置java剧本

目录结构图:

①、配置defaults目录下的配置文件(设置变量):main.yml

vi /etc/ansible/roles/java/defaults/main.yml

内容:

---

JAVA_VERSION: 1.8.2_192

JAVA_HOME: /data/java

JAVA_TAR: jdk-8u192-linux-x64.tar.gz

②、配置tasks目录下的配置文件(剧本):java.yml

vi /etc/ansible/roles/java/tasks/java.yml

内容:

---

- name: Deploy Java-JDK-1.8-192

  hosts: all

  become: yes

  roles:

    - java

  tasks:

    - name: Copy Jdk

      copy:

        src: /{{JAVA_HOME}}/{{JAVA_VERSION2}}

        dest: /tmp/{{JAVA_VERSION2}}

    - name: Create Kafka logs directory  

      ansible.builtin.file:    

        path: /data/java   

        state: directory

    - name: Extrack Jdk

      unarchive:

        src: /tmp/{{JAVA_VERSION2}}

        dest: /data/java/

        remote_src: yes

    - name: Add JAVA_HOME to /etc/profile.d/

      blockinfile:        

        path: /etc/profile.d/java.sh

        create: yes        

        mode: '0644'        

        block: |          

          export JAVA_HOME=/{{JAVA_HOME}}/jdk-{{JAVA_VERSION}}

          export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
          export PATH=$PATH:$JAVA_HOME/bin        

          marker: "# {mark} ANSIBLE MANAGED BLOCK - JAVA_HOME"

4、编辑配置rabbitmq剧本

目录结构图:

①、配置defaults目录下的配置文件(设置变量):main.yml

vi /etc/ansible/roles/rabbitmq/defaults/main.yml

内容:

---

ERLANG_VERSION: 25.0.2

ERLANG_HOME: /data/erlang/erlang-25.0.2-1.el9.x86_64.rpm

ERLANG_INSTALL_DIR: /data/erlang

RABBITMQ_VERSION: 3.10.2

RABBITMQ_HOME: /data/rabbitmq/rabbitmq-server-3.10.2-1.el8.noarch.rpm

RABBITMQ_INSTALL_DIR: /data/rabbitmq

②、配置tasks目录下的配置文件(剧本):rabbit.yml

vi /etc/ansible/roles/rabbitmq/tasks/rabbit.yml

内容:

---

- name: Deploy rabbitmq

  hosts: rabbitmq

  become: yes

  roles:

    - rabbitmq

  tasks:

    - name: Copy erlang

      copy:

        src: "{{ ERLANG_HOME }}"

        dest: /tmp/erlang-{{ ERLANG_VERSION }}-1.el9.x86_64.rpm

    - name: Copy rabbitmq

      copy:

        src: "{{ RABBITMQ_HOME }}"

        dest: /tmp/rabbitmq-server-{{ RABBITMQ_VERSION }}-1.el8.noarch.rpm

    - name: Extrack erlang

      ansible.builtin.yum:

        name: /tmp/erlang-{{ ERLANG_VERSION }}-1.el9.x86_64.rpm

        state: present

    - name: Ensure erlang

      ansible.builtin.yum:

        name: erlang

        state: present

    - name: Ensure socat

      ansible.builtin.yum:

        name: socat

        state: present

    - name: Extrck rabbitmq

      ansible.builtin.yum:

        name: /tmp/rabbitmq-server-{{ RABBITMQ_VERSION }}-1.el8.noarch.rpm

        state: present

    - name: Reolad systemd manager and restart rabbitmq

      ansible.builtin.systemd:

        name: rabbitmq-server

        state: restarted

        daemon-reload: yes

    - name: Create rabbitmq

      ansible.builtin.file:

        path: /data/data

        state: directory

    - name: Create logs

      ansible.builtin.file:

        path: /data/rabbitmq/logs

        state: directory

    - name: Create rabbitmq-env.conf

      ansible.builtin.template:

        src: /etc/ansible/roles/rabbitmq/templates/rabbitmq.j2

        dest: /etc/rabbitmq

    - name: Create erlang-cookie

      ansible.builtin.template:

        src: /etc/ansible/roles/rabbitmq/templates/.erlang.cookie.j2

        dest: /etc/rabbitmq

    - name: Template /etc/hostname      

      template:        

        src: /etc/ansible/roles/rabbitmq/templates/hostname.j2        

        dest: /etc/hostname

    - name: Reload systemd-hostnamed (optional)      

      systemd:        

        name: systemd-hostnamed        

        state: reloaded      

      ignore_errors: true

③、编辑配置jinja2文件(配合剧本使用,自动创建zookeeper配置文件):

a、.erlang.cookie.j2

vi /etc/ansible/roles/rabbitmq/templates/.erlang-cookie.j2

内容:

CACQNHYVCUKZAXNMSKSU

b、rabbitmq.j2

vi /etc/ansible/roles/rabbitmq/templates/rabbitmq.j2

内容:

RABBITMQ_MNESIA_BASE=/data/data

RABBITMQ_LOG_BASE=/data/rabbitmq/logs

c、hostname.j2

vi /etc/ansible/roles/rabbitmq/templates/hostname.j2

内容:

{{ inventory_hostname }}

标签:JAVA,name,rabbitmq,etc,ansible,192.168,自动化
From: https://blog.csdn.net/changyitt/article/details/141471866

相关文章

  • ansible template
     Jinja2文档:https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_templating.htmlAnsible的template模块用于将Jinja2模板文件(.j2文件)渲染并生成目标文件。它的主要功能是根据变量动态生成配置文件或其他内容,并将其分发到目标主机。template模块在管理......
  • HtmlUnit:自动化操作web页面的java工具
    java有httpclient等工具,可以模拟进行一些web操作,但一些逻辑是在前端js中执行的,此时httpclient就比较困难了。此时可以考虑使用HtmlUnit,模拟出一个浏览器,全程在浏览器中操作。 本文以在百度中输入搜索关键字->点击“百度一下”按钮->打印搜索结果这一过程为例,演示HtmlUnit的......
  • Selenium + Python 自动化测试22(PO+数据驱动)
            我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。上一篇我们讨论了PO模式和unittest框架结合起来使用。        本篇文章我们综合一下之前学习的内容,如先将PO模式、数据驱动思想和我们生成HTML报告融合起来,综合的灵活的使用......
  • 解锁未来财富密码:AI自动化副业创收班——终身财富加速器
    副业创收已经成为行业趋势,在当前经济形势下,许多人面临着行业裁员的不确定性。为了增强个人的抗风险能力,寻求一份副业已经成为一种重要的趋势。这不仅是经济上的补充,更是对自由与独立的一种追求——它应让你自主掌控,不被外界束缚。通过精心打造的副业,你不仅可以灵活安排时间,享受到......
  • CANoe_UDS-boorloader 自动化测试系列(六)基本功能:CAPL实现bin文件数据解析
    CANoe_UDS-booroader自动化测试系列(一)创建一个CANoe测试工程(测试节点的选选择)CANoe_UDS-booroader自动化测试系列(二)基本刷写流程CANoe_UDS-booroader自动化测试系列(三)基本功能:CAPL实现UDS协议下的CAN报文接收#解析#发送CANoe_UDS-booroader自动化测试系列(四)基本功能:CAPL实......
  • jenkins 自动化流程
     ......
  • 使用PowerShell自动化Windows系统管理任务
    1.管理服务列出所有服务Get-Service启动服务Start-Service-Name"ServiceName"停止服务Stop-Service-Name"ServiceName"2.管理计划任务创建计划任务$Action=New-ScheduledTaskAction-Execute"C:\Path\To\Executable.exe"$Trigger=New-ScheduledTask......
  • Python代码部署之用Kubernetes实现自动化详解
    概要在现代软件开发中,容器化和微服务架构逐渐成为主流,而Kubernetes则是管理容器化应用的事实标准。Kubernetes(简称K8s)提供了自动化部署、扩展和管理容器化应用的强大功能。本文将详细介绍如何使用Kubernetes来部署Python代码,包括Kubernetes的基本概念、部署流程,以及通过示例......
  • 【自动化测试必学语言】python:UnitTest框架
    目录介绍框架什么是UnitTest框架?为什么使用UnitTest框架?UnitTest核心要素(unitest的组成部分)1.TestCase(最核心的模块) 2.TestSuite3.TestRunner4.TestLoader5.FixtureTestCase(测试用例)问题1 代码文件的命名不规范问题2代码运行没有结果 问题3没有找到用例......
  • ansible详解
    一、语法usage:ansible[-h][--version][-v][-b][--become-methodBECOME_METHOD][--become-userBECOME_USER][-K|--become-password-fileBECOME_PASSWORD_FILE][-iINVENTORY][--list-hosts][-lSUBSET][-PPOLL_INTE......