如果要在几十上百台机器内批量安装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的:
请问一下带哥,您经常使用的关于SSL的”certbot certonly –standalone -d example.com”命令,证书是自动续期的嘛?(我看需要输入一个邮箱并许可接受推送信息) 还是说,无法自动续期,需要配置计划任务,或者是定期手动执行该命令覆盖证书??
到期前certbot renew就可以吧
怪我没了解太多,我看了下一那个命令,快到期重复执行就行,暂时还没有expire date.这个Cerbot申请的Let’s Encrypt证书也是90天的嘛?(CDN证书覆盖了,看不了了)我看它调用的acme.sh的API,跟我LNMP1.5环境的一样,23333
certbot –nginx –agree-tos –no-eff-email –server https://api.buypass.com/acme/directory
这个貌似可以签半年的buypass。。
standalone模式不能自动续期,可以加上–agree-tos –no-eff-email这样申请的时候就不用填邮箱和接收推送了。
自动续期的可以用certbot –nginx(貌似是自动 )
感谢您的v2ray+nginx的文章,并配置阿里国际全站cdn成功,就是希望加入域名伪装。但是Nginx的proxy_pass属性已经监听本地端口/进程了,那么如何在此基础上实现反向代理呢?还是说,只能用Caddy来实现?