cobbler之自动化部署ubuntu14

概述   

本例主要实现通过cobbler,配合seed脚本文件,来自动化安装部署ubunut环境,并安装相应的软件并作相应的基本配置,可以通过此方法来为ceph等大规模集群基础部署。

seed文件:Debian ubuntu平台的一种自动化部署配置文件 和kickstart文件功能相同。其实ubuntu也可以使用ks文件,但是只能进行基本的环境配置,不能自定义包的安装和脚本的运行。

实验环境

    • cobbler-server: 1.1.1.122 centos7.2
    • ubuntu 客户端:kvm虚拟机

定义发行版Distro

  1. 导入外部安装源,如光盘导入本地会放在 /var/www/cobbler/ks_mirror 下,通过 http输出,假设这里已将ubuntu的安装光盘挂载到本地 的/mnt 下

    1. cobbler import --name="ubuntu14" --path=/mnt    【导入安装源】
      cobbler distro list 【查看已经存在的安装源】

建立更改配置文件profile

1.用于与相应的发行版联系起来,实现同一个发行版的不同安装选项,名称不要与 distro 相同。默认情况下,建立完成distro后会自动建立与之相关联的profile。如果想手动建立并且指定seed文件的话使用如下操作:

cobbler profile add --name=ubuntu14-x86_64 --distro=ubuntu14 --kickstart=/var/lib/cobbler/kickstarts/ubuntu.seed 【指定发行版为ubuntu14,并指定 seed文件的名称和位置, cobbler 的/var/lib/cobbler/kickstarts/目录下带了很多 kickstart和seed的文件模板

具体seed文件内容稍后会列出。当然这些操作可以在web UI界面下完成,也很直观。

2.查看现有的profile

cobbler profile list

添加安装节点System

主要功能就是可以根据节点mac地址,来识别不同节点的安装选项差异,如ip、dns、hostname等等。

cobbler system add --name=ceph-deploy --hostname=ceph-deploy.test.com --dns-name=ceph-deploy.test.com --profile=ubuntu14-x86_64 --interface=eth0 --mac= [mac地址] --ip-address=1.1.1.30 --subnet=255.255.255.0 --gateway=1.1.1.1 --static=1

这样当客户端通过pxe启动,检测到与之匹配的mac时候就会自动调取相应的system,安装过程中会给分配相应的地址等信息。如果不匹配启动就会出现cobbler默认的引导菜单界面。

PreSeed文件

这里列出了一个seed文件,一般情况下会适用于绝大多数ubuntu14的安装环境,但是某些情况也许有些特例,这方面seed不如ks兼容性那么好,不同的大版本直接也许会有差异。这里仅以14版本为例,12版本没有试过是否可用,由于本人对seed文件也是理解有限,所以仅供参考

#############
# 网络配置
#############

d-i netcfg/choose_interface select auto

#############
# Pre Install
############

# Command Line 1: This is necessary otherwise you will be prompted to umount /dev/sda. See Ubuntu bug #1347726.
d-i preseed/early_command string       umount /media || true
      
#############
# Net Image
#############

# 针对12.10以上的版本一定要配置这个
d-i live-installer/net-image string 

#############
#语言设置
#############
d-i debian-installer/locale string en
d-i debian-installer/country string CN
d-i debian-installer/locale string en_US.UTF-8
d-i debian-installer/language string en

#############
# 键盘设置
#############
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us
d-i console-setup/variantcode string
d-i keyboard-configuration/layoutcode string us

#############
# 安装源配置
#############
#安装源配置
d-i mirror/country string manual
d-i mirror/http/proxy string 1.1.1.122    #此处必须填写,否则安装system要等很久
d-i mirror/http/hostname string 1.1.1.122
d-i mirror/http/directory string /ubuntu/

#############
# APT 
############
#如不配置此项,在安装包的时候会卡住很久,但不影响最终安装结果
d-i apt-setup/security_host string 172.16.245.240
d-i apt-setup/security_path string /ubuntu

#############
#
# Clock and Time Zone
#
#############

d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string 1.1.1.1

d-i time/zone string Asia/Shanghai

d-i clock-setup/CST boolean true

#############
# Partitioning
#############

#清楚磁盘中所有的lvm分区
d-i partman-lvm/device_remove_lvm boolean true

# 清楚所有raid分区
d-i partman-md/device_remove_md boolean true

#使用磁盘进行普通分区
d-i partman-auto/method string  regular
d-i partman-auto/disk string /dev/vda    #kvm虚拟机中磁盘是vda,如果是真实机器则是sda

#预定义分区方式,每个分区在一行定义,以.结尾
#每组分区三个数字表示:最小分区多少MB,优先级(越小越优先),分区最大多少MB
d-i partman-auto/expert_recipe string                              boot-root ::                                                          150 150 150 ext4                                                       $primary{ } $bootable{ }                                      method{ format } format{ }                                    use_filesystem{ } filesystem{ ext4 }                          mountpoint{ /boot }                                   .                                                              8000  8000 8000 linux-swap                                                method{ swap } format{ }                              .                                                 
              204800 204800 204800 ext4                                             method{ format } format{ }                                    use_filesystem{ } filesystem{ ext4 }                          mountpoint{ / }                                       .
              
d-i partman-partitioning/confirm_write_new_label boolean true #不提示写入fenqu信息到磁盘
d-i partman/choose_partition select finish 
d-i partman/confirm boolean true 
d-i partman/confirm_nooverwrite boolean true #不提示覆盖磁盘中已有数据
#############
# Packages
#############

# 这里目前我只能选择包组,没法制定具体某个安装包,不知道具体为什么。
tasksel tasksel/first multiselect openssh-server

# 禁止安装时自动更新
d-i pkgsel/upgrade select none

d-i pkgsel/update-policy select none

popularity-contest popularity-contest/participate boolean false

#############
# Users and Password
#############

#允许使用root登录
d-i passwd/root-login boolean true

# 不建立其他用户
d-i passwd/make-user boolean false
#允许使用弱密码
d-i user-setup/allow-password-weak boolean true

#配置root密码,通过mkpasswd程序生成
d-i passwd/root-password-crypted password $1$RsMBi5P0$bWmhi.I4MnZPmWFXpBEy0/

#############
# Bootloader
#############
d-i grub-installer/only_debian boolean true
d-i finish-install/reboot_in_progress note    #安装完成后重启

#############
# 安装完成后执行脚本和命令
#############

#所有命令通过;分隔,如果使用一般命令可以直接执行,但此时真正的系统正被挂在载/target/下面,因此最终执行的目标是/target/下,如果想使用系统级的命令,如执行脚本等。需要通过chroor 到/target下,以target为根 才能正常执行,否则报错。
#第一个命令是修改ssh配置文件,使其允许root登录
#第二个命令是下载soures.list,该文件实现定义内部的apt源。
#第三个命令是去掉cobbler中system的自动引导,否则下次重启系统还会重新安装。
#第四个命令是下载并执行一个脚本,实现公钥注入功能。
#第五个命令是更新apt源,并安装指定的软件包。
#第六个命令则修改puppet配置文件和chrony时间服务的配置文件。
d-i preseed/late_command string         sed -i ‘/PermitRootLogin / s/ .*/ yes/‘ /target/etc/ssh/sshd_config;         wget http://$http_server/cobbler/repo_mirror/trusty-sources.list -O /target/etc/a        pt/sources.list;         wget http://$http_server/cblr/svc/op/nopxe/system/$system_name -O /dev/null;         cd /target;         wget http://$http_server/cobbler/svc/public_key.sh; chmod +x ./public_key.sh; chr        oot ./ ./public_key.sh;         chroot ./ apt-get update;         chroot ./ apt-get install -y --force-yes vim chrony puppet;         cd - ;         sed -i ‘8 s/^.*/server=puppet-server.chinergy.com.cn/‘ /target/etc/puppet/puppet.        conf; sed -i ‘4 s/^.*/server 1.1.1.1 iburst/‘ /target/etc/chrony/chrony.conf

公钥注入脚本内容

mkdir /root/.ssh

cat >> /root/.ssh/authorized_keys << PUPPET
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCk0cgPsrcwvIKBe+Y4sDMtcriNkxgLvXDTJhi1M4v+HvUF0VUO7DmjESfcUcpJVRn09O8erYcPy548b/mJBoy0zfp16+5mGw6y9NH/VHToxfqkA1nAdBKQRih7CHv40iO7cFxFBnDcL+5nTyHzHAbPx4TZ5QwsWGNPnL8yMFyeX2dxP64woiwVIcKo2yoVockyyiGkgiOb6vc6ZK6XKR1LjhAr1ESAAYBzSKNCNak8qrf4tuCvVI++qnl9GiiLJ+OatTNOLId3umz5+J5/hRfHhxNzR7P0q/fJBQOvgtBqXaldJFYM6zr679dB4niMuObXphVuOVGfQDDOK7w/ [email protected]

PUPPET

总结

    个人感觉ubuntu的seed文件较ks更为复杂一些,而且更容易出错,很详细的说明文档也很少,所以在自己的环境中不断的试验修改,最后达到适合自己环境的版本。目前还不知道在post脚本阶段怎么成功引用snippets变量,试了很多方式都会报错,因此干脆就用执行脚本替代了。

时间: 2024-10-06 18:52:55

cobbler之自动化部署ubuntu14的相关文章

cobbler 批量自动化部署 Linux 系统

实验介绍:Cobbler自动化部署linux系统,比PXE部署方式效率更高,因此在大多环境中,以cobbler 方式部署系统,更为方便:具体步骤如下所示: 若描述有误欢迎拍砖交流QQ:45223208 1.安装cobbler 和 DHCP服务: yum install cobbler -y yum install dhcp -y 2. 启动服务 systemctl start cobbler tftp httpd systemctl enable cobbler tftp httpd 3. 根据

解放劳动力—Cobbler批量自动化部署多版本系统

1 Cobbler  介绍 Cobbler 是一个 Linux 服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理 DHCP,DNS 等.Cobbler 可以使用命令行方式管理,也提供了基于 Web 的界面管理工具(cobbler-web),还提供了API 接口,可以方便二次开发使用.Cobbler 是较早前的 kickstart 的升级版,优点是比较容易配置,还自带 web 界面比较易于管理.Cobbler 内置了一个轻量级配置管理系统,但它也

自动化部署之cobbler的安装

概述  cobbler 作为物理机操作系统批量部署工具,应用非常广泛,可以实现从系统安装到 配置几乎无认为干涉的全自动化部署,他使用 dnsmasq 作为内部的 dhcp 和 dns 服 务器.可以自定义其 snippets 脚本来实现更复杂的安装配置操作.而且他支持 web ui 来进行配置.其核心组件主要有: Distros:定义Linux发行版 Profiles:安装组合配置文件,即可以通过前两者和不同 kickstart 或seed文件的组合,来部署具有不同功能的 linux 服务器.

cobbler自动化部署指南

文章结构 1. 前言 2. cobbler安装 3. 系统定制 4. 参考链接 前言: 给电脑装过系统的同学都知道,不论是从U盘.光驱或者其他设备装系统,都需要先在BIOS里设置开机启动项(或用开机快捷键设置).从上大学到现在,我帮同学装系统少说也有上百次,但是还从来没有使用从网卡启动安装过,虽然以前也注意到,但一直不知道那是个什么玩意,见图(1).前段时间在实习公司做Openstack的自动化安装与部署工作,才有幸接触到,原来这是一种从网卡远程启动的技术! 图1 BIOS启动项界面 要从网卡启

Cobbler自动化部署最佳实践

第1章 Cobbler自动化部署最佳实践 运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统,如果不通过自动化来完成,根本是不可想象的. 面对生产环境中不同服务器的需求,该如何实现批量部署多版本的操作系统呢?Cobbler便可以的满足这一实际需求,实现多版本操作系统批量部署. 笔者QQ:572891887 Linux架构交流群:471443208 1.1 Cobbler简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整

Cobbler实现自动化批量安装Linux系统系列一:安装先决性组件篇

随着经历的企业越来越多,服务器规划.实施及运维工作也越来越多,有时会发现,其实做为一名IT人,我们总是有些局限,尤其是在对企业IT结构规划时,由于只局限于对一种分支产品的特性了解,当所熟悉的产品不能胜任现有平台时,我们总会感觉有一些无奈,比如微软的MDT.WDS及SCCM,实话说挺不错的,但至少也只是在微软平台操作系统的部署上,当我们遇到在业务网运维平台中以Linux为主的环境时,大批量部署Linux,这时对于微软的这些部署产品可能就不能像在微软产品范围中那样如龙得水般了,这时我们也就真正理解了

实战:Cobbler 无人值守自动部署系统

背景: 装系统相信大家都不陌生,对于运维攻城狮可以说是家常便饭,老大说:小刘今天装一下系统,明天把那几台机器系统重装一下.就这样一上午,一天就这么过去了.耗时费力不说,重点是没有效率,没错这就是我的痛点.一个好的运维工作时间清闲才说明你的工作做到位了.万一某天说小刘把100个新机器装一下系统...该如何彻底解放双手呢? 今天我们介绍一款无人值守自动化部署系统的软件Cobbler,真正是实现从机器上架,插上网线一切都交给Cobbler来完成 简介: 先介绍下Cobbler(补鞋匠),根据其名称可想

Cobbler 全自动化安装、简介、Web界面管理【附送源码包】

Cobbler简介 Cobbler这个英文翻译过来的意思是补鞋匠,为什么会是补鞋匠的意思,很简单,因为它简单得连补鞋匠都能学会安装系统. Cobbler通过将部署系统所涉及的所有服务集中在一起,来提供一个全自动批量快速建立Linux系统的网络安装环境. 在学习Cobbler之前可以看看PXE无人值守安装系统. Cobbler特点: ·Cobbler支持多种Linux操作系统得快速部署,对PXE.DHCP.HTTP.TFTP.Kiskstart.YUM仓库.电源等进行统一管理 ·Cobbler提供

Cobbler+preseed自动化安装Ubuntu18/19系统

说明: #Cobbler 部署不在详细说明 # Ubuntu版本: 18.04.3 及19.10 # 测试机器: kvm 虚拟机 # 测试ip:192.168.3.63 #使用vnc 进行连接操作 cobbler distro 添加Ubuntu 最新系统支持 cp /var/lib/cobbler/distro_signatures.json /var/lib/cobbler/distro_signatures.json.bak vi /var/lib/cobbler/distro_signat