共计 2735 个字符,预计需要花费 7 分钟才能阅读完成。
在集群中,若干服务器,全部手动安装,当量很大的时候,这是不大现实的。
(没有外网下)指导思想
思想一、每一台机器都配一个本地文件系统上的 yum 仓库 file:///packege/path/。(少量服务器可采取)
思想二、在局域网内部配置一台节点 (server-base) 的本地文件系统 yum 仓库,然后将其发布到 web 服务器中,其他节点就可以通过 http://server-base/pagekege/path/ 下载到本机。
本地 yum 仓库的建立
制作流程:先挑选一台机器 mini4,挂载一个系统光盘到本地目录 /mnt/cdrom,然后启动一个 httpd 服务器,将 /mnt/cdrom 软连接到 httpd 服务器的 /var/www/html 目录中 (cd /var/www/html; ln -s /mnt/cdrom ./CentOS)
然后通过网页访问测试一下:http://mini4/centos 会看到光盘的目录内容。至此:网络版 yum 私有仓库已经建立完毕。剩下就是去各台 yum 的客户端配置这个 http 地址到 repo 配置文件中。
命令如下:
mkdir /mnt/cdrom # 创建挂在的目录
mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom # 把安装的镜像文件挂载到自定义的 /mnt/cdrom 中
注意,如果是这样手动挂载的话,每次重启之后多需要这样挂载一次(查看 /dev/cdrom 光盘下是否有内容,VM 虚拟机下,单击这个虚拟机右键查看 setting,看镜像选择是否和 connect 是否勾选),这样肯定不是需要的,可以让 Linux 系统自动挂载:在 /etc/fstab 中加入一行挂载配置,即可自动挂载:
vi /etc/fstab
之后再最后增加一行:
/dev/cdrom /mnt/cdrom iso9660 defaults 0 0
接着上面的 yum 本地仓库的创建:
cd /etc/yum.repos.d/ | |
rename .repo .repo.bak * # 把所有的默认的库都变成备份 | |
cp CentOS-Media.repo.bak CentOS-mini03.repo # 创建新的 yum 库 | |
vi CentOS-mini03.repo |
配置如下:
[mini03] | |
name=CentOS-mini03 | |
baseurl=file:///mnt/cdrom #挂载的地址 | |
gpgcheck=1 | |
enabled=1 #很重要,1才启用 | |
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 |
yum 常用命令:
安装 httpd 并确认安装 | |
yum instll -y httpd | |
列出所有可用的 package 和package组 | |
yum list | |
清除所有缓冲数据 | |
yum clean all | |
列出一个包所有依赖的包 | |
yum deplist httpd | |
删除 httpd | |
yum remove httpd |
如上配置好 CentOS-mini03.repo 后,执行如下命令:
yum clean all # 清除所有 yum 库 | |
yum repolist # 重新加载 yum 库 |
上面挂载的是系统的镜像,这个镜像中有好多安装文件,由于我们安装的是 minimal 的,所以大部分软件都是需要手动安装的,这里面就有 httpd 静态的 web 服务器,可以提供下载,下面来安装 httpd:
yum install -y httpd | |
service httpd start |
使用浏览器访问 http://mini03(如果访问不通,检查防火墙是否开启了 80 端口或关闭防火墙)
由此可以看到我们的 yum 本地仓库安装成功了,httpd 服务也启动了。
下面接着上面的挂载接着操作:
由于 httpd 的静态文件在 /var/www/html 这个目录下才能被外部服务器访问,所有我们需要着这个目录下有个指向挂载路径的软连接:
cd /var/www/html | |
ln -s /mnt/cdrom ./centos |
由此,你就可以看到如下所示:
到这里就表示,我么你的 yum 本地库,httpd,安装镜像文件的挂载到此就完成了。
JDK 的安装
参照上面 mini03 的本地库安装,可以把 mini02,mini04,mini05,mini06 的本地库都修改下(这个地方是 http://mini03/centose 而不是本地的 file:///mnt/cdrom),修改完成之后,我们就开始写脚本安装集群安装了, 其中需要注意的是,每台机器上都必须有 scp 安装,如果没有需要安装 scp: yum install -y openssh-clients
如图在 mini03 下穿件两个脚本,并增加 x(执行)的权限
boot.sh 的脚本如下:(ssh 公钥和私钥的生成:ssh-keygen
)
install_jdk.sh 脚本如下:
文本如下:
boot.sh
SERVERS="mini02 mini03 mini04 mini05 mini06" | |
PASSWORD=123456 | |
BASE_SERVER=mini03 | |
auto_ssh_copy_id(){expect -c "set timeout -1; | |
spawn ssh-copy-id $1; | |
expect{*(yes/no)* {send -- yes\r;exp_continue;} | |
*assword:* {send -- $2\r;exp_continue;} | |
eof {exit:0;} | |
}"; | |
} | |
ssh_copy_id_to_all(){for SERVER in $SERVERS | |
do | |
auto_ssh_copy_id $SERVER $PASSWORD | |
done | |
} | |
ssh_copy_id_to_all | |
for SERVER in $SERVERS | |
do | |
scp install_jdk.sh root@$SERVER:/root | |
ssh root@$SERVER /root/install_jdk.sh | |
done |
install_jdk.sh
BASE_SERVER=mini03 | |
yum install -y wget | |
wget $BASE_SERVER/soft/jdk-7u45-linux-x64.tar.gz | |
tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local | |
cat >> /etc/profile << EOF | |
export JAVA_HOME=/usr/local/jdk1.7.0_45 | |
export PATH=\$PATH:\$JAVA_HOME/bin | |
EOF | |
source /etc/profile |
最后在 mini03 的~ 目录下执行./boot.sh 安装即可,最后可以在每台机器上用 java -version 来查看
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/138480.htm
