gitlab 的備份是一個 tar 檔案,用 tar xf 解開以後,會依照你 gitlab 裡的 user/group 區分目錄,解開以後,會發現裏面又是一堆 .bundle 檔案。
.bundle 該怎麼解開呢?其實它也是一個 tar 檔案,用 tar tf 就可以看到內容,所以如果要還原的話,就先建一個目錄,再切到該目錄下解開就可以了。
Just thinking more…
gitlab 的備份是一個 tar 檔案,用 tar xf 解開以後,會依照你 gitlab 裡的 user/group 區分目錄,解開以後,會發現裏面又是一堆 .bundle 檔案。
.bundle 該怎麼解開呢?其實它也是一個 tar 檔案,用 tar tf 就可以看到內容,所以如果要還原的話,就先建一個目錄,再切到該目錄下解開就可以了。
在建立並執行 VM 以後,除了利用 console 登入取得 IP 之外,有沒有辦法不要利用 console 取得 IP 呢?
第一個找到的是這篇:Tip: Find the IP address of a virtual machine,他的作法是取得 VM 的 MAC address ,再以 MAC address 去 arp 裡找到對應的 IP。這方法很簡單,但是有一個缺點,就是 VM 必須要有跟 host 有網路動作,arp 裡才會有這資訊。作者是用 perl 開發的,我改寫成 Python
這樣並不符合我的需求,所以又繼續找。後來找到這篇:linux kvm – Find IP of VM running KVM – Super User ,裏面的前幾個回答也是說要用 arp,但是最後一則回覆提供了不同的答案,他是用 virt-cat 。查了一下,virt-cat 需要安裝 libguestfs-tools ,安裝好以後,就可以用 sudo virt-cat -d your_domain /var/lib/dhcp/dhclient.eth0.leases 去查看 /var/lib/dhcp/dhclient.eth0.leases 檔案並取得 IP 了。整理一下,使用這個方法必須:
缺點大概就是要 sudo 吧,不 sudo 的話,會有錯誤。查了一下,發現這是因為存取 /boot 下 kernel image 時,權限不夠所引起的,沒找到方法解決。
本意只是想在 Raspberry PI 上裝 Ghost ,結果 node-sqlite3 裝不上去,Raspberry PI 版子速度又太慢,就想乾脆用 QEMU 摹擬 Raspberry PI。
用 QEMU 摹擬 Raspberry PI 可以參考這篇:Raspberry Pi • View topic – HOWTO: Virtual Raspbian on Qemu in Ubuntu Linux 12.10
裏面的步驟大致是這樣:
我目前是卡在 qemu 用的 kernel 上,原本想說直接拿 raspbian 的 kernel.img 來用,但發現不行。如果用文章裡作者提供的 zImage 是可以開機,但會有找不到 init 的情況。所以現在就朝自己編譯 kernel 的方向來做,這部份可以參考:
儘管如此,我編譯出來的 kernel 仍然無法順利開機,找時間再研究吧~
在 2007 年的時候,看了「時をかける少女」 (台譯:跳躍吧!時空少女),最近又重看了一次。這次重看,比上次看仔細多了。真琴使用了倒數第二次的時空跳躍能力,促成了功介跟學妹的相識,在回程的路上,遇到了千昭,千昭問她是不是知道時空跳躍。真琴被嚇到,使用了最後一次的跳躍能力。這次跳躍導致了不一樣的結果,好友功介被火車撞上,就在被撞上的時候,千昭也使用了跳躍能力,救回功介,為的是不讓真琴難過。接著,千昭向真琴說明了時空跳躍的緣由,真琴聽完以後非常的難過,難過的是要跟千昭分開了。於是,千昭走了,真琴非常沮喪。回到家裡,真琴很沮喪的躺在床上,然後她意外地發現了還有一次時空跳躍能力。於是,真琴非常開心地使用了這次能力,回到送作業簿到物理教室的那個時間點,黑板上寫著 “Time waits for no one” ,這次她把握機會向千昭說明了真相,讓千昭能使用他最後一次的時空跳躍能力回到未來,也允諾千昭會好好的保護那幅他想看的畫。關於畫的這件事情,真琴的阿姨似乎也遇到了一樣的事情,阿姨在少年時光也是遇到兩個男生,在電影的一開始,也巧妙的暗示了真情有時空跳躍的事,所以選擇了進入博物館來維護畫作。雖然是重看,還是很有意思的電影。
照片的女生就是演 Ex Machina 的女主角 Alicia Vikander ,在電影飾演女機器人,演的很不錯~
在公司 Zabbix dashboard 上看到這訊息,但明明 CPU 就沒飆到那麼高,後來去 google 了一下,主要是參考這兩篇:
文章裡提到的訊息有點差異,不過都是改 /etc/zabbix/zabbix_server.conf 裡的 StartXXXX 設定,將數值調高即可。例如 discoverer 就調高 StartDiscoverers 的數值,ping 就調高 StartPingers 的數值,以此類推。
改完,重新啟動即可,Zabbix Dashboard 上應該就看不到這訊息了。
P.S. 好像應該來開個 「IT 日常」的分類?!
最近開 terminal 時,都會看到這樣的錯:
pyenv: no such command `virtualenv-init’
今天終於想要解決這問題了,找了一下,源頭是在 oh-my-zsh 的 virtualenv plugin 裡,裏面用了 eval “$(pyenv virtualenv-init – zsh)” ,循線追到 pyenv,發現是 pyenv 沒有 pyenv-virtualenv plugin 的關係。
依照 yyuu/pyenv-virtualenv 上的說明,執行以下指令,就解決問題了。
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
最後,順道更新 pyenv :cd ~/.pyenv && git pull –rebase origin master
同事找到這篇介紹 OpenKM 的文章:開源OpenKM文管系統 立即打造知識管理平台
想說就裝起來試試看好了,看到有人用 docker 搭起來,就照著做囉:使用docker在centos6.5上部署openkm详细过程
不過這篇文做法的缺點是,把原本的 /usr/local/tomcat 都移到 volume 裡去,這就等於是程式都放到外面去了。或許應該參考原本 mcsaky/openkm 的 Dockerfile 與 OpenKM Installation ,再來改寫 Dockerfile 會比較好一點。
反正只是先試試看,所以我也沒有用 nginx 擋在前面,直接用 tomcat ,就先這樣用吧~ 有需要的時候,再來研究看怎麼改寫。
Nathalie Emmanuel ,飾演過冰與火之歌影集裡的 Missandei ,在玩命關頭 7 裡,她飾演操控 God’s Eye 的駭客。
主要是看入門指南跟摸索後的筆記。
執行 otto compile 以後,會自動依據所在的目錄去猜測是哪種語言開發的,並且產生以下目錄跟檔案:
.ottoid 應該要加入到版本控制系統裡,這檔案如果被刪除可能會出錯;.otto 目錄下則是放產生出來的檔案:
看起來照預設設定是佈署到 Amazon VPC 上。
執行 otto dev 以後,會開始下載 vagrant box ,這時間有點久,等下載完成會設置開發環境。等到完成以後,使用 otto dev ssh 就可以登入,/otto/foundation-1/ 下可以看到 main.sh ,這些檔案的原始檔是在 .otto/compiled/app/foundation-consul/app-dev 下。
執行你的 web application 以後,開另外一個 terminal,執行 otto dev address 可以看到 IP,接著就可以到瀏覽器輸入 IP:port 看到畫面了。
用 otto infra 就會在 Amazon 上建立 infrastructure。infra 看起來主要是配置 VPC 裡的 gateway、subnet、routing 與資源等等。(目前只支援 AWS)
用 otto build 是會建立 Amazon image ,最後就是用 otto deploy 佈署上去。
在 infra, build, deploy 時,都會問 AWS 的資訊,在問了以後,otto 會存到加密過的檔案裡。如果不想 otto 問這些,也可以預先設置好這些環境變數:AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SSH_PUBLIC_KEY_PATH
一般來說,otto 會自動猜測,使用猜出來的 Appfile,也可以自己手寫 Appfile (完整的 Appfile 說明)。如果有使用到相依的服務,也可以在 Appfile 裡寫 https://ottoproject.io/intro/getting-started/deps.html 。
otto dev destroy 是清除掉開發環境,otto infra destroy 跟 otto deploy destroy 則是清理 Amazon 上的機器。
安裝:wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
在現有的 web application project 目錄裡輸入 heroku create ,這會自動去遠端 (就 heroku) 開一個 app project,然後把 git repository 放到 git remote 裡。
git remote -v 裡會多出一個 heroku ,當你把 master branch push 到 heroku 時 (git push heroku master),就會自動佈署到 heroku 上。
這裡要注意的是 heroku 只認定 master,只有推 master 上去時,才會真正的進行佈署,如果是其他 branch 名稱,heroku 不鳥你。
多台機器開發,我是指一下在 A 機器開發,一下又在 B 機器開發的情況。那這時候怎麼處理 project ?
第1種情況是,直接從 heroku 取得專案:heroku git:clone -a your_heroku_app_name the_directory
第2種情況是,你已經先從你的 git repository 取得專案,那麼這時候就先切換到專案目錄下,再用 heroku git:remote -a your_heroku_app_name 這個指令來自動在 git remote 裡增加一個 heroku 的 remote repository。
安裝資料庫的 Addon
MySQL
Heroku 本身不提供 MySQL,只有合作廠商所提供的 ClearDB,但實質上 ClearDB 就是 MySQL。
ClearDB 有提供4個方案,Ignite 是免費的,雖然免費,但是安裝前,還是要先填信用卡資訊。
安裝方法:heroku addons:create cleardb:ignite
安裝以後,連線字串會放在 CLEARDB_DATABASE_URL 這個環境變數裡,程式只要存取這個環境變數就可以取得連線字串,用 heroku config:get CLEARDB_DATABASE_URL 則可以看到連接字串。
參考這篇文,就可以用本地端的 MySQL Query Browser (MySQL GUI 工具) 連上遠端的 ClearDB。
簡單說,就是從連線字串拆解出 username/password/host ,然後套進去用就可以了。
PostgreSQL
Heroku 預設提供的 database,不過還是要安裝。
安裝方法:heroku addons:add heroku-postgresql:dev
連線字串一樣是在環境變數裡:HEROKU_POSTGRESQL_BRONZE_URL 。