Loading... ## 前言 **环境准备** - OS: CentOS 7 x86_64 - Node1 IP: 192.168.153.140 #集群之间传递心跳信息的IP地址 - Node2 IP: 192.168.153.141 #集群之间传递心跳信息的IP地址 - VIP: 192.168.153.120 # web服务访问IP地址 - Host: hosts文件要定义两个节点的主机名和IP ``` hosts: node1 192.168.153.140 node2 192.168.153.141 # 两个节点都要有其他节点的host信息,主机名(hostname)也要一致 ``` **安装pcsd和crmsh** *1.安装pcsd* ~]# ansible web_cluster -m yum -a 'name=pcsd' ~]# ansible web_cluster -m service -a 'name=pcsd state=started enabled=yes' <div class="tip inlineBlock warning"> 安装pcsd时会自动安装`pacemaker`,和其他集群核心程序 </div> *2.安装crmsh* <div class="preview"> <div class="post-inser post box-shadow-wrap-normal"> <a href="https://blog.beijixs.cn/archives/506/" target="_blank" class="post_inser_a no-external-link no-underline-link"> <div class="inner-image bg" style="background-image: url(https://blog.beijixs.cn/usr/themes/handsome/assets/img/sj/2.jpg);background-size: cover;"></div> <div class="inner-content" > <p class="inser-title">CentOS 7安装crmsh,留个笔记</p> <div class="inster-summary text-muted"> CentOS7自带源中不含有crmsh软件包。添加源~]# wget http://download.opens... </div> </div> </a> <!-- .inner-content #####--> </div> <!-- .post-inser ####--> </div> <div class="tip inlineBlock warning"> 补充:`pcs`和`crmsh`是集群的全生命周期管理工具;<br>pcs:agent (pcsd)依赖代理服务;<br>crmsh: agentless (pssh)无代理,依赖pssh。 </div> ## 配置节点 ### 一:新建用户 ~]# ansible web_cluster -m group -a 'name=hacluster system=yes gid=189' # 要使用没有被占用的GID ~]# ansible web_cluster -m user -a 'name=hacluster system=yes uid=189 group=hacluster' #uid和gid要保证相同,不然后续操作很有可能报错! ~]# ansibel web_cluster -m shell -a 'echo "123456"|passwd --stdin hacluster' # 设置密码 ### 二:节点认证 ~]# pcs cluster auth node1 node2 -u hacluster # -u 指定认证的用户名,根据提示输入用户的密码 ### 三:设置集群 ~]# pcs cluster setup --name web_cluster node1 node2 **补充** > pcs cluster setup --name 集群名称 节点一 节点二 ... > --name NAME 集群名称 > --transport <udpu|udp> 指明传输协议 > --mcast0指明多播地址 <!--如果出现语法不解析,是由于上面的引用导致的!--> **启动集群** ~]# pcs cluster start --all # --all表示启动所有集群,指定name可以只启动某集群 ## 资源配置 ### 一:安装httpd ~]# ansible web_cluster -m yum -a 'name=httpd' #这里用到了ansible管理集群,安装httpd ~]# ansible web_cluster -m service -a 'name=firewalld state=stopped enabled=no' #关闭防火墙 ### 二:提供不同的首页 !> 以示区别当前服务在那个节点 **Node1** ~]# echo "<center><h1>This is Node1!</h1></center>" > /var/www/html/index.html **Node2** ~]# echo "<center><h1>This is Node1!</h1></center>" > /var/www/html/index.html ### 三:添加资源 **补充** 查看支持那些资源 ~]# crm #进入crm交互式命令行界面 crm(live)# cd ra # 进入资源子命令 crm(live)# classes #显示全部资源类别 lsb ocf / .isolation heartbeat openstack pacemaker service systemd crm(live)# list systemd #查看该类别下的所有资源 进入配置文件子命令: ~]# crm configure crm(live)configure# property stonith-enabled=false # 设置stonith为flase,因为此时没有隔离设备 crm(live)configure# primitive webip ocf:heartbeat:IPaddr params ip=192.168.153.120 # primitive 资源名称 资源代理 params 参数,这里是配置的是VIP资源 crm(live)configure# primitve webserver systemd:httpd # systemd 不需要参数,指定那个服务就可以了 # 由于VIP要和Httpd在一个节点才有效,于是需要把他们定义为组 crm(live)configure# group WebService webip webserver # group 组名 资源一 资源二 ... (注意资源的顺序,可能是资源启动的顺序) crm(live)configure# verify # 检查之前的操作是否正确,无提示即为正确 crm(live)configure# commit # 提交配置 ------------ 到此一个双节点的高可用配置完成 最后修改:2019 年 11 月 26 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果觉得我的文章对你有用,请随意赞赏