MAAS+ubuntu私有源环境搭建

前言

最近做一个集成项目需要部署多台裸机服务器,考虑到服务器众多采用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)

MAAS界面

1.4 系统Images设置

Images界面设置需要安装的系统版本,本次部署需要是64位的ubuntu 16.04,配置完成后MAAS会自动同步镜像

MAAS Inages设置

setting界面配置系统PXE启动时装载的最小镜像供MAAS进行服务器的硬件信息等解析

MAAS 最小镜像配置

1.4 DHCP配置

点击Subnets选择一个网络点击VLAN选择右上的take action选项框,选择Provid DHCP,然后配置dhcp范围

MAAS DHCP配置

【Note】

1)检查需要安装系统的服务器PXE启动,配置服务器启动项中PXE为首选;

2)配置服务器的IPMI,便于MAAS完全接管服务器,包括服务器的启动、关机、重启等。

启动待装系统的服务器,可以看到MAAS检测到服务器上线

MAAS硬件检测

1.5 MAAS本地源

在使用过程中有时会在离线环境下安装系统,这时需要做镜像的离线下载,根据官方Local Image Mirror配置离线镜像,过程也很简单

1)首先安装工具

1
sudo apt install -y simplestreams

2)随后配置变量以及默认镜像存储路径

1
2
3
KEYRING_FILE=/usr/share/keyrings/ubuntu-cloudimage-keyring.gpg
IMAGE_SRC=https://images.maas.io/ephemeral-v3/daily/
IMAGE_DIR=/var/www/html/maas/images/ephemeral-v3/daily # 镜像在本地的存储路径

3)然后选择需要缓存的镜像类型

如选择ubuntu 14(trusty)或者ubuntu 16(xenial)的镜像以及bootloaders

1
2
3
4
sudo sstream-mirror --keyring=$KEYRING_FILE $IMAGE_SRC $IMAGE_DIR \
'arch=amd64' 'release~(trusty|xenial)' --max=1 --progress
sudo sstream-mirror --keyring=$KEYRING_FILE $IMAGE_SRC $IMAGE_DIR \
'os~(grub*|pxelinux)' --max=1 --progress

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界面设置本地源

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
root@ubuntu:~# cat /etc/apt/mirror.list 
############# config ##################
#
# set base_path /var/spool/apt-mirror
#
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch <running host architecture>
set defaultarch amd64
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads 20
set _tilde 0
#
############# end config ##############
# louie add qinghua source 20180326
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

clean http://mirrors.tuna.tsinghua.edu.cn/ubuntu

随后运行apt-mirror下载源

1
2
3
4
5
6
7
8
root@ubuntu:~# apt-mirror 
Downloading 152 index files using 20 threads...
Begin time: Mon Mar 26 10:38:17 2018
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
End time: Mon Mar 26 10:38:29 2018

Processing tranlation indexes: [TTTT]
.......

随后等待文件下载完成,等待时间视网络状况,本次源仓库共有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
2
3
4
5
root@ubuntu:~# cat /etc/apt/sources.list
deb [arch=amd64] file:///var/spool/apt-mirror/mirror/mirrors.tuna.tsinghua.edu.cn/ubuntu xenial main restricted universe multiverse
deb [arch=amd64] file:///var/spool/apt-mirror/mirror/mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-updates main restricted universe multiverse
deb [arch=amd64] file:///var/spool/apt-mirror/mirror/mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-backports main restricted universe multiverse
deb [arch=amd64] file:///var/spool/apt-mirror/mirror/mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-security main restricted universe multiverse

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
2
3
4
5
root@ubuntu:~# cat /etc/apt/sources.list
deb [arch=amd64] http://192.168.4.170/ubuntu/ xenial main restricted universe multiverse
deb [arch=amd64] http://192.168.4.170/ubuntu/ xenial-updates main restricted universe multiverse
deb [arch=amd64] http://192.168.4.170/ubuntu/ xenial-backports main restricted universe multiverse
deb [arch=amd64] http://192.168.4.170/ubuntu/ xenial-security main restricted universe multiverse

【参考链接】

1)MAAS安装指导

2)ubuntu私有源搭建

3)私有源配置

-------------本文结束感谢您的阅读-------------

版权声明

Louie's Blog by louie long is licensed under a Creative Commons BY-NC-ND 4.0 International License.
Louie Long创作并维护的Louie's Blog博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Louie's Blog 博客( http://ylong.net.cn ),版权所有,侵权必究。
转载请注明作者和链接地址http://ylong.net.cn, 如对文章内容有疑问请联系邮箱( longyu805@163.com )。