一键cobbler批量安装脚本

前几天机房上架180台服务器,太多了,使用了cobbler批量安装,具体的看我上代码,我把配置cobbler的命令给堆积起来,也算是个脚本吧,欢迎拍砖指正,下面我上脚本:

  1 #!/bin/bash
  2 
  3 # 关闭selinux
  4  setenforce 0
  5 # 关闭firewalld防火墙
  6  systemctl stop firewalld
  7 # 下载阿里云镜像源
  8  wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  9 # 安装cobbler
 10  yum install cobbler cobbler-web pykickstart httpd dhcp tftp-server -y
 11 # 启动httpd、cobblerd
 12  systemctl start httpd
 13  systemctl start cobblerd
 14 # 检查cobbler配置存在的问题,逐一解决
 15  cobbler check  
 16 # 修改/etc/cobbler/settings文件中的server参数的值为提供cobbler服务的主机相应的IP地址或主机名,如server: 192.168.222.129
 17 # 备份原文件
 18  cp /etc/cobbler/settings{,.ori} 
 19  sed -i 's/server: 127.0.0.1/server: 192.168.222.129/' /etc/cobbler/settings
 20 # 修改/etc/cobbler/settings文件中的next_server参数的值为提供PXE服务的主机相应的IP地址,如next_server: 192.168.222.129
 21  sed -i 's/next_server: 127.0.0.1/next_server: 192.168.222.129/' /etc/cobbler/settings
 22 
 23 # 修改/etc/xinetd.d/tftp文件中的disable参数修改为 disable = no
 24 # 备份源文件
 25  cp /etc/xinetd.d/tftp{,.ori}
 26  sed -i 's/disable.*= yes/disable                 = no/g' /etc/xinetd.d/tftp
 27 # 执行 cobbler get-loaders 命令即可;否则,需要安装syslinux程序包,而后复制/usr/share/syslinux/{pxelinux.0,memu.c32}等文件至/var/lib/cobbler/loaders/目录中
 28  cobbler get-loaders
 29 # 修改rsync配置文件
 30  sed -i s/"disable.*= yes"/"disable         = no"/g /etc/xinetd.d/rsync 
 31 # 开启rsync的服务开机自启动
 32  systemctl enable rsyncd 
 33 # 开启rsync的服务
 34  systemctl start rsyncd 
 35 # 生成密码来取代默认的密码,更安全
 36  openssl passwd -1 -salt 'renjunjie' '123456'
 37  sed -i s/'default_password_crypted:.*'/'default_password_crypted: "$1$renjunji$G7LpR5255qFguHrw7E0KP\/"'/g /etc/cobbler/settings
 38 # 安装cman fence-agents
 39  yum install -y cman fence-agents
 40 # 其他一些没有提示报错的小修改
 41  sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings
 42  sed -i 's/pxe_just_once: 0/pxe_just_once: 1/' /etc/cobbler/settings
 43  systemctl restart cobblerd.service
 44  cobbler check
 45 # 配置dhcp
 46  cat > /etc/dhcp/dhcpd.conf <<EOF
 47 subnet 192.168.222.0 netmask 255.255.255.0 {
 48 option domain-name-servers 223.5.5.5;
 49 option routers 192.168.222.1;
 50 range dynamic-bootp 192.168.222.100 192.168.222.250;
 51 option subnet-mask 255.255.255.0;
 52 next-server $next_server;
 53 default-lease-time 43200;
 54 max-lease-time 86400;
 55 }
 56 EOF
 57 # 同步cobbler的配置,可以看到同步干了哪些事
 58  cobbler sync  
 59 # 设置开机自启动
 60 systemctl enable dhcpd.service
 61 systemctl enable rsyncd.service
 62 systemctl enable tftp.service 
 63 systemctl enable httpd.service 
 64 systemctl enable cobblerd.service
 65 
 66 systemctl restart dhcpd.service
 67 systemctl restart rsyncd.service
 68 systemctl restart tftp.service 
 69 systemctl restart httpd.service
 70 systemctl restart cobblerd.service
 71 
 72 # 挂在镜像
 73  mount /dev/cdrom /mnt
 74 # 导入镜像
 75  cobbler import --path=/mnt/ --name=CentOS-7.0-x86_64 --arch=x86_64
 76 # 查看镜像列表
 77  cobbler distro list
 78 # 镜像存放目录,cobbler会将镜像中的所有安装文件拷贝到本地一份,放在/var/www/cobbler/ks_mirror下的CentOS-6.6-x86_64目录下。因此/var/www/cobbler目录必须具有足够容纳安装文件的空间 
 79  cd /var/www/cobbler/ks_mirror/
 80 # 配置ks.cfg(使用centos7的镜像的时候,注意下方的ks.cfg要在安装包那里删除掉@server-policy,这玩意在7没有的
 81  cd /var/lib/cobbler/kickstarts/
 82  mkdir CentOS-7.0-x86_64.cfg
 83  cat CentOS-7.0-x86_64.cfg <<EOF
 84 # kickstart template for Fedora 8 and later.
 85 # (includes %end blocks)
 86 # do not use with earlier distros
 87  
 88 #platform=x86, AMD64, or Intel EM64T
 89 # System authorization information
 90 #auth  --useshadow  --enablemd5
 91 authconfig --enableshadow --passalgo=sha512
 92 # System bootloader configuration
 93 bootloader --location=mbr --driveorder=sda --append="nomodeset crashkernel=auto rhgb quiet"
 94 # Partition clearing information
 95 clearpart --all --initlabel
 96 # Use text mode install
 97 text
 98 # Firewall configuration
 99 firewall --disabled
100 # Run the Setup Agent on first boot
101 firstboot --disable
102 # System keyboard
103 keyboard us
104 # System language
105 lang en_US
106 # Use network installation
107 url --url=$tree
108 # If any cobbler repo definitions were referenced in the kickstart profile, include them here.
109 $yum_repo_stanza
110 # Network information
111 $SNIPPET('network_config')
112 # Reboot after installation
113 reboot
114 logging --level=info
115  
116 #Root password
117 rootpw --iscrypted $default_password_crypted
118 # SELinux configuration
119 selinux --disabled
120 # Do not configure the X Window System
121 skipx
122 # System timezone
123 timezone  Asia/Shanghai
124 # Install OS instead of upgrade
125 install
126 # Clear the Master Boot Record
127 zerombr
128 # Allow anaconda to partition the system as needed
129 #autopart
130 part /boot --fstype=ext4 --asprimary --size=200
131 part swap --asprimary --size=1024
132 part / --fstype=ext4 --grow --asprimary --size=200
133  
134 %pre
135 $SNIPPET('log_ks_pre')
136 $SNIPPET('kickstart_start')
137 $SNIPPET('pre_install_network_config')
138 # Enable installation monitoring
139 $SNIPPET('pre_anamon')
140 %end
141  
142 %packages
143 @base
144 @compat-libraries
145 @core
146 @debugging
147 @development
148 @dial-up
149 @hardware-monitoring
150 @performance
151 sgpio
152 device-mapper-persistent-data
153 systemtap-client
154 tree
155 lrzsz
156 telnet
157 nmap
158 dos2unix
159 %end
160  
161 %post --nochroot
162 $SNIPPET('log_ks_post_nochroot')
163 %end
164  
165 %post
166 $SNIPPET('log_ks_post')
167 # Start yum configuration
168 $yum_config_stanza
169 # End yum configuration
170 $SNIPPET('post_install_kernel_options')
171 $SNIPPET('post_install_network_config')
172 $SNIPPET('func_register_if_enabled')
173 $SNIPPET('download_config_files')
174 $SNIPPET('koan_environment')
175 $SNIPPET('redhat_register')
176 $SNIPPET('cobbler_register')
177 # Enable post-install boot notification
178 $SNIPPET('post_anamon')
179 # Start final steps
180 $SNIPPET('kickstart_done')
181 # End final steps
182 %end
183 EOF
184 # 编辑profile,修改关联的ks文件
185  cobbler profile edit --name=CentOS-7.0-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-7.0-x86_64.cfg
186 
187 # 同步下cobbler数据,每次修改完都要镜像同步
188  cobbler sync
189 # 定制化安装
190  cobbler system add --name=ren --mac=00:0C:29:2E:FD:0E  --profile=CentOS-7.0-x86_64 --ip-address=192.168.222.120 --subnet=255.255.255.0 --gateway=192.168.222.1 --interface=eno16777736 --static=1 --hostname=linux_node --name-servers="223.5.5.5"
191  cobbler system list
192  cobbler sync

 

posted @ 2016-10-26 13:08  BigZero  阅读(1975)  评论(0编辑  收藏  举报