A-A+

使用cobbler自动安装操作系统(CentOS版)

2015年12月25日 站长资讯 暂无评论

Cobbler是简便的批量部署操作系统的工具,不仅操作不需要太复杂,而且使用cobbler还能在多个主机上部署多个操作系统,甚是方便。

部署cobbler需要依赖的组件有tftp服务器、dhcp服务器、rsync必要的时候还需要用到dns服务器。

本文就展示一下,多服务集于一个主机部署的cobbler。

文中所使用的工具有VMware虚拟机,两个虚拟主机,一个CentOS-6.5-x86_64系统镜像。部署环境:CentOS6.5-x86_64环境。

前提:由于cobbler需要依赖epel环境,在文中展示时,连接的epel的指向教室环境。

1、需要安装cobbler cobbler-web pykickstart debmirror

  1. [root@node1 ~]# yum install cobbler cobbler-web pykickstart debmirror  
  2. Package                                   Arch                        Version                                       Repository                 Size  
  3.   
  4. ======================================   
  5. Installing:   
  6. cobbler                                   noarch                      2.4.0-1.el6                                   new2                      664 k   
  7. cobbler-web                               noarch                      2.4.0-1.el6                                   new2                      299 k   
  8. debmirror                                 noarch                      2.14-2.el6                                    new2                       58 k   
  9. pykickstart                               noarch                      1.74.14-1.el6                                 epel                      309 k   
  10. Installing for dependencies:   
  11. Django14                                  noarch                      1.4.8-1.el6                                   new2                      4.3 M   
  12. PyYAML                                    x86_64                      3.10-3.el6                                    new2                      157 k   
  13. createrepo                                noarch                      0.9.9-18.el6                                  epel                       94 k   
  14. deltarpm                                  x86_64                      3.5-0.5.20090913git.el6                       epel                       71 k   
  15. libyaml                                   x86_64                      0.1.5-1.el6                                   new2                       52 k   
  16. mod_ssl                                   x86_64                      1:2.2.15-29.el6.centos                        epel                       90 k   
  17. mod_wsgi                                  x86_64                      3.2-3.el6                                     epel                       66 k   
  18. perl-LockFile-Simple                      noarch                      0.207-2.el6                                   new2                       23 k   
  19. python-cheetah                            x86_64                      2.4.1-1.el6                                   epel                      365 k   
  20. python-deltarpm                           x86_64                      3.5-0.5.20090913git.el6                       epel                       27 k   
  21. python-markdown                           noarch                      2.0.1-3.1.el6                                 epel                      118 k   
  22. python-netaddr                            noarch                      0.7.5-4.el6                                   epel                      1.0 M   
  23. python-pygments                           noarch                      1.1.1-1.el6                                   epel                      562 k   
  24. python-setuptools                         noarch                      0.6.10-3.el6                                  epel                      336 k   
  25. python-simplejson                         x86_64                      2.0.9-3.1.el6                                 epel                      126 k   
  26. syslinux                                  x86_64                      4.02-8.el6                                    epel                      859 k   
  27. tftp-server                               x86_64                      0.49-7.el6                                    epel                       39 k   
  28. xinetd                                    x86_64                      2:2.3.14-39.el6_4                             epel                      121 k   
  29. Transaction Summary   
  30. =====================================================================================================================================================  

里面需要解决不少依赖关系,其中还附带tftp-server,Django14,还有不少关于python相关的。

2、解决cobbler启动需要的服务

dhcp(可以由dhcpd提供)或dnsmasq

tftp(可以由tftp-server程序包提供,或cobbler自带的tftp(刚才确实安装过tftp))。

rsync可以由rsync程序包提供

dns可以由bind安装包提供或dnsmasq

3、开始着手部署,由于前期交代过多服务部署于一个主机。

step1、配置dhcp服务

  1. [root@node1 ~]# yum install dhcp  
  2. ……………(中间略)  
  3. Installed:   
  4.   dhcp.x86_64 12:4.1.1-38.P1.el6.centos                                                                                                               
  5. Complete!  
  6. step2、[root@node1 ~]# vim /etc/dhcp/dhcpd.conf  
  7. #   
  8. # DHCP Server Configuration file.   
  9. #   see /usr/share/doc/dhcp*/dhcpd.conf.sample   
  10. #   see 'man 5 dhcpd.conf'   
  11. #  

提示我们去复制dhcpd.conf.sample来取代这个配置文件。这里可以先把dhcp的原配置文件重命名为dhcpd.conf.bak。

接着:

[root@node1 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf(注意这里是dhcpd.conf,笔者曾经改错名字导致服务无法启动)

step3、修改dhcp配置文件

[root@node1 ~]# vim /etc/dhcp/dhcpd.conf

part1、

part2、

step4、配置好dhcp服务器,可以通过“service dhcpd start”启动服务,并确保udp 67端口是由dhcp监听。

  1. [root@node1 ~]# ss -tunlp  | grep 67   
  2. udp    UNCONN     0      0                      *:631                   *:*      users:(("cupsd",1367,9))   
  3. udp    UNCONN     0      0                      *:67                    *:*      users:(("dhcpd",25392,7))   
  4. tcp    LISTEN     0      128            127.0.0.1:631                   *:*      users:(("cupsd",1367,7))   
  5. tcp    LISTEN     0      128                  ::1:631                  :::*      users:(("cupsd",1367,6))   

4、继dhcp以后,还需要启动tftp服务以及rsync

  1. [root@node1 ~]# chkconfig tftp on   
  2. [root@node1 ~]# service xinetd start   
  3. Starting xinetd:                                           [  OK  ]   
  4. [root@node1 ~]# chkconfig --list | grep tftp   
  5.     tftp:              on   
  6. [root@node1 ~]# chkconfig rsync on   
  7. [root@node1 ~]# service xinetd restart   
  8. Stopping xinetd:                                           [  OK  ]   
  9. Starting xinetd:                                           [  OK  ]   
  10. [root@node1 ~]# chkconfig --list | grep rsync   
  11.     rsync:             on   
  12. [root@node1 ~]# chkconfig --list | grep tftp   
  13.     tftp:              on  

5、下面就是cobbler各组件的配置,如图,本次演示要使用CentOS6.5镜像文件作为distribution。

将光盘挂载到随便一个目录,本次演示在/media/cdrom。

  1. [root@node1 ~]# mkdir -pv /media/cdrom && mount /dev/cdrom /media/cdrom   
  2. mkdir: created directory `/media/cdrom'   
  3. mount: block device /dev/sr0 is write-protected, mounting read-only  
  4.    
  5. [root@node1 cdrom]# cobbler import --name=CentOS65 --path=/media/cdrom 等于将光盘中的内容导入到系统上。而如果用光盘导入的话,cobbler import 命令参数生成的光盘镜像在系统的路径在/var/www/cobbler/ks_mirror下。  

在导入光盘之前,最后配置cobbler以及开启cobbler服务。

编辑/etc/cobbler/settings这个文件,文件中有需要加密的,使用openssl passwd -1 -salt `openssl rand -hex 4`这个命令提示输入密码,生成密码串,复制并粘贴到文件中

part1、

part2、next-server要与之前定义的一致。

part3、cobbler的server地址

接着保存配置文件,cobbler sync以及service cobblerd start启动

  1. [root@node1 cdrom]# service cobblerd start   
  2. Starting cobbler daemon:                                   [  OK  ]   
  3. [root@node1 cdrom]# ss -tnlp | grep 25151   
  4. LISTEN     0      5                 127.0.0.1:25151                    *:*      users:(("cobblerd",25555,8))  

6、可以启动cobbler各组件的服务。

  1. [root@node1 cdrom]# cobbler import --name=CentOS65 --path=/media/cdrom   (这里报了一个错误,需要重启一个cobblerd服务)   
  2. httpd does not appear to be running and proxying cobbler, or SELinux is in the way. Original traceback:   
  3. Traceback (most recent call last):   
  4.   File "/usr/lib/python2.6/site-packages/cobbler/cli.py", line 252, in check_setup   
  5.     s.ping()   
  6.   File "/usr/lib64/python2.6/xmlrpclib.py", line 1199, in __call__   
  7.     return self.__send(self.__name, args)   
  8.   File "/usr/lib64/python2.6/xmlrpclib.py", line 1489, in __request   
  9.     verbose=self.__verbose   
  10.   File "/usr/lib64/python2.6/xmlrpclib.py", line 1235, in request   
  11.     self.send_content(h, request_body)   
  12.   File "/usr/lib64/python2.6/xmlrpclib.py", line 1349, in send_content   
  13.     connection.endheaders()   
  14.   File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders   
  15.     self._send_output()   
  16.   File "/usr/lib64/python2.6/httplib.py", line 780, in _send_output   
  17.     self.send(msg)   
  18.   File "/usr/lib64/python2.6/httplib.py", line 739, in send   
  19.     self.connect()   
  20.   File "/usr/lib64/python2.6/httplib.py", line 720, in connect   
  21.     self.timeout)   
  22.   File "/usr/lib64/python2.6/socket.py", line 567, in create_connection   
  23.     raise error, msg   
  24. error: [Errno 111] Connection refused   
  25. [root@node1 cdrom]# service httpd start   
  26. Starting httpd:                                            [  OK  ]  

7、开始导入光盘镜像文件到本地,这里要花费好长时间,因为磁盘I/O读写压力太大。

  1. [root@node1 cdrom]# cobbler import --name=CentOS65 --path=/media/cdrom   
  2. task started: 2014-09-30_174204_import   
  3. task started (id=Media import, time=Tue Sep 30 17:42:04 2014)  

导入完成, 可以通过/var/www/cobbler/ks_mirror这个目录下找到与该路径相同的目录

通过cobbler distro list查看已经创建的distro

8、管理profile文件,并提供kickstart文件。

kickstart文件,本文中用修改过的/root/目录下的anaconda.cfg配置文件

仅需要修改这里,把url改到自己本机对应的提供的cobbler服务。

然后就是创建profile文件

  1. [root@node1 ks_mirror]# cobbler distro list   
  2.    CentOS65-x86_64   
  3. [root@node1 ks_mirror]# cobbler profile add --name=CenTos6.5-DIY --distro=CentOS65-x86_64 --kickstart=/root/anaconda-ks.cfg  

可以通过cobbler profile list来查看

至此就可以通过cobbler工作来给其他新主机配置系统,演示如下:

表面成功安装配置!

(ps:通过调整/var/lib/tftpboot/pxelinux.cfg/default里面可以调整pxe菜单界面)

下面介绍一下cobbler_web的应用,就是让cobbler通过web接口提供对新主机的操作系统安装。这里cobbler_web是需要认证的。本次演示使用的是authn_pam的方式、

1、先创建用户

  1. [root@node1 ~]# useradd cbadmin || echo 'cbadmin123' | passwd --stdin cbadmin   
  2. useradd: user 'cbadmin' already exists   
  3. Changing password for user cbadmin.   
  4. passwd: all authentication tokens updated successfully.  

2、编辑/etc/cobbler/users.conf文件,里面编辑

这里添加你曾经添加的用户名。

3、修改/etc/cobbler/module.conf文件,里面编辑

3、重新启动cobbler服务和重启http服务

  1. [root@node1 ~]# service cobblerd restart && service httpd restart   
  2. Stopping cobbler daemon:                                   [  OK  ]   
  3. Starting cobbler daemon:                                   [  OK  ]   
  4. Stopping httpd:                                            [FAILED]   
  5. Starting httpd:                                            [  OK  ]   
  6. [root@node1 ~]#  

4.效果:

需要pam认证.

标签:

给我留言