ansible快速部署cassandra3集群

简介: 借助ansible快速部署cassandra3集群,省事儿方便

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):[https: //github.com/zq2599/blog_demos]

关于cassandra3集群部署

  • 通常情况下的cassandra3集群部署操作如下:
  • 安装JDK;
  • 设置JDK环境变量;
  • 创建运行cassandra服务的群组和账号;
  • 安装cassandra;
  • 设置cassandra环境变量;
  • 设置cassandra参数;
  • 设置cassandra日志目录和文件目录;
  • 上述操作要在每台机器执行,手动操作较为费时,因此用ansible来完成上述所有步骤,除了省事儿,还减少了操作失误的概览;

关于ansible部署

  • ansible是常用的运维工具,可以大幅度简化整个部署过程;
  • 接下来使用ansible完成部署工作,如果您想了解ansible,请参考《ansible2.4安装和体验》
  • 部署操作如下图所示,在一台安装了ansible的电脑上运行脚本,由ansible远程连接到三台CentOS7.7的服务器上,完成部署工作:

在这里插入图片描述

软件版本

  • 本次实战的软件版本信息如下:
  • ansible电脑操作系统:CentOS Linux release 7.7.1908
  • cassandra服务器操作系统:CentOS Linux release 7.7.1908
  • cassandra版本:3.11.6
  • jdk:1.8.0_191
  • 材料准备

  • ansible远程操作最重要的是提前把材料准备好,本次实战一共需要如下7文件(稍后有下载地址):
  • ansible.cfg:ansible配置文件;
  • hosts:保存了三台cassansra服务器信息;
  • cluster-3-nodes.yml:ansible脚本,即playbook文件,里面是整个安装部署的逻辑;
  • vars-cluster-3-nodes.yml:ansible脚本用到的变量配置信息,例如JDK文件名,cassandra文件名等;
  • cassandra.yaml:cassandra配置文件,我从安装包里取出来做了些修改(几个和目录有关的配置,被我从注释状态改成了生效状态)
  • apache-cassandra-3.11.6-bin.tar.gz:cassandra官方安装包;
  • jdk-8u191-linux-x64.tar.gz:jdk8的官方安装包;

所有材料的下载地址

  • 从1到5的内容可以在我的GitHub下载,仓库地址:https://github.com/zq2599/blog_demos ,在仓库的playbooks/cassandra3目录下,有个名为cluster-3-nodes文件夹,如下图红框所示,这里面有那五个文件:

在这里插入图片描述

  • apache-cassandra-3.11.6-bin.tar.gz:在官方下载:http: //ftp.kddilabs.jp/infosystems/apache/cassandra/3.11.6/apache-cassandra-3.11.6-bin.tar.gz
  • jdk-8u191-linux-x64.tar.gz:Oracle官网可下,也可以在csdn下载(不用积分),地址:https://download.csdn.net/download/boling_cavalry/12098987

文件摆放位置

  • 登录ansible电脑,在家目录创建名为palybooks的目录,命令是:mkdir ~/playbooks
  • 上面的七个文件中,1到4放入playbooks目录;
  • playbooks目录下新建名为files的目录,将5到7放进去;
  • 最终七个文件的摆放位置如下图:

在这里插入图片描述

修改配置

  • cassandra服务器的IP地址、账号、密码等需要修改成您自己那边的信息,请修改hosts文件中的相关内容,如下图:

在这里插入图片描述

  • cassandra集群的seed配置是其中两台机器的IP地址,这个信息在vars-cluster-3-nodes.yml,请您改成自己机器的IP地址,如下图黄框所示:

在这里插入图片描述

  • 如果您的集群名称、jdk版本、cassandra版本和我这里不同,都可以在vars-cluster-3-nodes.yml中修改;
  • 第一次ssh连接到cassandra机器时会有提示要求输入"Yes",为了避免这种情况出现在ansible连接cassandra机器的时候,建议先手动连接一次,这样后面就不再出现提示了,如下图:

在这里插入图片描述

  • 准备完毕,可以开始部署了;

部署

  • 在playbooks目录下执行ansible-playbook cluster-3-nodes.yml
  • 等待大约5分钟左右,如果控制台没有报错,整个安装过程完成;
  • 如果有报错,请按照错误提示做好处理再重复执行ansible-playbook cluster-3-nodes.yml,该命令可以反复多次执行;

启动

  • 部署的时候会创建名为cassandra的群组,以及名为cassandra的账号;
  • 以cassandra账号分别SSH登录三台cassandra机器,密码是888888
  • 登录cassandra机器后,在任意位置执行命令cassandra,即可启动cassandra服务;
  • 等待大约几分钟,服务初始化、构建集群成功:

在这里插入图片描述

  • 在三台机器的任意目录下执行命令nodetool status,查看集群情况:

ansible快速部署cassandra3集群

验证

  • 在任意一台cassandra机器上,cqlsh进入交互模式后,执行以下操作:

在这里插入图片描述

  • 创建一个springboot应用,访问上面新建的student表,如下图红框所示,应用启动时连接cassandra成功:

在这里插入图片描述

  • springboot应用中有个根据名称查找记录的web接口,如下图,可以查到数据库中的记录:

在这里插入图片描述

  • 上面的springboot应用源码已上传到GitHub,仓库地址:https: //github.com/zq2599/blog_demos ,在仓库的cassandrahelloworld目录下,如下图红框所示:

在这里插入图片描述

  • 至此,cassandra集群从部署到验证已经操作完成,希望能给您一些参考;

欢迎关注阿里云开发者社区博客:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...
相关文章
ansible的环境部署及简单使用
ansible的环境部署及简单使用
200 0
|
5月前
|
存储 数据安全/隐私保护 Docker
Kolla-ansible部署openStack
Kolla-ansible部署openStack
474 11
|
4月前
|
运维 安全 测试技术
自动化运维的利剑:Ansible在企业级部署中的应用与挑战
本文深入探讨了Ansible,这一领先的IT自动化工具,如何在企业级部署中扮演关键角色。我们将通过实际案例分析,揭示Ansible在简化配置管理、加速应用部署和提高运维效率方面的优势。同时,文章也将不回避Ansible实施过程中可能遇到的技术挑战与限制,并提供针对性的解决策略。阅读本文后,您将获得一个全面的视角,理解Ansible在现代企业运维中不可或缺的地位,以及如何克服其面临的主要问题。
87 1
管理工具ansible的部署
管理工具ansible的部署
101 0
管理工具ansible的部署
|
运维 负载均衡 关系型数据库
【运维知识进阶篇】用Ansible Roles重构LNMP架构(Linux+Nginx+Mariadb+PHP),实现4个项目一键部署
【运维知识进阶篇】用Ansible Roles重构LNMP架构(Linux+Nginx+Mariadb+PHP),实现4个项目一键部署
182 0
|
弹性计算 关系型数据库 数据库
通过计算巢轻松部署 Ansible Semaphore
AnsibleSemaphore是一个现代化的Ansible用户界面,通过计算巢可轻松部署。
通过计算巢轻松部署 Ansible Semaphore
|
Linux 网络安全 调度
使用docker部署awx-1.7.1.0(ansible图形化界面)
使用docker部署awx-1.7.1.0(ansible图形化界面)
1177 0
|
Unix 应用服务中间件 Linux
ansible在web集群中批量部署nfs
ansible在web集群中批量部署nfs
201 0
|
监控 网络安全 开发工具
Ansible批量部署zabbix-agent(含zabbix-agent的yum源,zabbix自动发现和添加的界面操作)
Ansible批量部署zabbix-agent(含zabbix-agent的yum源,zabbix自动发现和添加的界面操作)
278 0
|
Kubernetes 负载均衡 Docker
ansible学习之旅(ansible依托kubeadm安装一个简单的k8s集群)
ansible学习之旅(ansible依托kubeadm安装一个简单的k8s集群)
166 0