🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# cobbler简介 ## cobbler介绍 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等。 Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。 Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web界面比较易于管理。 Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成,如Puppet,暂时不支持SaltStack。 ## cobbler集成的服务 - PXE服务支持 - DHCP服务管理 - DNS服务管理(可选bind,dnsmasq) - 电源管理 - Kickstart服务支持 - YUM仓库管理 - TFTP(PXE启动时需要) - Apache(提供kickstart的安装源,并提供定制化的kickstart配置) # cobbler部署 cobbler服务器基本设置:CentOS7最小化安装,关闭防火墙,selinux设置为disabled,虚拟机网卡这里为桥接模式 ## 安装EPEL源 rpm -ivh http://mirrors.kernel.org/fedora-epel/7/x86_64/e/epel-release-7-10.noarch.rpm yum repolist ## yum安装cobbler yum install -y httpd dhcp tftp cobbler cobbler-web pykickstart 用命令(rpm -ql cobbler)查看安装的文件,下面列出部分。 配置文件目录 /etc/cobbler /etc/cobbler # 配置文件目录 /etc/cobbler/settings # cobbler主配置文件,这个文件是YAML格式,Cobbler是python写的程序。 /etc/cobbler/dhcp.template # DHCP服务的配置模板 /etc/cobbler/tftpd.template # tftp服务的配置模板 /etc/cobbler/rsync.template # rsync服务的配置模板 /etc/cobbler/iso # iso模板配置文件目录 /etc/cobbler/pxe # pxe模板文件目录/etc/cobbler/power # 电源的配置文件目录 /etc/cobbler/users.conf # Web服务授权配置文件 /etc/cobbler/users.digest # 用于web访问的用户名密码配置文件 /etc/cobbler/dnsmasq.template # DNS服务的配置模板 /etc/cobbler/modules.conf # Cobbler模块配置文件 数据目录 /var/lib/cobbler # Cobbler数据目录 /var/lib/cobbler/config # 用于存放distros,system,profiles等信息配置文件 /var/lib/cobbler/kickstarts # 默认存放kickstart文件 /var/lib/cobbler/loaders # 存放的各种引导程序 镜像目录 /var/www/cobbler # 系统安装镜像目录 /var/www/cobbler/ks_mirror # 导入的发行版系统的所有数据 /var/www/cobbler/images # 导入发行版的kernel和initrd镜像用于远程网络启动 /var/www/cobbler/repo_mirror # yum源存储目录 日志目录 /var/log/cobbler # 日志目录 /var/log/cobbler/install.log # 客户端系统安装日志 /var/log/cobbler/cobbler.log # cobbler日志 ## 启动并检测cobbler systemctl start httpd systemctl enable httpd systemctl start cobblerd systemctl enable cobblerd cobbler check 附加解析: cobbler check 核对当前设置是否有问题 cobbler list 列出所有的cobbler元素 cobbler report 列出元素的详细信息 cobbler sync 同步配置到数据目录,更改配置最好都要执行下 cobbler reposync 同步yum仓库 cobbler distro 查看导入的发行版系统信息 cobbler system 查看添加的系统信息 cobbler profile 查看配置信息 ## 修改cobbler主配置文件 vim /etc/cobbler/settings ![1-1](http://opnq5yeqm.bkt.clouddn.com/1-1.png) ![1-2](http://opnq5yeqm.bkt.clouddn.com/1-2.png) ## 保证xinetd服务为开机自动启动状态 vim /etc/xinetd.d/tftp ![1-3](http://opnq5yeqm.bkt.clouddn.com/1-3.png) ## 启动rsyncd服务 systemctl start rsyncd cobbler get-loaders ## 生成cobbler安装系统root初始密码 openssl passwd -1 -salt 'cobler' 'cobler' $1$cobler$XJnisBweZJlhL651HxAM00 ![1-4](http://opnq5yeqm.bkt.clouddn.com/1-4.png) ## 将上面的加密串加入cobbler配置文件中 vim /etc/cobbler/settings ![1-5](http://opnq5yeqm.bkt.clouddn.com/1-5.png) ## 重启cobblerd服务: systemctl restart cobblerd cobbler check ## 让cobblerd管理dhcp vim /etc/cobbler/settings ![1-6](http://opnq5yeqm.bkt.clouddn.com/1-6.png) ## 修改dhcp模板文件: vim /etc/cobbler/dhcp.template ![1-7](http://opnq5yeqm.bkt.clouddn.com/1-7.png) ## 重启cobblerd systemctl restart cobblerd 同步: cobbler sync ## 导入镜像 ![1-8](http://opnq5yeqm.bkt.clouddn.com/1-8.png) mount /dev/cdrom /mnt cobbler import --path=/mnt/ --name=CentOS-7-x86_64 --arch=x86_64 ![1-9](http://opnq5yeqm.bkt.clouddn.com/1-9.png) 导入centos6的步骤在这里略去! ![1-10](http://opnq5yeqm.bkt.clouddn.com/1-10.png) CentOS-6-x86_64.cfg配置文件: # Kickstart file automatically generated by anaconda. #version=DEVEL install #表示是安装,而不是升级 text #文本方式安装 cdrom #安装方式,如果是网络安装的话可以写成 url ––url ftp://192.168.1.254/dir 或者 nfs --server=192.168.0.241 --dir=/centosinstall key –skip #这个是我另外添加的,如果是RedHat的系统,会要求输入key,这里配置为跳过,如果不配置安装时会停在那里要求用户输入key lang en_US.UTF-8 #语言 keyboard us #键盘样式 network --onboot no --device eth0 --noipv4 --noipv6 #网络配置 配置具体参数样例:network –onboot yes --bootproto=static --ip=192.168.1.1 --netmask=255.255.255.0 其他网关,DNS等格式和ifcfg-ethx的方式一样 rootpw --iscrypted $6$PEJ49S7OkrNra3UM #管理员密码,是加密过的 要是使用不加密的方式则这样写:rootpw 123456 firewall --service=ssh #开启防火墙,并打开ssh端口 authconfig --enableshadow --passalgo=sha512 #用户认证和密码加密方式 selinux --enforcing #强制打开selinux timezone --utc Etc/GMT+8 #时区设置 zerombr yes #清空磁盘的mbr bootloader --location=mbr --driveorder=sda #引导程序相关参数 # The following is the partition information you requested # Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is # not guaranteed to work clearpart –all –initlabel #初始化磁盘 part / --fstype=ext4 --size=18000 #开始分区 part swap --grow --size=1024 repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100 reboot %packages --nobase #安装的软件包,这里由于我安装的是最小mini版,所以只安装了核心软件包组 @core %post #后安装脚本(这里是我另外添加的,原来文件中没有) id lustlost &>; /dev/null || useradd lustlost #检查是否有lustlost用户,如果没有则添加 echo 123456 | passwd –stdin lustlost #配置密码 cat >> /etc/yum.repos.d/base.repo << eof [base] name=baseserver baseurl=http://192.168.1.254/yum gpgcheck=0 enable=1 eof #这里在安装系统成功后执行脚本自动配置一个yum源,其他脚本可以按照需要定义 %end CentOS-7-x86_64.cfg配置文件: # Cobbler for Kickstart Configurator for CentOS 7 by clsn install url --url=$tree text lang en_US.UTF-8 keyboard us zerombr bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" #Network information $SNIPPET('network_config') #network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 -- hostname=CentOS7 timezone --utc Asia/Shanghai authconfig --enableshadow --passalgo=sha512 rootpw --iscrypted $default_password_crypted clearpart --all --initlabel part /boot --fstype xfs --size 1024 part swap --size 1024 part / --fstype xfs --size 1 --grow firstboot --disable selinux --disabled firewall --disabled logging --level=info reboot %pre $SNIPPET('log_ks_pre') $SNIPPET('kickstart_start') $SNIPPET('pre_install_network_config') # Enable installation monitoring $SNIPPET('pre_anamon') %end %packages @^minimal @compat-libraries @core @debugging @development bash-completion chrony dos2unix kexec-tools lrzsz nmap sysstat telnet tree vim wget %end %post systemctl disable postfix.service $yum_config_stanza %end 上传配置文件到/var/lib/cobbler/kickstarts目录下 修改自定义配置文件: cobbler profile edit --name=CentOS-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-7-x86_64.cfg cobbler profile edit --name=CentOS-6-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-6-x86_64.cfg ![1-11](http://opnq5yeqm.bkt.clouddn.com/1-11.png) 定义自动化安装时centos7的网卡信息文件(自动生成eth1,eth2) cobbler profile edit --name=CentOS-7-x86_64 --kopts='net.ifnames=O biosdevname=O' ![1-12](http://opnq5yeqm.bkt.clouddn.com/1-12.png) cobbler sync #使修改的配置文件生效 然后随便添加一台虚拟机,开机! ![1-13](http://opnq5yeqm.bkt.clouddn.com/1-13.png) cobbler服务器端查看日志 ![1-14](http://opnq5yeqm.bkt.clouddn.com/1-14.png) (14)安装xinetd yum -y install xinetd systemctl start xinetd 安装好后就会可以选择安装centos版本,选择对应版本后就会自动执行安装程序! ![1-15](http://opnq5yeqm.bkt.clouddn.com/1-15.png) ![1-16](http://opnq5yeqm.bkt.clouddn.com/1-16.png) # 自动重装和cobbler-web ## 安装koan yum -y install koan 查看可以重装的系统: koan --server=192.168.0.100 --list=profiles ![1-17](http://opnq5yeqm.bkt.clouddn.com/1-17.png) ## 指定要重装成centos6: koan --replace-self --server=192.168.0.100 --profile=CentOS-6-x86_64 ![1-18](http://opnq5yeqm.bkt.clouddn.com/1-18.png) ## 通过web访问cobbler 在浏览器输入:https://192.168.0.100/cobbler_web,用户名和密码都是默认的cobbler ![1-19](http://opnq5yeqm.bkt.clouddn.com/1-19.png) ## cobbler修改密码 htdigest /etc/cobbler/users.digest "Cobbler" cobbler ![1-20](http://opnq5yeqm.bkt.clouddn.com/1-20.png) 所有操作都可在web界面进行 ![1-21](http://opnq5yeqm.bkt.clouddn.com/1-21.png) ![1-22](http://opnq5yeqm.bkt.clouddn.com/1-22.png) ## 修改提示信息的选单 vim /etc/cobbler/pxe/pxedefault.template 修改前: ![1-23](http://opnq5yeqm.bkt.clouddn.com/1-23.png) 修改后: ![1-24](http://opnq5yeqm.bkt.clouddn.com/1-24.png) 然后执行命令:cobbler sync 新建一台虚拟机查看效果: ![1-25](http://opnq5yeqm.bkt.clouddn.com/1-25.png) # cobbler自定义yum源 ## 添加repo cobbler repo add --name=openstack-ocata --mirror=http://192.168.0.5:8080/openstack-ocata/ --arch=x86_64 --breed=yum 注:http://192.168.0.5:8080/openstack-ocata/为我本地搭建的本地yum源 ## 同步repo cobbler reposync ## 添加repo到对应的repolist cobbler profile edit --name=CentOS-7-x86_64 --repos="openstack-ocata" ## 修改kicstart文件 %post systemctl disable postfix.service $yum_config_stanza %end ## 添加定时任务,定期同步repo echo "1 3 * * * /usr/bin/cobbler reposync --tries=3 --no-fail" >> /var/spool/cron/root # cobbler自定义系统安装 ## 自动化装机平台基本信息 mac地址:00:50:56:3E:3D:06 ![1-26](http://opnq5yeqm.bkt.clouddn.com/1-26.png) 主机名:cobbler-test03 IP:192.168.0.111 掩码:255.255.255.0 网关:192.168.0.1 DNS:192.168.0.1 ## 执行安装的命令 cobbler system add --name=cobbler-test03 --mac=00:50:56:3E:3D:06 --profile=CentOS-7-x86_64 \ --ip-address=192.168.0.111 --subnet=255.255.255.0 --gateway=192.168.0.1 --intterface=eth0 \ --static=1 --hostname=cobbler-test03 --name-servers="192.168.0.1" \ --kickstart=/var/lib/cobbler/kickstarts/CentOS-7-x86_64.cfg ![1-27](http://opnq5yeqm.bkt.clouddn.com/1-27.png) 同步:cobbler sync 启动虚拟机跳过选择界面自动安装: ![1-28](http://opnq5yeqm.bkt.clouddn.com/1-28.png)