Cobbler 自动部署CentOS
1 #!/bin/bash 2 3 # 配置管理IP 4 #vi /etc/sysconfig/network-scripts/ifcfg-ens192 5 6 # 配置pxe IP 192.168.0.1/24 不能更换成其他IP 7 #vi /etc/sysconfig/network-scripts/ifcfg-ens224 8 9 # 配置主机名 pxe-server 10 #hostname pxe-server 11 #echo pxe-server > /etc/hostname 12 13 # 创建存放iso的目录 /mnt/iso 14 #mkdir -p /mnt/iso 15 16 # 下载最新版 CentOS6 和 CentOS7 iso文件(随着版本的更新,镜像网站将停止老版本的下载支持,需要自己搞定iso下载) 17 #wget -P /mnt/iso ftp://10.12.28.8/ops/Linux-ISO/CentOS-6.10-x86_64-bin-DVD1.iso 18 #wget -P /mnt/iso ftp://10.12.28.8/ops/Linux-ISO/CentOS-6.10-x86_64-bin-DVD2.iso 19 #wget -P /mnt/iso ftp://10.12.28.8/ops/Linux-ISO/CentOS-7-x86_64-Everything-1908.iso 20 21 ############### 上面的部分手工执行 ##################### 22 23 # 配置阿里云YUM源 24 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 25 26 # 安装EPEL 27 yum install -y epel-release 28 29 # 配置阿里云EPEL源 30 curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 31 32 # 安装常用软件 33 yum install -y vim wget lftp net-tools bash-completion jq git sysstat lrzsz 34 35 # 禁用防火墙 36 systemctl stop firewalld && systemctl disable firewalld 37 38 # 关闭SELinux 39 setenforce 0 && getenforce 40 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 41 42 # 优化SSH访问速度 43 echo 'UseDNS no' >> /etc/ssh/sshd_config 44 systemctl restart sshd.service 45 echo 'StrictHostKeyChecking no' >> /etc/ssh/ssh_config 46 47 # 定义操作系统密码 48 passwd='cnblogs.C0M' 49 50 # 定义Cobbler Server 地址 51 server=192.168.0.1 52 53 # 定义TFTP Server地址 54 next_server=$server 55 56 # DHCP定义:网络地址 57 subnet=192.168.0.0 58 59 # DHCP定义:掩码 60 netmask=255.255.255.0 61 62 # DHCP定义:网关 63 gateway=$server 64 65 # DHCP定义:DNS 66 dns=$server 67 68 # DHCP定义:地址段起 69 ip_start=192.168.0.101 70 71 # DHCP定义:地址段止 72 ip_stop=192.168.0.200 73 74 # 安装cobbler及相关服务 75 yum install -y cobbler cobbler-web pykickstart dhcp 76 77 # 设置cobbler动态修改配置,比改配置文件要方便 78 sed -i 's/allow_dynamic_settings: 0/allow_dynamic_settings: 1/' /etc/cobbler/settings 79 80 # 启动相关服务,并设置为开机自启动,因为dhcp还没有配置,暂时先不启动 81 systemctl start cobblerd.service && systemctl enable cobblerd.service 82 systemctl start httpd.service && systemctl enable httpd.service 83 systemctl start rsyncd.service && systemctl enable rsyncd.service 84 systemctl start tftp.socket && systemctl enable tftp.socket 85 systemctl enable dhcpd.service 86 87 # DHCP配置:网络地址 88 sed -i 's@192.168.1.0@'$subnet'@' /etc/cobbler/dhcp.template 89 90 # DHCP配置:掩码 91 sed -i 's@255.255.255.0@'$netmask'@' /etc/cobbler/dhcp.template 92 93 # DHCP配置:网关 94 sed -i 's@192.168.1.5;@'$gateway';@' /etc/cobbler/dhcp.template 95 96 # DHCP配置:DNS 97 sed -i 's@192.168.1.1;@'$dns';@' /etc/cobbler/dhcp.template 98 99 # DHCP配置:地址段起 100 sed -i 's@192.168.1.100@'$ip_start'@' /etc/cobbler/dhcp.template 101 102 # DHCP配置:地址段止 103 sed -i 's@192.168.1.254@'$ip_stop'@' /etc/cobbler/dhcp.template 104 105 # 设置cobbler server对外能访问的ip 106 cobbler setting edit --name=server --value=$server 107 108 # 设置next_server,即tftp的服务器地址 109 cobbler setting edit --name=next_server --value=$server 110 111 # 设置有cobbler自动管理dhcp 112 cobbler setting edit --name=manage_dhcp --value=1 113 114 # 在tftp配置文件中设置启用tftp 115 sed -i '14s/yes/no/' /etc/xinetd.d/tftp 116 117 # 在线从cobbler官网下载 boot loaders 118 cobbler get-loaders 119 120 # cobbler配置完毕,执行下面命令重新加载配置,并自动配置相关服务 121 cobbler sync 122 123 # 创建centos ISO挂载目录 124 mkdir -p /mnt/centos/centos6 125 mkdir -p /mnt/centos/centos7 126 127 # 挂载centos ISO 128 mount /mnt/iso/CentOS-6.10-x86_64-bin-DVD1.iso /mnt/centos/centos6 129 mount /mnt/iso/CentOS-7-x86_64-Everything-1908.iso /mnt/centos/centos7 130 131 # 创建centos ks文件 132 echo ' 133 #platform=x86, AMD64, or Intel EM64T 134 #version=DEVEL 135 # Install OS instead of upgrade 136 install 137 # System keyboard 138 keyboard us 139 # System language 140 lang en_US 141 # Root password 142 rootpw --plaintext '$passwd' 143 # System authorization information 144 auth --useshadow --passalgo=sha512 145 # Use graphical install 146 graphical 147 firstboot --disable 148 # SELinux configuration 149 selinux --disabled 150 # Firewall configuration 151 firewall --disabled 152 # Reboot after installation 153 reboot 154 # System timezone 155 timezone Asia/Shanghai 156 # System bootloader configuration 157 bootloader --location=mbr 158 # Clear the Master Boot Record 159 zerombr 160 # Partition clearing information 161 clearpart --all 162 163 # Use network installation 164 url --url=$tree 165 # Disk partitioning information 166 part /boot --fstype="ext4" --size=1024 167 part swap --fstype="swap" --size=2048 168 part / --fstype="ext4" --grow --size=1 169 170 %packages 171 @base 172 %end 173 ' > /var/lib/cobbler/kickstarts/ks6.cfg 174 175 echo ' 176 #platform=x86, AMD64, or Intel EM64T 177 #version=DEVEL 178 # Install OS instead of upgrade 179 install 180 # System keyboard 181 keyboard us 182 # System language 183 lang en_US 184 # Root password 185 rootpw --plaintext '$passwd' 186 # System authorization information 187 auth --useshadow --passalgo=sha512 188 # Use graphical install 189 graphical 190 firstboot --disable 191 # SELinux configuration 192 selinux --disabled 193 # Firewall configuration 194 firewall --disabled 195 # Reboot after installation 196 reboot 197 # System timezone 198 timezone Asia/Shanghai 199 # System bootloader configuration 200 bootloader --location=mbr 201 # Clear the Master Boot Record 202 zerombr 203 # Partition clearing information 204 clearpart --all 205 206 # Use network installation 207 url --url=$tree 208 # Disk partitioning information 209 part /boot --fstype="xfs" --size=1024 210 part swap --fstype="swap" --size=2048 211 part / --fstype="xfs" --grow --size=1 212 213 %packages 214 @base 215 %end 216 ' >/var/lib/cobbler/kickstarts/ks7.cfg 217 218 # cobbler导入centos 219 cobbler import --name=centos610 --path=/mnt/centos/centos6 --kickstart=/var/lib/cobbler/kickstarts/ks6.cfg 220 cobbler import --name=centos77 --path=/mnt/centos/centos7 --kickstart=/var/lib/cobbler/kickstarts/ks7.cfg 221 222 echo -e "Cobbler部署完毕,可以自动安装centos6.10 和centos7.7。\n另外还可以使用Cobbler Web进行管理 \n https://$server/cobbler_web \n 用户名 cobbler \n 密码 cobbler"