idc_server_init_datanode

分享一个用fabric远程扩容datanode的另一种方式,主要体现在利用Put方法能够远程上传文件到目标机器并且可以指定目标机密码,不需要先前拷贝好秘钥:代码如下idc_server_init_datanode.py
脚本运行方式:
fab -f idc_server_init_datanode.py do_work:datanode_ip=192.168.110.4,hostname=hd1 -p password

from fabric.api import run, local, env, roles,put
import os
import sys
import getopt

env.user=”root”
salt_master_hostname = “gdataidcmonitor”
salt_master_ip = “192.210.3.241”
install_package_hostname = “gdataidcmonitor”
install_package_ip = “192.210.3.241”

def master():
print “+++ idc server init start +++”
put(‘/data/file_dispatch*’,’/root/’,use_sudo=True)
def datanode(local_ip, hostname):
print “start modify dns info”
run(‘echo #DNS for GCS START > /etc/resolv.conf’)
run(‘echo nameserver 192.242.1.212 >> /etc/resolv.conf’)
run(‘echo nameserver 192.107.24.201 >> /etc/resolv.conf’)
run(‘echo options timeout:1 >> /etc/resolv.conf’)
run(‘echo #DNS for GCS END >> /etc/resolv.conf’)

print "modify /etc/sysconfig/network file..."
run('echo NETWORKING = yes > /etc/sysconfig/network')
run('echo HOSTNAME = %s >> /etc/sysconfig/network' % hostname)

print "modify /etc/hostname file..."
run("echo %s > /etc/hostname"%hostname)

print "modify /etc/hosts file..."
run('echo 127.0.0.1 localhost > /etc/hosts')
run('echo 192.240.99.238    tlinux-mirrorlist.tencent-cloud.com tlinux-mirror.tencent-cloud.com >> /etc/hosts')
run('echo 192.168.134.78    tlinux-mirrorlist.tencent-cloud.com tlinux-mirror.tencent-cloud.com >> /etc/hosts')
run('echo 192.12.216.232    tlinux-mirrorlist.tencent-cloud.com tlinux-mirror.tencent-cloud.com >> /etc/hosts')
run('echo 192.236.51.188 gdataidchadoop1 >> /etc/hosts')
run('echo 192.236.48.217 gdataidchadoop2 >> /etc/hosts')
run('echo 192.205.191.241 gdataidczookeeper1 >> /etc/hosts')
run('echo 192.205.191.242 gdataidczookeeper2 >> /etc/hosts')
run('echo 192.205.191.243 gdataidczookeeper3 >> /etc/hosts')
run('echo %s %s >> /etc/hosts'%(salt_master_ip,salt_master_hostname))
run('echo %s %s >> /etc/hosts'%(install_package_ip,install_package_hostname))
run('echo %s %s >> /etc/hosts'%(local_ip,hostname))

print "modify hostname..."
run('hostname %s'%hostname)

print "rm /data dir"
run('rm -rf /data ')

print "make data ln to data1"
run('mkdir -p /data1/data')
run('ln -s /data1/data /data')

print "add gdata user"
run('useradd -d /data/gdata -g users -m gdata')
run('echo "Gdata#2015" | passwd --stdin gdata ')
run('mkdir /data/gdata/.ssh')
run('/bin/cp -f /root/file_dispatch/gdata/sshkey/authorized_keys /data/gdata/.ssh/')
run('chown -R gdata:users /data/gdata/.ssh')
run('cp /root/file_dispatch/gdata/yum/RPM-GPG-KEY-EPEL-6 /etc/pki/rpm-gpg/')
run('cp /root/file_dispatch/gdata/yum/epel.repo /etc/yum.repos.d/')

print "start yum install deps"
run('yum install -y nagios-plugins nagios-plugins-nrpe nrpe nagios-plugins-all ganglia-gmond lrzsz salt-minion')

print "start install software"
print "start gmond"
run('mv /etc/ganglia/gmond.conf /etc/ganglia/gmond.conf.bak')
run('cp /root/file_dispatch/gdata/ganglia/gmond.conf /etc/ganglia/gmond.conf')
run('sed -i "s/HOSTNAME/${hostname}/g" /etc/ganglia/gmond.conf')
run('service gmond start')
run('chkconfig gmond on')

print "start salt client"
run("sed -i 's/#master: salt/master: gdataidcmonitor/g' /etc/salt/minion")
run('service salt-minion start')
run('chkconfig salt-minion on')

print "start install java"
run('tar zxvf /root/file_dispatch/install_packages/jdk-8u131-linux-x64.tar.gz -C /usr/local/')
run('echo export JAVA_HOME=/usr/local/jdk1.8.0_60>>/etc/profile')
run('echo export JAVA_BIN=/usr/local/jdk1.8.0_60/bin>>/etc/profile')
run('echo export JRE_HOME=/usr/local/jdk1.8.0_60/jre>>/etc/profile')
run('echo export CLASSPATH=.:/usr/local/jdk1.8.0_60/jre/lib/rt.jar:/usr/local/jdk1.8.0_60/lib/dt.jar:/usr/local/jdk1.8.0_60/lib/tools.jar>>/etc/profile')
run('echo export PATH=$PATH:/usr/local/jdk1.8.0_60/bin>>/etc/profile')

print "start copy nagios cfg"
run('cp /root/file_dispatch/gdata/nagios/plugins/* /usr/lib64/nagios/plugins/')
run('chmod +x /usr/lib64/nagios/plugins/*')
run('cp /root/file_dispatch/gdata/nagios/cfg/nrpe.cfg /etc/nagios/')
run('/usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d|su - gdata')

print "start install hadoop"
run('tar zxvf /root/file_dispatch/install_packages/hadoop-2.7.1.tar.gz -C /data/gdata/')
run('cp /root/file_dispatch/gdata/hadoop/etc/hadoop/* /data/gdata/hadoop-2.7.1/etc/hadoop/')
run('mkdir -p /data/gdata/hadoop-2.7.1/hdfs/data')
run('mkdir -p /data/gdata/hadoop-2.7.1/hdfs/name')
run('mkdir -p /data/gdata/hadoop-2.7.1/pids')
run('chown gdata:users -R /data/gdata/hadoop-2.7.1')
run('ln -s /data/gdata/hadoop-2.7.1 /usr/local/hadoop')
run('echo export HADOOP_HOME=/usr/local/hadoop >> /etc/profile')
run('echo export HADOOP_MAPRED_HOME=/usr/local/hadoop >> /etc/profile')
run('echo export HADOOP_COMMON_HOME=/usr/local/hadoop >> /etc/profile')
run('echo export HADOOP_HDFS_HOME=/usr/local/hadoop >> /etc/profile')
run('echo export YARN_HOME=/usr/local/hadoop >> /etc/profile')
run('echo export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop >> /etc/profile')
run('echo export YARN_CONF_DIR=/usr/local/hadoop/etc/hadoop >> /etc/profile')
run('echo export HADOOP_USER_CLASSPATH_FIRST=true >> /etc/profile')
run('echo export HIVE_HOME=/usr/local/hive >> /etc/profile')
run('echo export ANT_LIB=/usr/share/java/ant >> /etc/profile')
run('echo export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hive/bin >> /etc/profile')

print "modify sshd config"
run("sed -i 's/PasswordAuthentication  no/PasswordAuthentication yes/g' /etc/ssh/sshd_config")
run("sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config")
run("service sshd restart")
print "init finish..."

def do_work(datanode_ip,hostname):
master()
datanode(datanode_ip, hostname)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
08-10
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值