天天看點

openstack 之 freebsd鏡像制作

    與windows鏡像制作思路一樣,本文參考了openstack官網juno版本的《image-guide》。鏡像制作主要分3步:

    1、建立虛拟磁盤,主要需要關注的是虛拟磁盤格式;

    2、通過虛拟機管理軟體或者遠端桌面接入到虛拟機在第1步建立的虛拟磁盤上安裝作業系統;主要關注虛拟機的IO驅動,同時,遠端桌面的操作可能會遇見一些問題,比如鍵盤模式。

    3、在第2步的基礎上安裝雲初始化軟體bsd-cloudinit-installer。注意安裝完成後,關閉虛拟機,保護好現場,不要啟動虛拟機。

    下面分别介紹:

一、建立虛拟磁盤:

<code>qemu-img create -f qcow2 freebsd.qcow2 100G</code>

    具體大小可以根據自己的需求進行調整,這裡是100G。

二、通過虛拟機管理軟體遠端桌面接入到虛拟機安裝作業系統:

    首先下載下傳FREEBSD作業系統的安裝媒體,我這裡采用的是網上安裝版本:

<code>curl </code><code>ftp</code><code>:</code><code>//ftp</code><code>.freebsd.org</code><code>/pub/FreeBSD/releases</code><code>\</code>

<code>/amd64/amd64/ISO-IMAGES/10</code><code>.0</code><code>/FreeBSD-10</code><code>.0-RELEASE-amd64-bootonly.iso &gt;\</code>

<code>FreeBSD-10.0-RELEASE-amd64-bootonly.iso</code>

    接下來通過kvm虛拟機安裝工具指令qemu-kvm 進行安裝:

<code>qemu-kvm -smp 1 -m 2048 -cdrom </code><code>/data/iso/FreeBSD-10</code><code>.0-RELEASE-amd64-bootonly.iso \</code>

<code>-drive </code><code>if</code><code>=virtio,</code><code>file</code><code>=</code><code>/data/img/freebsd</code><code>.qcow2 \</code>

<code>-net nic,model=virtio -net user -k en-us</code>

    注意上面的參數-k en-us,官網文檔中是沒有的,如果沒有這個參數,鍵盤輸入會碰到問題。其它參數的含義可以通過qemu-kvm -h進行參考。

    在圖形界面,選擇install,下載下傳安裝,注意選擇china的鏡像源位址,否則速度很慢。

    注意,這裡很重要,安裝過程增加新使用者,并且将新使用者加入wheel組,否則不能使用su。

    安裝完成後,修改  /etc/ssh/sshd_config 中的參數:PasswordAuthentication yes

    生成sshkey,啟動sshd:

<code>ssh</code><code>-keygen</code>

<code>service sshd start</code>

三、安裝配置雲計算初始化軟體openstack-cloud 

<code>echo</code> <code>'console="comconsole,vidconsole"'</code> <code>&gt;&gt; </code><code>/boot/loader</code><code>.conf</code>

<code>echo</code> <code>'autoboot_delay="1"'</code> <code>&gt;&gt; </code><code>/boot/loader</code><code>.conf</code>

<code>pkg </code><code>install</code> <code>ca_root_nss</code>

<code>fetch --ca-cert=</code><code>/usr/local/share/certs/ca-root-nss</code><code>.crt \</code>

<code>https:</code><code>//raw</code><code>.github.com</code><code>/pellaeon/bsd-cloudinit-installer/master/</code>

<code>installer.sh</code>

<code>sh .</code><code>/installer</code><code>.sh</code>

    安裝配置sudo:

<code>pkg </code><code>install</code> <code>sudo</code>

<code>echo</code> <code>'freebsd ALL=(ALL) NOPASSWD: ALL'</code> <code>&gt; </code><code>/usr/local/etc/sudoers</code><code>.d</code><code>/10-cloudinit</code>

    注意,将上面增加的其他使用者也加入到上面,比如:

    yourname ALL=(ALL) NOPASSWD: ALL

    其中上面的yourname修改為你自己想新增的使用者名。

    關機:

<code>    </code><code>shutdown</code> <code>-h now</code>

    最後,上傳鏡像:

<code>glance image-create --name freebsd --disk-</code><code>format</code> <code>qcow2 \</code>

<code>--container-</code><code>format</code> <code>bare --is-public </code><code>true</code> <code>\</code>

<code>--</code><code>file</code> <code>/data/img/freebsd</code><code>.qcow2</code>

    為了能夠制定虛拟機在哪一個實體機上,我直接使用指令方式手動生成虛拟機:

    擷取flavor、image、net_id、secgroup、service:

<code>nova flavor-list</code>

<code>nova image-list</code>

<code>nova net-list</code>

<code>nova secgroup-list</code>

<code>nova service-list</code>

    根據上面指令得到的資訊,執行下面的指令生成虛拟機:

<code>nova boot --flavor freebsd-1cpu2G-100g --image freebsd --nic net-</code><code>id</code><code>=212d7fa0-94af-466d-93ad-5ee50afcfb49 \</code>

<code>--security-group default --availability-zone nova:node-14.domain.tld FreeBSD-001</code>

<code></code>

本文轉自yuweibing51CTO部落格,原文連結: http://blog.51cto.com/yuweibing/1656451,如需轉載請自行聯系原作者

繼續閱讀