code-prettify

2016年7月17日 星期日

使用 Docker 啟動 Shipyard

Shipyard 提供一個支援多主機 Docker 叢集的 Web UI 管理服務
可以透過 Web 管理容器,如下圖


假設已經有了 Docker 環境,如果沒有的話可以參考這篇文章建立一個 VM。
在 Windows 7 使用 Vagrant 建立 Docker VM 環境

馬上透過官方提供的腳本進行安裝
curl -s https://shipyard-project.com/deploy | bash -s


Docker 會將需要的 Image 從 DockerHub 下載,最後會出現
Username: admin Pasword: shipyard,等等會用到。

因為使用 VM,記得要設定 VirtualBox 的 Port Forwarding 喔。
可以參考 VirtualBox 設定 Port Forwarding

輸入 http://localhost:8080 就可以看到 shipyard 登入畫面,記得輸入剛剛的帳密。


登入後可以看到列出來的容器清單 Containes,可以看到 Shipyard 需要的相關服務都已經下載並啟動完成。


這麼一來就有 Docker 視覺化基本操作介面可以玩嘍!



Updata
20160720 開頭補充 Shipyard 簡單介紹


資料來源
Shipyard - Composable Docker Management
http://shipyard-project.com/

2016年7月11日 星期一

VirtualBox 設定 Port Forwarding

利用 VirtualBox 建立 VM,預設網路設定為 NAT,如果想要從 Host 存取 VM 的 Port,必須設定 Port Forwarding (連接埠轉送)。

開始 VM 的設定頁之後,選擇網路,連接埠轉送。



接著輸入名稱,主機連接埠、客體連接埠,然後按下確定,就完成設定了!

2016年7月10日 星期日

在 Windows 7 使用 Vagrant 建立 Docker VM 環境

需要安裝兩個軟體

一、VirtualBox
https://www.virtualbox.org/wiki/Downloads

二、Vagrant
https://www.vagrantup.com/downloads.html

在下載的過程中,簡單介紹一下 Vagrant。
Vagrant 官方定義為 「建立及設定輕量性、可重覆性及可攜性的開發環境」,主要是透過設定檔使用 VirtualBox 來建立一個虛擬機器 (Virtual Machine, VM),是達成 「Infrastructure As Code」的一種方式。

Vagrant 包裝好的環境,稱為 Vagrant Box,本來在 Vagrant Cloud 提供上傳下載,但是現在被 Atlas 合併後不開放新帳號註冊了,所以只能下載 Box,不能上傳,除非你有原本 Vagrant Cloud 的帳號,幸好主要是要用 Docker,以後有 DockerHub,這些事情就不重要嘍。

下載安裝完 VirutalBox 及 Vagrant 之後,就可以開啟命令提示字元 (cmd.exe) 來操作嘍。首先建立這次要使用的資料夾,會用來放 vagrant 設定檔
mkdir vagrant\ubuntu
cd vagrant\ubuntu



目標版本為 Ubuntu 14.04 LTS ,直接用已經存在的 Box 來進行初始化。
vagrant init ubuntu/trusty64


初始化會在資料夾產生一個 Vagrantfile,是 Vagrant 主要的設定檔,目前只有指定 Box 名稱,如果想要設定 cpu, memory 等等,也在這裡設定,目前先用預設值來啟動 VM。
vagrant up



如果是第一次使用這個 Box,會從 Atlas 網站下載,時間視檔案大小及網路速度而定,第二次之後就會省去這個動作,順便一提,下載後 Box 存放的路徑在 %USERPROFILE%\.vagrant.d\boxes。等進度條跑完,Vagrant 就會依照設定把 VM 開起來嘍。

接著使用 ssh 登入 VM吧。
vagrant ssh


這樣已經可以開始玩新建立的 VM 嘍,但是習慣用 PieTTY 連線的話怎麼辦呢?這時候就要回頭看一下啟動的訊息,其中最重要的是 22 (guest) => 2222 (host) 的 Forwading ports 設定,代表連到本機的 2222 port 就可以連到 VM 的 22 ssh port 喔。



預設的帳密是 vagrant / vagrant


因為 Ubuntu 14.04 還沒有預裝 Docker,所以我們要先安裝,
透過官方提供的指令可以快速完成相關安裝及設定。
curl -sSL https://get.docker.com/ | sudo sh


可以看到安裝的 Docker 版本是 1.11.2,且提示要使用非 root 操作 docker 的話,將該 user 加入 docker 群組中。
sudo usermod -aG docker ${USER}

輸入後重新登入,使用指令測試一下 dockre


回過頭來看一下 Vagrant 的效果,
只需要兩行指令,達到輕量性。
(init 指令可改為從 GitHub 取得 Vagrantfile)
直接使用 Box,為可重覆性。
可以在 Windows, Linux, Max 使用,算是可攜性。

以後就不需要苦惱要設定 VirtualBox 的 Image 要怎麼辦了,大大減少從 OS 安裝開始的流程,也不必靠文件的 SOP 來建立想要的環境,接下來就可以開始放心玩 Docker 嘍!



Udpate
20160716 因為 williamyeh/ubuntu-trusty64-docker 除了安裝 docker 之外有其它客製化,為了保持環境單純,改用 ubuntu/trusty64 當範例



資料來源
Vagrant Tutorial(2)跟著流浪漢把玩虛擬機
http://www.codedata.com.tw/social-coding/vagrant-tutorial-2-playing-vm-with-vagrant/

Vagrant Tutorial(3)細說虛擬機生滅狀態
http://www.codedata.com.tw/social-coding/vagrant-tutorial-3-vm-lifecycle/

Vagrant box: can't login with password from VirtualBox GUI
http://stackoverflow.com/questions/26524691/vagrant-box-cant-login-with-password-from-virtualbox-gui

《Docker —— 從入門到實踐­》正體中文版 - Ubuntu 系列安裝 Docker
https://philipzheng.gitbooks.io/docker_practice/content/install/ubuntu.html

2016年5月19日 星期四

Linux auto build project when file modify

Arch auto build qt project when file modify use inotify-tools

#install inotify tools
pacman -S inotify-tools

# write a monitor script
autobuild.sh

=== Refference ===
Github - inotify-tools
https://github.com/rvoicilas/inotify-tools/wiki

inotifywait(1) - Linux man page
http://linux.die.net/man/1/inotifywait






2016年5月15日 星期日

VirtualBox 啟動 VM 在背景模式下

想要在背景模式下啟動 VM,需要透過 VBoxManage.exe 管理工具,
預設 VirtualBox 不在環境變數 PATH 裡面,所以要先切換到該目錄下。

# 切換目錄到 VirtualBox
cd C:\Program Files\Oracle\VirtualBox

# 列出 VM 清單
VBoxManage list vms
"MyVM" {e4b0c92c-4301-4a7d-8af8-fe02fed00451}

# 啟動 VM 為背景模式下
VBoxManage startvm MyVM --type headless

# 不需要使用時關閉該 VM
VBoxManage controlvm MyVM poweroff



資料來源:
Start VirtualBox VM in Headless Mode
http://schier.co/blog/2013/03/13/start-virtualbox-vm-in-headless-mode.html

2016年5月13日 星期五

關閉 Sublime Text 3 記憶已開啟的檔案

因為想把 Sublime Text 當作預設文字編輯器,
但是有兩個習慣一直無法適應,所以決定把他的設定改掉。

第一,當 Sublime Text 關閉時,當檔案有修改時,並不會詢問是否要存檔,
而是幫你保留當下的變更,當下次你啟動時再給你看,這是 hot_exit 功能。

第二,當 Sublime Text 開啟時,會記憶你上次開啟的檔案,一次開給你看,
這個叫 remember_open_files 功能。

幸好 Sublime Text 擁有高客制化的能力,
透過 Preferences / Settings-User 叫出個人化設定檔,
加上這兩行即可

"hot_exit": false,
"remember_open_files": false,

實際設定圖片:



資料來源:
How To Disable Remember Open Files in Sublime Text 3
http://www.unixmen.com/disable-remember-open-files-sublime-text-3/

2016年2月7日 星期日

如何實現目標

如何實現目標

一、設定目標

決定你要什麼

第一步,花點時間去思考你要什麼。

定義你的條件

對於相同目標,每個人的定義不太一樣。定義自己對於目標的條件。

問為什麼

花點時間來思考為什麼要定這個目標是很重要的。如果你了解動機是什麼,也許你會修改目標或者條件。

確認是否可行

最後確認目標是否可行,這可能取決於你的目標大小和時間長短,定過於不切實際的目標,最終可能導致失敗及沮喪。

二、制定計劃

腦力激盪

制定了目標,接著要開始更詳細的計劃。首先把想法寫下來,利用腦力激盪的方式得到多種可能的方法。

具體方法

利用之前想到的方法,確立可以達到或可以做的具體方法。

考慮利用 SMART 原則

SMART 原則是目標管理的一種方法,分別為
Specific(明確)
Measurable(可衡量)
Attainable(可達成)
Relevant(相關性)
Time-bound(時限)

排序你的目標

大部份的人有多個目標,將他們一一排序,可以幫助自己再次確認目標的意義,以及接下來應該專注的目標。

想像帶來的影響

花一些時間去想像這些目標將會如何影響自己的生活。這將幫助你判斷完成每個目標所帶來的好處,同時可以提高自己的動機。

建立子目標

如果將目標拆解成多個小目標將更容易實現。

列出障礙清單

將實現目標可能遇到的障礙列出來,這可以幫助自己思考如何克服這些障礙。

三、達成目標

奉獻你的時間

有很多方法可以幫助你保持專注,但大多數的目標需要花費許多時間去完成。假如完成一個目標需要60個小時,預計在一個月完成,那平均一天應該花2個小時努力。

養成習慣

一個幫助完成目標的方法是養成習慣,在固定的時間完成任務。例如每天早上七點到九點練習吉它。

追蹤進度

一旦開始努力朝目標進度,開始紀錄目標進度。每天花費時間、子目標達成……等等。追蹤進度可以幫助你保持動力及養成習慣。

保持動力

在達成目標最困難的一部份,就是保持動力。可以透過養成習慣和追蹤進度來幫助,但可能需要其它的方法來強化。
正向強化是在生活中增加一些東西,像是在完成子目標時買個點心來慶祝。
負向強化是在生活中刪除一些東西,像是在完成子目標時不做某個苦差事。
強化動力時,獎勵比懲罰更有效。剝奪一件事物當作目標失敗的懲罰可以小程度使用,但是儘可能的使用獎勵。



資料來源:
How to Accomplish a Goal
http://www.wikihow.com/Accomplish-a-Goal

維基百科 - SMART原則
https://zh.wikipedia.org/wiki/SMART%E5%8E%9F%E5%88%99