首页 > 其他分享 >Ansible部署mariadb高可用集群

Ansible部署mariadb高可用集群

时间:2023-10-29 12:11:37浏览次数:37  
标签:name 192.168 Ansible 集群 yum master mariadb root

节点规划

主机名 IP地址

master

192.168.238.10

node1

192.168.238.11

node2

192.168.238.12

node3

192.168.238.13

准备四台虚拟机,使用CentOS-7-x86_64-DVD-2009.iso镜像

基础准备

1,安装ansible

[root@master root]#  yum install epel-release -y    ##由于ansible的依赖包较多,推荐使用网络源安装。首先安装携带ansible的网络源,然后安装ansible即可

[root@master root]#  yum install ansible -y

2,配置ssh免密登录

[root@master root]#  ssh-keygen  ##生成密钥,默认回车即可

[root@master root]#  ssh-copy-id 192.168.238.11    ##拷贝密钥至主机

[root@master root]#  ssh-copy-id 192.168.238.12

[root@master root]#  ssh-copy-id 192.168.238.13

3,关闭防火墙和selinux

[root@master root]#  systemctl stop firewalld && systemctl disable firewalld

[root@master root]#  setenforce 0

[root@master root]#  sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

4,创建ansible的工作目录

[root@master root]# mkdir example 

5,修改ansible主机清单

[root@master root]# cd /ect/ansible/hosts

[root@master hosts]#cat hosts

[node]

192.168.238.11 hostname=node1

192.168.238.12 hostname=node2

192.168.238.13 hostname=node3

[node1]

192.168.238.11

[node2]

192.168.238.12

[node3]

192.168.238.13 

6,编写ftp源

[root@master root]#  mkdir /opt/centos

[root@master root]#  mount /dev/sr0 /opt/centos

[root@master root]#  echo  'mount /dev/sr0  /opt/centos' >>/etc/rc.local 

[root@master root]#  chmod  777 /etc/rc.local 

[root@master root]#  chmod  777 /etc/rc.d/rc.local

[root@master root]#  yum install vsftpd -y

[root@master root]#  echo 'anon_root=/opt' >> /etc/vsftpd/vsftpd.conf

[root@master root]#  systemctl start vsftpd && systemctl enable vsftpd

[root@master root]# cat /root/example/ftp.repo

[centos]
name=centos
baseurl=ftp://192.168.238.10/centos
enabled=1
gpgcheck=0
[yum]
name=yum
baseurl=http://yum.mariadb.org/10.3/centos74-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
enabled=1
gpgcheck=0

编写playbook剧本

[root@ansible example]# cat /root/example/cscc_install.yaml

---
- hosts: node
  remote_user: root
  tasks:
   - name: hostname
     shell: hostnamectl set-hostname {{hostname|quote}}
   - name: hosts
     shell: sed -i '$a 192.168.238.11 node1 \n192.168.238.12 node2 \n192.168.238.13 node3' /etc/hosts
   - name: selinux
     shell: setenforce 0 && systemctl stop firewalld 
   - name: local.repo
     shell: rm -rf /etc/yum.repos.d/*
   - name: ftp.repo
     copy: src=ftp.repo dest=/etc/yum.repos.d/
   - name:yum 
     yum:name=boost-program-options.x86_64 state=present
   - name: yum mariadb galera
     yum: name=MariaDB-server,MariaDB-client,galera state=present
   - name: serivce
     service: name=mariadb state=started
   - name: admin pass
     shell: mysqladmin -uroot password '000000'
   - name: grant
     shell: mysql -uroot -p000000 -e "grant all privileges on *.* to 'root'@'%' identified by '000000';"
   - name: stop
     shell: systemctl stop mariadb
   - name: sed
     shell: sed -i '/galera/a wsrep_on=ON \nwsrep_provider=/usr/lib64/galera/libgalera_smm.so \nwsrep_cluster_address=gcomm://192.168.238.11,192.168.238.12,192.168.238.13 \nbinlog_format=row \ndefault_storage_engine=InnoDB \ninnodb_autoinc_lock_mode=2 \nwsrep_slave_threads=1 \ninnodb_flush_log_at_trx_commit=0 ' /etc/my.cnf.d/server.cnf
- hosts: node1
  remote_user: root
  tasks:
   - name: galera
     shell: galera_new_cluster
   - name: mariadb
     service: name=mariadb state=started
- hosts: node2
  remote_user: root
  tasks:
   - name: mariadb
     service: name=mariadb state=started
- hosts: node3
  remote_user: root
  tasks:
   - name: mariadb
     service: name=mariadb state=started

执行playbook

[root@ansible example]#  ansible-playbook cscc_install.yaml

 

验证

 

 

标签:name,192.168,Ansible,集群,yum,master,mariadb,root
From: https://www.cnblogs.com/Chen-Yi-jia/p/17795716.html

相关文章

  • shell 脚本一键部署 k8s 高可用集群
    github地址:https://github.com/Johnny-Demo/deploy/tree/k8s-cluster有不理解的地方可以私信我......
  • Nacos2.0.3集群搭建踩坑
    Nacos2.0版本相比1.X新增了gRPC的通信方式,如果已经有Nacos集群,那么需要更改集群的配置方式,这里以Nginx为例,来介绍下如何搭建集群。配置流程新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。端口与主端口的偏移量描述98481000客户端gRPC请求服......
  • Docker部署Redis集群----第一节(docker初认识)
    1、Docker是什么?docker是开源的应用容器引擎,我们可以理解为一个轻量级的“虚拟机”,开发者可以打包自己开发的应用或程序到一个可移植的容器中去,然后发布到任何流行的linux机器上,由此可见docker为我们的开发和部署带来了极大的方便和稳定性,我们还有什么理由错误它呢?2、为什么要......
  • 怎么用Python写一个浏览器集群框架
    这是做什么用的框架用途在采集大量新闻网站时,不可避免的遇到动态加载的网站,这给配模版的人增加了很大难度。本来配静态网站只需要两个技能点:xpath和正则,如果是动态网站的还得抓包,遇到加密的还得js逆向。所以就需要用浏览器渲染这些动态网站,来减少了配模板的工作难度和技能要求......
  • K8s - 安装部署Kafka、Zookeeper集群教程(支持从K8s外部访问)
    本文演示如何在K8s集群下部署Kafka集群,并且搭建后除了可以K8s内部访问Kafka服务,也支持从K8s集群外部访问Kafka服务。服务的集群部署通常有两种方式:一种是 StatefulSet,另一种是 Service&Deployment。本次我们使用 StatefulSet 方式搭建 ZooKeeper 集群,使用 Service&Deployme......
  • Akka集群
    每个节点只会监控它后面的2个节点是否发生错误失败检测是通过节点间发送心跳消息并接收响应来完成的。Akka会根据心跳的历史记录以及当前的心跳信息计算出某个节点可用的可能性。Akka会依照这些数据和配置的容错限制得到计算结果,然后将节点标记为可用或不可用。......
  • Kafka 简介、集群架构、安装部署、基本命令
    一、kafka是什么?在实时计算中,Kafka主要是用来缓存数据,storm可以通过消费kafka中的数据进行实时计算。一套开源的分布式的消息队列系统,由scala写成,支持javaAPI。Kafka读消息采用topic进行归类。二、kafka中有哪两种角色?发送消息:Producer(生产者)接收消息:Consumer(消费者)三......
  • oracle rac集群
    操作系统:centos7.6oracle:19c两台RAC服务器配置hosts文件#cat/etc/hosts192.168.3.37rac1192.168.3.105rac2192.168.2.2racprv1192.168.2.3racprv2192.168.3.201racvip1192.168.3.202racvip2192.168.3.200scanip......
  • docker-搭建一主两备redis集群
    一目的docker-搭建一主两备redis集群概述:目前要搭建一个“一主两备”redis集群,这个三个容器中redis的端口号为默认的6379,对外暴露的端口为6701,6702,6703,其中6701为master。6702和6703为slave二实现1.准备三份配置文件 1.1配置文件可从网上下载,下载后,可按该贴作修改,http......
  • 如何在同一个机器里运行 Kubernetes Control Plane Master Node 和 Worker Node (Kuber
    文章目录小结问题解决参考小结在Kubernetes集群的环境中,同一个机器里如何同时运行KubernetesControlPlaneMasterNode和WorkerNode,这样同一个机器承担了两个角色,本文描述了将KubernetesControlPlaneMasterNode进行设置使其承担WorkerNode的功能。问题参考使用keepa......