GlusterFS集群自动编译安装配置脚本
2014-04-11 22:03
555 查看
工作需要搭建GlusterFS集群,简单写了一个自动化安装配置脚本,只需指出所有节点的ip地址列表以及需要配置的卷信息即可通过一台机器编译、安装、部署整个集群,远程操作通过sshpass完成。
脚本很简单,首先需要自己填写集群信息:
PKG_PATH是安装包路径
ROOT_PASS为各节点root密码(需要设置成一样的,后续需要ssh连接远程操作)
NODES指定了集群的节点IP地址列表(通过空格分隔)
vol_1指定一个需要创建的卷信息,包括卷名称(nova_vol),数据路径(/opt/nova_vol),bricks的IP地址列表(逗号分隔),可以填写多个卷信息,最后在VOLUMES中指定
读取集群信息之后,脚本会获取本机地址,解压缩源文件,生成本地安装脚本并分别拷贝到各节点的/tmp目录下并执行,在这里需要根据实际情况修改解压缩的目录名以及在本地安装脚本中指定glusterFS软件的文件名。
编译安装结束后,会attach peers,创建卷并启动,创建卷过程中的各项参数也请自行修改。
转载请注明来自http://blog.csdn.net/dysj4099
Good luck :)
#!/bin/bash # Author dysj4099@gmail.com ###############Initialization################ PKG_PATH=/opt/files/glusterfs-3.4.0.tar.gz ROOT_PASS=test # Gluster peers NODES=(192.168.64.87 192.168.64.88) # Gluster volumes vol_1=(nova_vol /opt/nova_vol 192.168.64.87,192.168.64.88) VOLUMES=(vol_1) ############################################# # Get MY_IP if [ "${MY_IP}" == "" ];then MY_IP=$(python -c "import socket;socket=socket.socket();socket.connect(('8.8.8.8',53));print socket.getsockname()[0];") fi # Step 1. Install sshpass apt-get install sshpass -y # Step 2. Compile and install glusterfs on each node. cd /tmp && tar xf ${PKG_PATH} cat > /tmp/tmp_install_gfs.sh << _wrtend_ #!/bin/bash apt-get -y --force-yes purge glusterfs-server glusterfs-common ps ax|grep gluster|grep -v grep|awk '{print $1}'|xargs -L 1 kill apt-get -y --force-yes install libssl-dev flex bison rm -rf /var/lib/glusterd || true if [ ! -x /usr/local/sbin/glusterd ];then cd /tmp/glusterfs-3.4.0 && ./configure && make && make install cd /tmp && rm -rf /tmp/glusterfs-3.4.0 ldconfig && update-rc.d -f glusterd defaults fi service glusterd restart sleep 5 rm -rf /tmp/glusterfs-3.4.0 rm /tmp/tmp_install_gfs.sh _wrtend_ for node in ${NODES[@]}; do if [ "${MY_IP}" != "$node" ];then echo $node install start sshpass -p ${ROOT_PASS} scp -o StrictHostKeyChecking=no -r /tmp/glusterfs-3.4.0 ${node}:/tmp/glusterfs-3.4.0 sshpass -p ${ROOT_PASS} scp -o StrictHostKeyChecking=no /tmp/tmp_install_gfs.sh ${node}:/tmp/ sshpass -p ${ROOT_PASS} ssh -o StrictHostKeyChecking=no root@${node} /bin/bash /tmp/tmp_install_gfs.sh echo $node install end fi done /bin/bash tmp_install_gfs.sh # Step 3. Attach peer for node in ${NODES[@]}; do if [ "${MY_IP}" != "$node" ];then /usr/local/sbin/gluster peer probe ${node} fi done sleep 15 # Step 4. Verify attach status and create volumes conn_peer_num=`/usr/local/sbin/gluster peer status | grep Connected | wc -l` conn_peer_num=`expr $conn_peer_num + 1` if [ ${conn_peer_num} -eq ${#NODES[@]} ];then echo "All peers have been attached." for vol in ${VOLUMES[@]};do eval vol_info=(\${$vol[@]}) eval vol_nodes=(${vol_info[2]//,/ }) vol_path="" for node in ${vol_nodes[@]};do vol_path=$vol_path$node:${vol_info[1]}" " done # create volume /usr/local/sbin/gluster volume create ${vol_info[0]} replica 2 ${vol_path} # start volume /usr/local/sbin/gluster volume start ${vol_info[0]} done else echo "Attach peers error" exit 0 fi
脚本很简单,首先需要自己填写集群信息:
###############Initialization################ PKG_PATH=/opt/files/glusterfs-3.4.0.tar.gz ROOT_PASS=test # Gluster peers NODES=(192.168.64.87 192.168.64.88) # Gluster volumes vol_1=(nova_vol /opt/nova_vol 192.168.64.87,192.168.64.88) VOLUMES=(vol_1) #############################################
PKG_PATH是安装包路径
ROOT_PASS为各节点root密码(需要设置成一样的,后续需要ssh连接远程操作)
NODES指定了集群的节点IP地址列表(通过空格分隔)
vol_1指定一个需要创建的卷信息,包括卷名称(nova_vol),数据路径(/opt/nova_vol),bricks的IP地址列表(逗号分隔),可以填写多个卷信息,最后在VOLUMES中指定
读取集群信息之后,脚本会获取本机地址,解压缩源文件,生成本地安装脚本并分别拷贝到各节点的/tmp目录下并执行,在这里需要根据实际情况修改解压缩的目录名以及在本地安装脚本中指定glusterFS软件的文件名。
编译安装结束后,会attach peers,创建卷并启动,创建卷过程中的各项参数也请自行修改。
转载请注明来自http://blog.csdn.net/dysj4099
Good luck :)
相关文章推荐
- CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动
- nginx编译安装之后如何配置服务脚本
- CentOS和Ubuntu下安装配置Greenplum数据库集群(包括安装包和源码编译安装)
- CentOS和Ubuntu下安装配置Greenplum数据库集群(包括安装包和源码编译安装)
- hadoop集群安装与配置--hadoop自动化安装脚本
- shell脚本专题之-----------全自动编译安装mysql
- 脚本自动配置hadoop集群的ssh无密码登录
- RPM包安装mysql,采用shell脚本实现自动安装、配置与卸载
- 【转】linux 编译安装nginx,配置自启动脚本
- Linux(centos) 编译安装 Mysql 后配置开机自动启动
- shell脚本实现DNS的自动安装与配置
- windows中自动安装jdk环境变量配置的bat脚本
- 使用脚本自动配置matlab安装libsvm和随机森林工具箱
- Kubernetes集群安装、配置glusterfs文件系统
- emacs之配置自动安装脚本
- flink集群一键安装脚本 -- java运行环境配置
- 如何在linux平台上安装redis3.0集群版(附自动安装脚本)
- Ubuntu自动编译和安装Python的shell脚本
- shell脚本自动 进行配置免密登录,安装java环境,安装tomcat
- Centos系统配置国内163网易yum源shell自动安装脚本