XenServer 自动化布署 (关键词: PXE ANSWER SCRIPT)
XenServer 6.x PXE自动化布署:
测试环境:win10 + Tiny pxe server 1.0.2,采用gpxelinux.0
时间:2017.1.10
PXE远程安装:
1)default文件:从光盘的/boot/isolinux下,取得isolinux.cfg文件,做为default文件的蓝本,然后,修改下面几项
。文件路径:按照实际情况修改
。修改第一行default选项(默认是DEFAULT install),改为menu.c32,以便可以看到菜单,否则看不到。当然不改也不影响。
。如果要实现自动化布署,需要在console后面,增加两项:一项是脚本地址,另一个是关键词 install(如果漏了这个,安装时,你会看到读取到了http指定的脚本,但是就不自动执行)
。有些第三方分支系统,可能要放弃gpt模式,也在这里增加。root_size有些也需要由2G改为4G(改不改好象都是4G)
DEFAULT menu.c32
PROMPT
TIMEOUT
DISPLAY pg_main
F1 pg_main
F2 pg_help LABEL install
KERNEL /xen/boot/isolinux/mboot.c32
APPEND /xen/boot/xen.gz dom0_max_vcpus=- dom0_mem=752M,max:752M com1=,8n1 console=com1,vga --- /xen/boot/vmlinuz xencons=hvc console=hvc0 console=tty0 disable-gpt root_size= answerfile=http://192.168.200.1/answerfile install --- /xen/install.img
2)启动后,PXE CLIENT读取default文件,就开始安装,并读取自动应答文件answerfile,功能与kisckstart一样,但语法完全不同。
<?xml version="1.0"?>
<installation>
<keymap>us</keymap>
<primary-disk gueststorage="no">sda</primary-disk>
<root-password>123456a?</root-password>
<source type="url">http://192.168.200.1/xen/</source>
<script stage="filesystem-populated" type="url">http://192.168.200.1/lx0.sh</script>
<admin-interface name="eth0" proto="dhcp" />
<timezone>Etc/UTC</timezone>
</installation>
还可能增加很多内容,可以百度。这个脚本不能象esxi的ks文件一样,具有pre-install, post-install, firtboot-install几个阶段写在同一个文件中的功能。因此,需要分开写。
系统安装完成后,根系统已经安装完成,开始启动之前,执行一个脚本lx0.sh。这是一个标准LINUX脚本,相当于postInstall。网上可以查到几个阶段的意义:filesystem-populated就是安装完成后,第一次重启前执行的。
看一下lx0.sh
#!/bin/sh
#lx.sh--> firstboot-script.sh
#hostlist: ip <---> name , host new name file, firstBootScript will change host name via the file.
#
# By Peter Hu
# 2017.1. touch $/tmp/post-executed
rm -f $/tmp/first-boot-script.sh
rm -f $/tmp/hostlist wget http://192.168.200.1/lx.sh -O $1/tmp/first-boot-script.sh
wget http://192.168.200.1/hostlist -O $1/tmp/hostlist
chmod $/tmp/first-boot-script.sh
ln -s /tmp/first-boot-script.sh $/etc/rc3.d/S99zzpostinstall
这个脚本执行时,目标系统其实被安装完了,但还没有启动,还处在虚拟根系统状态。有些配置需要XEN真正启动后才能执行。因此,这个脚本的目的,就是将XEN启动后,需要执行的脚本下载下来,并让其在机器重启完成后能执行一次脚本。first-boot-script.sh就是机器启动后要执行的脚本。(hostlist文件是供lx.sh使用的一个文件)
lx0.sh执行完成后,系统自动启动,启动成功后,会执行lx0.sh安装的lx.sh文件,这个文件就是完成配置的工作。
#!/bin/bash
#
# This script support inspurCloud .x,xenserver .x
#
# By Peter Hu, QQ
# 2017.1.
#
# You should change following parameters:
# ) MGMTDEV="eth0" ; your management NIC name
# ) It should read new hostname from file /tmp/hostlist
#--------------------------------------------------------- #Set ip address via DHCP
#----------------------------------------------
MGMTDEV="eth0" MGMTUUID=$(xe pif-list device=$MGMTDEV --minimal) IPADDR=$(xe pif-param-list uuid=$MGMTUUID | grep "IP ( RO)" | awk -F: '{print $2}' )
NETMASK=$(xe pif-param-list uuid=$MGMTUUID | grep "netmask ( RO)" | awk -F: '{print $2}')
GATEWAY=$(xe pif-param-list uuid=$MGMTUUID | grep "gateway ( RO)" | awk -F: '{print $2}')
IPADDR=$(echo $IPADDR | tr -d '\n')
NETMASK=$(echo $NETMASK | tr -d '\n')
GATEWAY=$(echo $GATEWAY | tr -d '\n') xe pif-reconfigure-ip mode=static uuid=$MGMTUUID IP=$IPADDR netmask=$NETMASK gateway=$GATEWAY #Change HOSTNAME
#----------------------------------------------
if [ -f "/tmp/hostlist" ]; then
HOSTNEWNAME=$( cat /tmp/hostlist | grep $IPADDR | awk '{print $2}' | tr -d '\n')
HOSTUUID=$(xe host-list --minimal)
xe host-set-hostname-live host-uuid=$HOSTUUID host-name="$HOSTNEWNAME"
xe host-param-set uuid=$HOSTUUID name-label="$HOSTNEWNAME"
fi #First boot script finished, remove it
#---------------------------------------------
rm -f /etc/rc3.d/S99zzpostinstall
这个脚本的功能是:读取DHCP得到的IP地址信息,并设成静态。动态获取的DNS不用管,静态IP后自动转成静态。
然后,根据IP地直址,推导出主机名。
hostlist文件内容如下:
192.168.200.1 name1
192.168.200.2 name2
192.168.200.3 name3
192.168.200.144 name-
192.168.200.244 name-
以上文件,实验时,除了default外,全部采用unix格式,好象utf-8或ansi都可以。
XenServer 自动化布署 (关键词: PXE ANSWER SCRIPT)的更多相关文章
- Dokuwiki布署小记
最近个人写作风格全面转向Markdown模式,但之前使用的Mediawiki并未原生支持,且本人在布署时为了实现其所见即所得的方案和别的一些个性化需求,添加了太多插件和自定义设置,两年多过去了,很多设 ...
- 通过Jenkins在IIS上布署站点
当需要在多台服务器的IIS上布署站点时,如果纯粹靠人工手动完成此任务的话,过于低效,而借助Jenkins之类的自动化工具,则可以极大提升工作效率. 以下便是Jenkins Pipeline所使用的脚本 ...
- openstack私有云布署实践【9.3 主从controller单向同步glance-image目录】
采用Rysnc单向同步,而不用双方实时同步,原因是在历史的运行过程中,我们发现,有些镜像包太大,当在主用的glance将镜像保存时,并不是一时半会就把镜像保存好,当主用在保存时,备用节点又在实时同步那 ...
- 布署配置管理中心apollo
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景. 服 ...
- Ubuntu16.04下KeepAlived+Nginx 布署
前言 网上已经有很多相关文章,对各种概念介绍的比较清楚,也有各种详细的步骤,这里主要记录本要在ubuntu16.04下的布署过程,主要记录编译安装keepalived时遇到的坑及解决办 ...
- 第一篇【Zabbix服务端的完整布署】
1.环境准备 服务器版本: [root@filestore-v2 ~]# cat /etc/redhat-release CentOS Linux release (Core) 内核版本: [root ...
- 第二篇【Zabbix客户端的完整布署】
关于Zabbix服务端布署请查看 1.上传zabbix安装包(源码包默认(Server和Agent是一起的)) [root@sms-v2 ~]# ll /root/ -rw-r--r-- root r ...
- Ubuntu 16.04环境布署小记
本系列文章记录了升级Ubuntu 16.04的布署过程 回到目录 10. 安装Mono, Xsp 当前版本16.04.1的系统源的Mono版本为4.2.1,如需使用最新版本(本文书写时稳定版本为4.6 ...
- Ubuntu 16.04系统布署小记
前段时间趁着双11打折,又将阿里云主机续费了3年.之前布署的系统是Ubuntu 12.04,从系统发布到现在也有四年半了,其官方支持的生命周期也将止于明年春,且这在几年里出现了很多新的事物,我也需要跟 ...
随机推荐
- react --- 搭建环境
搭建react开发环境的准备工作 1. node.js 稳定版本 2. 安装cnpm,用cnpm代替npm 3. 用yarn替代npm yarn的安装:npm install -g yarn 搭建re ...
- rsync如何不指定密码文件
平时用rsync做数据同步时,都是通过--password-file指定一个密码文件 这个密码文件权限要求比较高,一般是600,属主属组都是rsync命令执行者 如果是在脚本中执行rsync,比如定时 ...
- MyElasticsearch
目录 那些必须要知道的事儿 搭建elasticsearch环境 快速上手 elasticsearch分析数据的过程漫谈 建议器:Suggester IK中文分词器 elasticsearch for ...
- Eclipse如何导入maven项目,以及配置maven
Eclipse如何导入maven项目,以及配置maven 一.准备工作 1. eclipse,安装了eclipse 2. 一个需要导入的maven项目 3. 下载好了的压缩包apache-maven- ...
- MSSQL 漏洞利用与提权
1.SA口令的获取 webshell或源代码的获取 源代码泄露 嗅探(用CAIN等工具嗅探1433数据库端口) 口令暴力破解 2.常见SQL server 提权命令 查看数据库的版本(select @ ...
- [pycocotools修改]cocoeval.py
__author__ = 'tsungyi' import numpy as np import datetime import time from collections import defaul ...
- linux coredump开启
1. ulimit -c unlimited //不限制core文件的大小 2. echo '/tmp/core.%e.%p.%t' > /proc/sys/kernel/core_patt ...
- java基础之集合框架--使用ArrayList类动态 存储数据
一.ArrayList是List接口下的一个实现类,实现了长度可变的.连续的数组:拥有数组的特性. 遵循了LIst的规则:不唯一的.有序的. 如果没有增加泛型的话,集合中可以添加任何类型的数据. 使用 ...
- vue--简化项目逻辑属性
computed属性对数据变化是实时响应的 因此当项目中某个数值发生变化,并且要在别的地方引用这个数值时,computed即可派上用场 来看一个例子: html部分: <div id=" ...
- 实验十一 团队项目设计完善&编码测试
任务一: 根据OOD详细设计工作要点,修改完善团队项目系统设计说明书和详细设计说明,将完善后内容以<XX团队项目软件设计方案>为名发布在团队博客中,博文中要突出对完善内容的陈述说明,修改部 ...