参考链接:
http://blog.csdn.net/gcogle/article/details/52767135
http://tlinux.blog.51cto.com/7288656/1749749/
http://blog.csdn.net/coolper/article/details/51279328
https://github.com/dl528888/oz_create_openstack_image_templates
http://lm3810.blog.51cto.com/846925/1860546/
http://www.linuxidc.com/Linux/2017-10/147477.htm
<template> <name>qemu-ubuntu1204</name> <os> <name>Ubuntu</name> <version>12.04</version> <arch>x86_64</arch> <install type='iso'> <iso>file:///data/md0/iso/ubuntu-12.04.5-server-amd64.iso</iso> </install> <rootpw>123123</rootpw> </os> <disk> <size>20</size> </disk> <description>Ubuntu 12.04 x86_64</description> <commands> <command name='install_qga'> cd /root tar xf qga.20171124.tar.gz cd qga bash -x ./install_qga_local.sh </command> <command name='console'> sed -i 's/splash//g' /etc/default/grub sed -i 's/quiet/console=ttyS0/g' /etc/default/grub /usr/sbin/update-grub </command> <command name='packages'> rm -rf /etc/apt/sources.list mv /root/sources.list /etc/apt/ rm -rf /var/lib/apt/lists/* apt-get clean apt-get update apt-get -y upgrade apt-get -y install acpid apt-get -y install landscape-common apt-get -y install update-notifier-common apt-get -y install sysv-rc-conf apt-get -y install network-manager apt-get -y install cloud-init-* apt-get -y install cloud-utils-growpart </command> <command name='modify'> echo -n > /etc/udev/rules.d/70-persistent-net.rules echo -n > /lib/udev/rules.d/75-persistent-net-generator.rules sed -i '/exit 0/d' /etc/rc.local echo "/usr/local/bin/nic_set_mq.sh > /tmp/nic_set_mq.log 2>&1" >> /etc/rc.local echo "exit 0">>/etc/rc.local echo 'blacklist intel_rapl' >> /etc/modprobe.d/modprobe.conf chmod +x /var/lib/cloud/scripts/per-boot/resetroot chmod +x /usr/local/bin/nic_set_mq.sh chmod +x /var/lib/cloud/scripts/per-instance/ssh.sh chmod +x /etc/rc.local rm -rf /etc/cloud/cloud.cfg rm -rf /etc/cloud/cloud.cfg.d/90_dpkg.cfg mv /root/cloud.cfg /etc/cloud/ mv /root/90_dpkg.cfg /etc/cloud/cloud.cfg.d/ cat >> /usr/local/bin/instance_init.sh << EOF if [ ! -d /root/.ssh ]; then mkdir -p /root/.ssh chmod 700 /root/.ssh fi </command> <command name='services'> apt-get -y upgrade sysv-rc-conf acpid on sysv-rc-conf ufw off sysv-rc-conf network-manager on sysv-rc-conf cloud-init on sysv-rc-conf cloud-config on sysv-rc-conf cloud-final on sysv-rc-conf cloud-init-local on sysv-rc-conf qemu-guest-agent on </command> <command name='clear-logs'> rm -rf /root/* rm -rf /var/log/alternatives.log rm -rf /var/log/auth.log rm -rf /var/log/dpkg.log rm -rf /var/log/fontconfig.log rm -rf /var/log/boot.log rm -rf /var/log/syslog rm -rf /var/log/kern.log rm -rf /var/log/cloud-init.log rm -rf /var/log/cloud-init-output.log rm -rf /var/log/btmp rm -rf /var/log/wtmp rm -rf /var/log/yum.log rm -rf /var/log/lastlog rm -rf /var/log/installer/ rm -rf /var/log/apt/ rm -rf /var/lib/apt/lists/* </command> </commands> <files> <file name="/root/qga.20171124.tar.gz" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/qga.20171124.tar.gz </file> <file name="/var/lib/cloud/scripts/per-boot/resetroot" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/resetroot </file> <file name="/root/cloud.cfg" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/cloud.cfg_u1204 </file> <file name="/usr/local/bin/nic_set_mq.sh" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/nic_set_mq.sh </file> <file name="/var/lib/cloud/scripts/per-instance/ssh.sh" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/ssh-ubuntu1204.sh </file> <file name="/root/sources.list" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/sources.cn.ubuntu.p.list </file> <file name="/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/99-disable-network-config.cfg </file> <file name="/root/90_dpkg.cfg" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/90_dpkg.cfg_u1204 </file> <file name="/etc/default/grub" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/grub_ubuntu </file> </files> </template>
<template> <name>qemu-ubuntu1404</name> <os> <name>Ubuntu</name> <version>14.04</version> <arch>x86_64</arch> <install type='iso'> <iso>file:///data/md0/iso/ubuntu-14.04.5-server-amd64.iso</iso> </install> <rootpw>123123</rootpw> </os> <disk> <size>20</size> </disk> <description>Ubuntu 14.04 x86_64</description> <commands> <command name='install_qga'> cd /root tar xf qga.20171124.tar.gz cd qga bash -x ./install_qga_local.sh </command> <command name='console'> sed -i 's/splash//g' /etc/default/grub sed -i 's/quiet/console=ttyS0/g' /etc/default/grub /usr/sbin/update-grub </command> <command name='packages'> rm -rf /etc/apt/sources.list mv /root/sources.list /etc/apt/ rm -rf /var/lib/apt/lists/* apt-get clean apt-get update apt-get -y upgrade apt-get -y install landscape-common apt-get -y install update-notifier-common apt-get -y install acpid apt-get -y install sysv-rc-conf apt-get -y install network-manager apt-get -y install cloud-init-* apt-get -y install cloud-utils-growpart </command> <command name='modify'> echo -n > /etc/udev/rules.d/70-persistent-net.rules echo -n > /lib/udev/rules.d/75-persistent-net-generator.rules sed -i '/exit 0/d' /etc/rc.local echo "/usr/local/bin/nic_set_mq.sh > /tmp/nic_set_mq.log 2>&1" >> /etc/rc.local echo "exit 0">>/etc/rc.local echo 'blacklist intel_rapl' >> /etc/modprobe.d/modprobe.conf chmod +x /var/lib/cloud/scripts/per-boot/resetroot chmod +x /usr/local/bin/nic_set_mq.sh chmod +x /var/lib/cloud/scripts/per-instance/ssh.sh chmod +x /etc/rc.local rm -rf /etc/cloud/cloud.cfg rm -rf /etc/cloud/cloud.cfg.d/90_dpkg.cfg mv /root/cloud.cfg /etc/cloud/ mv /root/90_dpkg.cfg /etc/cloud/cloud.cfg.d/ cat >> /usr/local/bin/instance_init.sh << EOF if [ ! -d /root/.ssh ]; then mkdir -p /root/.ssh chmod 700 /root/.ssh fi </command> <command name='services'> apt-get -y upgrade sysv-rc-conf acpid on sysv-rc-conf ufw off sysv-rc-conf qemu-guest-agent on sysv-rc-conf network-manager on sysv-rc-conf cloud-init on sysv-rc-conf cloud-config on sysv-rc-conf cloud-final on sysv-rc-conf cloud-init-local on </command> <command name='clear-logs'> rm -rf /root/* rm -rf /var/log/alternatives.log rm -rf /var/log/auth.log rm -rf /var/log/dpkg.log rm -rf /var/log/fontconfig.log rm -rf /var/log/boot.log rm -rf /var/log/syslog rm -rf /var/log/kern.log rm -rf /var/log/cloud-init.log rm -rf /var/log/cloud-init-output.log rm -rf /var/log/btmp rm -rf /var/log/wtmp rm -rf /var/log/yum.log rm -rf /var/log/lastlog rm -rf /var/log/installer/ rm -rf /var/log/apt/ rm -rf /var/lib/apt/lists/* </command> </commands> <files> <file name="/root/qga.20171124.tar.gz" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/qga.20171124.tar.gz </file> <file name="/var/lib/cloud/scripts/per-boot/resetroot" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/resetroot </file> <file name="/root/cloud.cfg" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/cloud.cfg_u1404 </file> <file name="/usr/local/bin/nic_set_mq.sh" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/nic_set_mq.sh </file> <file name="/var/lib/cloud/scripts/per-instance/ssh.sh" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/ssh-ubuntu1404.sh </file> <file name="/root/sources.list" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/sources.cn.ubuntu.t.list </file> <file name="/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/99-disable-network-config.cfg </file> <file name="/root/90_dpkg.cfg" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/90_dpkg.cfg_u1404 </file> <file name="/etc/default/grub" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/grub_ubuntu </file> </files> </template>
<template> <name>qemu-ubuntu1604</name> <os> <name>Ubuntu</name> <version>16.04</version> <arch>x86_64</arch> <install type='iso'> <iso>file:///data/md0/iso/ubuntu-16.04.3-server-amd64.iso</iso> </install> <rootpw>123123</rootpw> </os> <disk> <size>20</size> </disk> <description>Ubuntu 16.04 x86_64</description> <commands> <command name='install_qga'> cd /root tar xf qga.20171124.tar.gz cd qga bash -x ./install_qga_local.sh </command> <command name='console'> sed -i 's/splash//g' /etc/default/grub sed -i 's/quiet/console=ttyS0/g' /etc/default/grub /usr/sbin/update-grub </command> <command name='packages'> rm -rf /etc/apt/sources.list mv /root/sources.list /etc/apt/ rm -rf /var/lib/apt/lists/* apt-get clean apt-get update apt-get -y upgrade apt-get -y install landscape-common apt-get -y install update-notifier-common apt-get -y install sysv-rc-conf apt-get -y install acpid apt-get -y install network-manager apt-get -y install cloud-init-* apt-get -y install cloud-utils-growpart </command> <command name='modify'> echo -n > /etc/udev/rules.d/70-persistent-net.rules echo -n > /lib/udev/rules.d/75-persistent-net-generator.rules sed -i '/exit 0/d' /etc/rc.local echo "/usr/local/bin/nic_set_mq.sh > /tmp/nic_set_mq.log 2>&1" >> /etc/rc.local echo "exit 0">>/etc/rc.local echo 'blacklist intel_rapl' >> /etc/modprobe.d/modprobe.conf chmod +x /var/lib/cloud/scripts/per-boot/resetroot chmod +x /usr/local/bin/nic_set_mq.sh chmod +x /var/lib/cloud/scripts/per-instance/ssh.sh chmod +x /etc/rc.local rm -rf /etc/cloud/cloud.cfg rm -rf /etc/cloud/cloud.cfg.d/90_dpkg.cfg mv /root/cloud.cfg /etc/cloud/ mv /root/90_dpkg.cfg /etc/cloud/cloud.cfg.d/ touch /var/lib/cloud/instance/warnings/.skip cat >> /usr/local/bin/instance_init.sh << EOF if [ ! -d /root/.ssh ]; then mkdir -p /root/.ssh chmod 700 /root/.ssh fi </command> <command name='services'> apt-get -y upgrade update-rc.d ufw disable update-rc.d qemu-guest-agent defaults update-rc.d network-manager defaults systemctl enable acpid systemctl enable cloud-init systemctl enable cloud-config systemctl enable cloud-final systemctl enable cloud-init-local </command> <command name='clear-logs'> rm -rf /root/* rm -rf /var/log/alternatives.log rm -rf /var/log/auth.log rm -rf /var/log/dpkg.log rm -rf /var/log/fontconfig.log rm -rf /var/log/boot.log rm -rf /var/log/syslog rm -rf /var/log/kern.log rm -rf /var/log/cloud-init.log rm -rf /var/log/cloud-init-output.log rm -rf /var/log/btmp rm -rf /var/log/wtmp rm -rf /var/log/yum.log rm -rf /var/log/lastlog rm -rf /var/log/installer/ rm -rf /var/log/apt/ rm -rf /var/lib/apt/lists/* </command> </commands> <files> <file name="/root/qga.20171124.tar.gz" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/qga.20171124.tar.gz </file> <file name="/var/lib/cloud/scripts/per-boot/resetroot" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/resetroot </file> <file name="/root/cloud.cfg" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/cloud.cfg_u1604 </file> <file name="/usr/local/bin/nic_set_mq.sh" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/nic_set_mq.sh </file> <file name="/var/lib/cloud/scripts/per-instance/ssh.sh" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/ssh-ubuntu1604.sh </file> <file name="/root/sources.list" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/sources.cn.ubuntu.x.list </file> <file name="/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/99-disable-network-config.cfg </file> <file name="/root/90_dpkg.cfg" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/90_dpkg.cfg_u1604 </file> <file name="/etc/default/grub" type="url"> file:///data/nvme0n1/OZ-build-image/scripts/grub_ubuntu </file> </files> </template>
d-i debian-installer/locale string en_US
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
d-i netcfg/wireless_wep string
d-i clock-setup/utc boolean true
d-i time/zone string Asia/Shanghai
d-i partman-auto/disk string /dev/vda
d-i partman-auto/method string regular
d-i partman-auto/expert_recipe string root :: 2048 50 1000000 ext4 \
$primary{ } $bootable{ } method{ format } \
format{ } use_filesystem{ } filesystem{ ext4 } \
mountpoint{ / } \
.
d-i partman-auto/choose_recipe select root
d-i partman-auto/confirm boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select Finish partitioning and write changes to disk
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i partman-basicfilesystems/no_swap boolean false
d-i partman-partitioning/default_label select msdos
d-i passwd/root-login boolean true
d-i passwd/make-user boolean false
d-i passwd/root-password password Ct@2017Yun!@$%.CN
d-i passwd/root-password-again password Ct@2017Yun!@$%.CN
tasksel tasksel/first multiselect standard
d-i pkgsel/include/install-recommends boolean true
d-i pkgsel/include string openssh-server curl
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i apt-setup/security_host string
base-config apt-setup/security-updates boolean false
ubiquity ubiquity/summary note
ubiquity ubiquity/reboot boolean true
d-i finish-install/reboot_in_progress note
但谈何容易。