前言
最近做一个集成项目需要部署多台裸机服务器,考虑到服务器众多采用PXE的方式给服务器安装系统是最便捷的同时考虑到网络速度的因素,建立一个ubuntu私有源镜像服务器安装软件包无疑会更快更便捷。
本文将分两部分讲解环境搭建:1)MAAS环境搭建,2)ubuntu私有源环境搭建。首先是MAAS环境的搭建。
1 MAAS环境搭建
1.1 MAAS介绍
MAAS[1]是ubuntu社区开发的开源裸机部署工具,能够从云端下载镜像引导本地主机从PXE启动并安装指定的系统,搭配诸如IPAM等同时兼具裸机状态管理功能。
1.2 MAAS安装
1 | root@ubuntu:~# apt install maas -y |
1.3 创建MAAS用户
1 | root@ubuntu:~# maas createadmin --username=admin --email=MYEMAIL@EXAMPLE.COM |
随后登录MAAS web页面 http://<your.maas.ip>/MAAS/
,然后配置相关参数
- Region name (MAAS name)
- Ubuntu archive, Ubuntu extra architectures
- Ubuntu images
- SSH keys (for currently logged in user)
1.4 系统Images设置
在Images
界面设置需要安装的系统版本,本次部署需要是64位的ubuntu 16.04,配置完成后MAAS会自动同步镜像
在setting
界面配置系统PXE启动时装载的最小镜像供MAAS进行服务器的硬件信息等解析
1.4 DHCP配置
点击Subnets
选择一个网络点击VLAN
选择右上的take action
选项框,选择Provid DHCP
,然后配置dhcp范围
【Note】
1)检查需要安装系统的服务器PXE启动,配置服务器启动项中PXE为首选;
2)配置服务器的IPMI,便于MAAS完全接管服务器,包括服务器的启动、关机、重启等。
启动待装系统的服务器,可以看到MAAS检测到服务器上线
1.5 MAAS本地源
在使用过程中有时会在离线环境下安装系统,这时需要做镜像的离线下载,根据官方Local Image Mirror配置离线镜像,过程也很简单
1)首先安装工具
1 | sudo apt install -y simplestreams |
2)随后配置变量以及默认镜像存储路径
1 | KEYRING_FILE=/usr/share/keyrings/ubuntu-cloudimage-keyring.gpg |
3)然后选择需要缓存的镜像类型
如选择ubuntu 14(trusty)或者ubuntu 16(xenial)的镜像以及bootloaders
1 | sudo sstream-mirror --keyring=$KEYRING_FILE $IMAGE_SRC $IMAGE_DIR \ |
4)局域网镜像下载配置
需要安装apache2服务器
1 | root@ubuntu:~# apt-get install apache2 |
查看apache的配置文件/etc/apache2/sites-available/000-default.conf
是否使能了目录/var/www/html/
1 | DocumentRoot /var/www/html |
打开浏览器http://<Mirros IP>/maas/images/ephemeral-v3/daily/
即可查看下载的镜像缓存
5)MAAS中配置local mirror
可以直接在MAAS界面设置本地源
或者通过命令行的方式设置本地源
1 | maas admin boot-sources create url=$URL keyring_filename=$KEYRING_FILE |
其中:
- URL=https://$MIRROR/maas/images/ephemeral-v3/daily/
- KEYRING_FILE=/usr/share/keyrings/ubuntu-cloudimage-keyring.gpg
更多MAAS配置及设置参见官网用户手册
2 ubuntu私有源环境搭建
私有源环境搭建主要是应对公司网络限制,如访问过慢或限制网络连接的情况,也可以应对需要大量现场装机部署等情况加快部署进度。
2.1 安装apt-mirror工具
1 | root@ubuntu:~# apt-get install -y apt-mirror |
2.2 配置apt-mirror
本次安装的ubuntu为16.04,设置ubuntu源为清华源(可以根据网速设置自己常用或访问较快的源),由于只需要64位的安装软件,这里设置近下载64位的,同时也可以根据自己的需求修改源下载路径位置等参数。
1 | root@ubuntu:~# cat /etc/apt/mirror.list |
随后运行apt-mirror下载源
1 | root@ubuntu:~# apt-mirror |
随后等待文件下载完成,等待时间视网络状况,本次源仓库共有113.3 GiB。(ps:在更新了三个小时多后终于更新完成了)
【Note】
1)当某些软件包在服务器端进行了升级,或者服务器端不再需要这些软件包时,我们使用了 apt-mirror
与服务器同步后,会在本地的$var_path/
下生成一个clean.sh
的脚本,列出了遗留在本地的旧版本和无用的软件包,可以手动运行这个脚本来删除遗留在本地的且不需要用的软件包clean http://mirrors.tuna.tsinghua.edu.cn/ubuntu
2)如果用amd64位架构下的包,可以加上deb-amd64的标记如果什么都不加,直接使用deb http…..这种格式,则在同步时,只同步当前系统所使用的架构下的软件包。比如一个64位系统,直接deb http….只同步64位的软件 包。如果还嫌麻烦,直接去改set defaultarch <running hostarchitecture>
这个参数就好,比如改成set defaultarch i386,这样你使用deb http…..这种格式,则在同步时,只同步i386的软件包了。
如果你还想要源码,可以把源码也加到mirror.list里面同步过来,比如加上deb-src这样的标记。想要其他的东西也可以追加相应的标记来完成。
3)同步完成后,我们可以利用clean.sh
清理无用软件包:
1 | root@ubuntu:~# /var/spool/apt-mirror/var/clean.sh |
2.3 设为本机源配置
配置本机源文件
1 | root@ubuntu:~# cat /etc/apt/sources.list |
2.4 局域网源配置
2.4.1 安装apache服务器
1 | root@ubuntu:~# apt-get install apache2 |
将镜像目录链接到apache2的根目录(/var/www/html/)下
1 | root@ubuntu:~# sudo ln -s /var/spool/apt-mirror/mirror/mirrors.tuna.tsinghua.edu.cn/ubuntu /var/www/html/ubuntu |
打开浏览器http://<HOST IP>/ubuntu
即可查看
2.4.2 修改局域网ubuntu源
修改局域网内主机的ubuntu源,同时指定源为64位
1 | root@ubuntu:~# cat /etc/apt/sources.list |
【参考链接】
1)MAAS安装指导
3)私有源配置