Terminal 下操作 VMware 的 vSphere

Twitter 上看到 zmx 提到:

其中 Ruby vSphere Console (rvc) 被標成 deprecated:

Note: This Fling is deprecated, so the download is no longer available, and it will not be updated. Also, feedback is no longer monitored.

Python vSphere Client with a dialog(1) interface (pvc) 看起來比較新:

不過我自己測試後發現死在 SSL certificate 上,之後再來研究要怎麼閃開吧...

在 Command Line 跟 Stack Overflow 互動

Hacker News Daily 上看到可以在 command line 跟 Stack Overflow 互動的工具:「stackoverflow from the terminal」。

可以用 npm 安裝。

作者引用了 xkcd 的笑話來說明為什麼要開發這個程式:

出自「tar

AWS 推出的 aws-shell

AWS 推出的 aws-shell 透過大量的 auto completion 幫助你管理 AWS 的各種資源,可以從官方說明看出是 AWS Command Line Interface (aws-cli) 的延伸:

An integrated shell for working with the AWS CLI.

程式是用 Python 寫的,可以透過 pip 直接安裝到自己的目錄下,官方說明支援 2.6.5+、2.7+、3.3+、3.4+,所以應該是不會有太多問題:

$ pip install aws-shell

第一次執行的時候放著讓他背景建立 index 會比較順。

e95d85da-a328-11e5-8b8d-67566eccf9e3

3648b4fc-a32c-11e5-8e18-92f028eb1cee

可以看到功能相當強,甚至可以連到 AWS 上取得資料。

建議 GitHub 上的首頁說明部份都先看完,然後裝起來先測試玩看看,對於真的要用的時候會方便很多。

另外他執行時真的丟到 shell 去跑,所以你可以 pipe 出去處理,像是這樣:

ec2 describe-instances | jq .

HTTP/2 測試工具

CloudFlare 整理了一篇「Tools for debugging, testing and using HTTP/2」,說明有哪些測試工具可以用...

Screen-Shot-2015-12-04-at-10-46-21

從最簡單的「HTTP/2 and SPDY indicator」(Google Chrome) 或是「HTTP/2 and SPDY indicator」(Firefox),到後面各式各樣的工具都有列出來。甚至還包括 command line 與 packet snooping 類的工具都有...

用 Amazon API Gateway 重導網域

在「Creating An Amazon API Gateway With aws-cli For Domain Redirect」這邊看到用 Amazon API Gateway 重導整個網域的方法。一般的做法是用 Amazon S3 (用 web hosting 重導) + Amazon CloudFront (for HTTPS) 堆出來,事實上這個方法成本也比較低,這篇文章只是示範怎麼用而已:

I’m not saying the API Gateway method is better than using S3 plus CloudFront for simple hostname redirection. In fact, it costs more (though still cheap), takes more commands to set up, and isn’t quite as flexible in what URL paths get redirected from the source domain. It does, however, work and may be useful as an API Gateway aws-cli example.

可以從中間學到一些東西,尤其是可以看到如何使用 aws-cli 操作 Amazon API Gateway 的部分...

設定 CloudFront 的 Wildcard SSL (SNI)

不知道為什麼網路上一堆文章寫的超複雜 XD

目前必須使用 CLI 才能上傳 key 與 SSL certificate,所以乖乖的裝上 aws-cli 吧 :p

而通常在買 Wildcard SSL 時會 *.example.com 的時候會簽成 example.com + *.example.com,這時候用 example.com 當名字掛進去:

aws iam upload-server-certificate --server-certificate-name example.com --certificate-body file://server.crt --private-key file://server.key --certificate-chain file://intermediate.crt --path /cloudfront/

一樣可以確認:

aws iam get-server-certificate --server-certificate-name example.com

會改到的幾個部份用粗體標出來了。

上傳完成後就可以到 Web Console 上的 CloudFront 部份設定了。

主要是參考「Building a CDN over SSL with CloudFront and SNI」這篇文章的說明,再加上一些亂試後去翻文件確認的結果 :o

由 RSA Key 產生 CSR 的方法 (OpenSSL)

從「OpenSSL CSR with Alternative Names one-line」這篇看到的方法,一行解決,可以寫到 Makefile 之類的地方處理?

給了兩個範例:

openssl req -new -key endpoint.com.key -sha256 -nodes -subj '/C=US/ST=New York/L=New York/O=End Point/OU=Hosting Team/CN=www.endpoint.com/emailAddress=administrative-not-existent-address@our-awesome-domain.com/subjectAltName=DNS.1=endpoint.com' > www.endpoint.com.csr

以及:

openssl req -new -key endpoint.com.key -sha256 -nodes -subj '/C=US/ST=New York/L=New York/O=End Point/OU=Hosting Team/CN=www.endpoint.com/emailAddress=administrative-not-existent-address@our-awesome-domain.com/subjectAltName=DNS.1=endpoint.com,DNS.2=usually-not-convered-domain.endpoint.com,DNS.3=multiple-domains-crt.endpoint.com' > www.endpoint.com.csr

記錄起來,以後應該還用的到 :p

PostgreSQL 的 command line 工具調整

在「Optimizing Your psql」這篇介紹了 PostgreSQL 的 command line 工具 psql 要怎麼調整讓他變好用。

這篇文章是入門的調整,藉由 $HOME/.psqlrc 裡的幾行設定,就可以讓系統變得好用很多,可以看到最後面給的 .psqlrc 也才八行...

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?