静看光阴荏苒
不管不顾不问不说也不念

Cobbler:批量自动安装CentOS7

如果要在几十上百台机器内批量安装CentOS7,以前常用的办法就是PXE+DHCP+TFTP+Kickstart,但这套环境部署起来很麻烦,所以就有了Cobbler的诞生。

Cobbler相当于是把PXE+DHCP+TFTP+Kickstart集合在了一起,我们可以借助Cobbler快速把这一套环境部署起来。

安装Cobbler和需要用到的工具:

yum -y update
yum -y install epel-release
yum -y install cobbler cobbler-web dhcp debmirror pykickstart fence-agents

这里有个坑,cobbler-web包安装的Django版本高了,会导致WEB界面打不开报错500,所以我们自己降级一下Django的版本:

yum -y install python-pip
pip install Django==1.8.19

关防火墙:

systemctl stop firewalld
systemctl disable firewalld

关SELinux:

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

启动cobbler/apache/tftp服务:

systemctl start cobblerd httpd rsyncd tftp
systemctl enable cobblerd httpd rsyncd tftp

用https协议去访问一下web界面看能不能正常访问:

https://你的本机IP/cobbler_web

注:默认的管理员账号都是cobbler

回到终端修改默认管理员的密码:

htdigest /etc/cobbler/users.digest "Cobbler" cobbler

设置安装系统时的ROOT密码:

openssl passwd -1 -salt 'lala.im'

编辑如下配置文件:

nano /etc/cobbler/settings

将之前生成的密码替换到:default_password_crypted,如图所示:

然后修改server/next_server为本机IP:

sed -i 's/server: 127.0.0.1/server: 本机IP/g' /etc/cobbler/settings
sed -i 's/next_server: 127.0.0.1/next_server: 本机IP/g' /etc/cobbler/settings

让Cobbler接管DHCP服务:

sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings

修改debmirror的配置文件(不改也没啥事,这是装Debian系统时需要用到的)

sed -i 's/@dists="sid";/#@dists="sid";/g' /etc/debmirror.conf
sed -i 's/@arches="i386";/#@arches="i386";/g' /etc/debmirror.conf

编辑TFTP配置文件:

nano /etc/xinetd.d/tftp

更改disable为no,如图所示:

下载引导文件:

cobbler get-loaders

如图所示,如果国内机器下载慢,可以自己按照图内的链接下载到对应目录:

编辑dhcp配置文件:

nano /etc/cobbler/dhcp.template

根据自己的网络环境配置DHCP服务:

subnet 95.xxx.xxx.160 netmask 255.255.255.248 {
     option routers             95.xxx.xxx.161;
     option domain-name-servers 8.8.8.8;
     option subnet-mask         255.255.255.248;
     range dynamic-bootp        95.xxx.xxx.164 95.xxx.xxx.166;
     default-lease-time         21600;
     max-lease-time             43200;

重启cobbler,然后同步配置:

systemctl restart cobblerd
cobbler sync

最后检查看看有没有报错提示,有的话根据提示去修复:

cobbler check

下载ISO镜像:

wget http://mirror.0x.sg/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso

挂载ISO镜像并导入到Cobbler:

mkdir /mnt/iso
mount CentOS-7-x86_64-Minimal-1810.iso /mnt/iso
cobbler import --arch=x86_64 --path=/mnt/iso --name=CentOS7

现在回到Cobbler的WEB面板,点击Kickstart Templates,创建Ks模板:

给出一份我的Kickstart配置模板:

# Cobbler for Kickstart Configurator for CentOS 7 minimal
# WWW.LALA.IM by LALA
# X86/AMD64

text
install
bootloader --location=mbr
zerombr
auth --useshadow --passalgo=sha512
rootpw --iscrypted $default_password_crypted
firewall --disable
selinux --disabled
firstboot --disable
keyboard us
lang en_US
timezone Asia/Shanghai
url --url=$tree
$SNIPPET('network_config')
clearpart --all --initlabel
part /boot --fstype="ext4" --size=512
part swap --fstype="swap" --size=1024
part / --fstype="ext4" --grow --size=1
reboot

%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
$SNIPPET('pre_anamon')
%end

%packages
@^minimal
@core
kexec-tools
%end

如图配置即可:

之后点击Profiles,编辑:

选择我们刚才创建的Ks模板文件:

至此Cobbler的配置就全部完成了,下面我在Proxmox上开一台虚拟机进行测试。

创建虚拟机不使用任何介质:

硬盘随便给吧,只要满足Ks模板里面的分区大小要求即可:

然后编辑虚拟机的引导顺序:

将引导设备1改为网络:

开机,通过VNC可以看到cobbler的引导界面了:

选择要装的系统,剩下的就是全自动了:

安装完成,系统能正常登录,硬盘分区正常,网络也是OK的:

赞(1)
未经允许不得转载:荒岛 » Cobbler:批量自动安装CentOS7
分享到: 更多 (0)

评论 6

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    请问一下带哥,您经常使用的关于SSL的”certbot certonly –standalone -d example.com”命令,证书是自动续期的嘛?(我看需要输入一个邮箱并许可接受推送信息) 还是说,无法自动续期,需要配置计划任务,或者是定期手动执行该命令覆盖证书?? :cool: :cool:

    Autumn3个月前 (08-06) Google Chrome 73.0.3683.75 Google Chrome 73.0.3683.75 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 到期前certbot renew就可以吧

      橘子3个月前 (08-06) Google Chrome 77.0.3833.142 Google Chrome 77.0.3833.142 Windows 8.1 Windows 8.1回复
      • 怪我没了解太多,我看了下一那个命令,快到期重复执行就行,暂时还没有expire date.这个Cerbot申请的Let’s Encrypt证书也是90天的嘛?(CDN证书覆盖了,看不了了)我看它调用的acme.sh的API,跟我LNMP1.5环境的一样,23333

        Autumn3个月前 (08-06) Google Chrome 73.0.3683.75 Google Chrome 73.0.3683.75 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • standalone模式不能自动续期,可以加上–agree-tos –no-eff-email这样申请的时候就不用填邮箱和接收推送了。
      自动续期的可以用certbot –nginx(貌似是自动 :shock:

      LALA3个月前 (08-06) Google Chrome 74.0.3729.169 Google Chrome 74.0.3729.169 Windows 10 x64 Edition Windows 10 x64 Edition回复
  2. #2

    感谢您的v2ray+nginx的文章,并配置阿里国际全站cdn成功,就是希望加入域名伪装。但是Nginx的proxy_pass属性已经监听本地端口/进程了,那么如何在此基础上实现反向代理呢?还是说,只能用Caddy来实现? :smile:

    Autumn3个月前 (08-06) Google Chrome 73.0.3683.75 Google Chrome 73.0.3683.75 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿