用 EBS-SSD 開機的 Ubuntu

前幾天 AWS 推出 EBS-SSD (參考「AWS 推出 SSD EBS」),然後今天看到「EBS-SSD Boot AMIs For Ubuntu On Amazon EC2」。

Canonical 正式的說明在「[ubuntu-cloud] Amazon SSD backed EBS volumes」這邊可以看到,而「Amazon EC2 AMI Locator」上也新增了 EBS-SSD 的部份。

Ubuntu 14.04 LTS 出版

Ubuntu 的正式公告:「Ubuntu 14.04 LTS (Trusty Tahr) released」。

新裝的機器當然沒有問題,而 13.10 要升級到 14.04 已經提供升級指引了:「Upgrade from Ubuntu 13.10 to 14.04 LTS」。

不過 12.04 LTS 要升級到 14.04 LTS 的人要等到七月:

Users of 12.04 LTS will be offered the automatic upgrade when 14.04.1 LTS is released, which is scheduled for July 24th. For further information about upgrading

來重灌好了 (把 Windows 的習慣拿過來用...)。

Canonical 宣佈 2014 年四月 17 日發布 Ubuntu 14.04 LTS

在「Ubuntu 14.04 LTS: the cloud platform of choice」這篇:

Canonical today announces Ubuntu 14.04 LTS will be released on 17th April 2014, bringing a new level of reliability, performance and interoperability to cloud and scale out environments with support and maintenance for five years.

恭喜了,第三個 LTS 版本!

Ubuntu 14.04 LTS Trusty 最後階段開跑

code name 為 Trusty Tahr 的 Ubuntu 14.04 在最終要釋出的準備了:「Final Freeze for Ubuntu 14.04 LTS (trusty) at 2100UTC today」。

Ubuntu 的 LTS 規劃也找到一個大家都可以接受的平衡點了:整個社群與商業團體都會把 LTS 版本列為重點支援,固定兩年 release 一次的時間表讓這些人 (社群與商業團體) 也都很清楚知道什麼時間點要更新。

而 LTS 也不是完全凍結而只更新安全部份:(下面出自「List of Ubuntu releases」)

Like other LTS releases, 12.04 will include point releases that bundle updates to shorten downloads for users installing the release later in its lifecycle. The point releases and dates are: 12.04.1 (23 August 2012), 12.04.2 (14 February 2013), 12.04.3 (scheduled for release on 22 August 2013, but actually released on 23 August 2013) and 12.04.4 (6 February 2014).

對於 Point release 沒有更新的軟體,用 PPA 的方式讓社群去維護 LTS 平台上的支援。

測試 GitLab 的方式...

除了在「doc/install/installation.md」有手動安裝的方式外,在「GitLab CE Downloads」有提供 Ubuntu 12.04 LTS 64bits 的 deb 檔可以安裝。

官方在「GitLab Omnibus project」提供的安裝方式是:

apt-get install openssh-server postfix
dpkg -i ooxx.deb
gitlab-ctl reconfigure

不過在 Docker 裡面會卡在設定 redis 的部份而無法成功,卡在:

Recipe: gitlab::redis
  * user[gitlab-redis] action create (up to date)
  * directory[/var/log/gitlab/redis] action create (up to date)
  * directory[/var/opt/gitlab/redis] action create (up to date)
  * template[/var/opt/gitlab/redis/redis.conf] action create (up to date)
  * directory[/opt/gitlab/sv/redis] action create (up to date)
  * directory[/opt/gitlab/sv/redis/log] action create (up to date)
  * directory[/opt/gitlab/sv/redis/log/main] action create (up to date)
  * template[/opt/gitlab/sv/redis/run] action create (up to date)
  * template[/opt/gitlab/sv/redis/log/run] action create (up to date)
  * file[/opt/gitlab/sv/redis/down] action delete (up to date)
  * link[/opt/gitlab/init/redis] action create (up to date)
  * link[/opt/gitlab/service/redis] action create (up to date)
  * ruby_block[supervise_redis_sleep] action run

後來是用 Vagrant (跑 VirtualBox) 才測試成功。就可以看到 PostgreSQLRedis 整包都被放到 /opt 下了...

提供給要玩 GitLab 的人參考看看...

Ubuntu 下建立 Cordova 的 Android 環境...

依照「Cordova: Getting Started with iOS and Android Applications (Tech Tip #14)」這篇的方法,再加上一些以前練出來的經驗,把系統給弄起來了。

首先是先到 Android 官網下載 Android SDK,目前版本是 adt-bundle-linux-x86_64-20131030,找個合適的地方解開後 (我是放到 $HOME/android 下),把 PATH 加進去:

export PATH="${HOME}/android/sdk/platform-tools:${HOME}/android/sdk/tools:${PATH}"

接下來是透過 nvm 安裝 node.js,先安裝 nvm:

wget https://raw.github.com/creationix/nvm/master/install.sh
sh install.sh

然後重新啟動 shell 讓 nvm 與 PATH 生效後,安裝 0.10.26 (目前的最新版),並且預設用這個版本:

nvm install 0.10.26
nvm alias default 0.10.26

接下來一樣是重新啟動 shell,就可以裝 Cordova 了:

npm install cordova

後面就可以照抄原始範例:

cordova create hello org.samples.wildfly.cordova.hello HelloWorld
cd hello
cordova platform add android
android create avd --name myCordova --target 1
cordova emulate android

然後 AVD 是有名的慢,請耐心等候... XD

跑出來長這樣:

Ubuntu 12.04 上用 KVM (CLI) 裝 FreeBSD

過年後在家裡弄了一台技嘉的準系統跑 Ubuntu 12.04,結果手上突然沒機器可以跑 porttools 測試,而這台機器平常也沒接鍵盤,就想直接跑 command line 的 KVMFreeBSD。其實知道方式後就很簡單,只是一開始沒弄懂花了不少時間...

首先是安裝 KVM,這部份用 apt-get install kvm 就可以拉下來裝好了。

真正要做的第一部是先用 qemu-img 建立 40GB 的 disk image (qcow2):

qemu-img create -f qcow2 ~/vm/image.qcow2 40G

然後直接用 iso image 安裝 (抓 iso image 的事情也跳過去請各位自己來),設為 4 CPU (-smp 4)、1024MB RAM (-m 1024),並且透過 serial console 安裝 (-nographic -curses),開機先從 cdrom 上開 (-boot d):

kvm -smp 4 -drive file=/abs/path/vm/image.qcow2,if=virtio -cdrom /abs/path/vm/FreeBSD-10.0-RELEASE-amd64-bootonly.iso -m 1024 -nographic -curses -net nic,model=e1000 -net tap -boot d

其中網路的部份卡了最久,後來發現預設值的 -net nic -net user 意思是:

  • -net nic 表示在 Guest OS 內建立一張網卡接到 KVM 的 vlan0。
  • -net user 表示在 KVM 的 vlan0 上建使用 userland mode NAT。

由於 userland mode NAT 很受限 (只有 TCP 與 UDP 會通),所以我用 -net nic -net tap 表示直接 bridge 到 virbr0 上再 NAT 出去。而我希望對 Guest OS 使用 e1000,所以最後就變成 -net nic,e1000 -net tap

接下來安裝 FreeBSD 時就可以用 DHCP mode 抓到 IP 了,由於我希望可以從 Host 直接連進去,所以我是設成 static IP。

裝完後就不需要掛 cdrom 與優先從 cdrom 開始開:

kvm -smp 4 -drive file=/abs/path/vm/image.qcow2,if=virtio -m 1024 -nographic -curses -net nic,model=e1000 -net tap

先前用 -hda /abs/path/vm/image.qcow2 掛上去,結果 i/o 很慢,被 delphij 提醒後改跑 virtio,速度就正常多了。不過這是因為 FreeBSD 10 就內建支援 virtio 了,如果是使用 FreeBSD 9 的需要另外再透過 ports 裝進去。

記錄下來給需要的人玩看看,下次也許應該玩玩看 VNC display?

Debian/Ubuntu 上跑 6to4 的方法...

因為 HiNet 在自家放了 192.88.99.1 的 6to4 gateway,設起來玩看看?

網路上找了不少方法都不會動 (包括 Ubuntu 在官方 wiki「IPv6」上給的連結「IPv6: Linux as 6to4 host」),最後是用「IPv6 6to4 config generator for Debian」這邊的方法。我是用 Ubuntu 12.04。

/etc/network/interface 裡加上:

auto tun6to4
iface tun6to4 inet6 v4tunnel
	address 2002:0102:0304::1 
        netmask 16              
	gateway ::192.88.99.1
	endpoint any
	local 1.2.3.4

其中 1.2.3.4 是 public IP,而 0102:0304 則是 hex 表示法。設完後跑 ifup tun6to4 就會帶起來了。

可以用 telnet -6 www.google.com 80 看看有沒有通,或是連到 The KAME project 看看有沒有會動的烏龜 :p

把 blog 搬到 DigitalOcean 上...

前幾天才把 DigitalOcean 的 Droplet 都清掉,然後收到 DigitalOcean 給的 USD$5 後,本來的主機就失聯了,剛好又跑回來用...

而之前買的 WordPress 備份服務 VaultPress 也派上用場,直接去上面拉資料下來,照著步驟做就解決了... O_O

不過應該還是有很多東西需要調整吧... 之前在 Ubuntu 上跑 PHP 的量也都不大,我自己的 blog 反而是最大的?而且是跑在 512MB 的機器上 (雖然設了 1GB 的 swap),不過應該還是很多需要調整的吧 :o

不過 DNS 的部份還要再等等,等到都 timeout 後才算正常 :o

Ubuntu 上找不到 apt-add-repository 的解法

剛剛在弄 Linode 上的 Ubuntu 時要裝 PPA,發現沒有 apt-add-repository 可以用,找了一下資料發現這不是系統一定會安裝的軟體,所以要自己手動安裝:

apt-get install python-software-properties

裝完後就可以繼續裝 PPA 了。