本來以為 wp-cli 提供的 wp 指令應該可以用來指定 wordpress 進入或離開 maintenance mode 才對,結果發現沒提供這功能。原來是因為很簡單的關係:wp cli – wp-cli Enabling Maintainance Mode
只要在 wordpress 安裝目錄下增加或是移除 .maintenance 檔案就可以進入或離開 maintenance mode 了。
Just thinking more…
本來以為 wp-cli 提供的 wp 指令應該可以用來指定 wordpress 進入或離開 maintenance mode 才對,結果發現沒提供這功能。原來是因為很簡單的關係:wp cli – wp-cli Enabling Maintainance Mode
只要在 wordpress 安裝目錄下增加或是移除 .maintenance 檔案就可以進入或離開 maintenance mode 了。
公司的 skype 不知道因為裝了什麼爛掉了 (似乎是 cutegram 的樣子),怎麼弄都不行,用 web skype 過一段時間會斷線,收不到訊息。後來想到,不知道有沒有人包成 docker image,一找之下,果然有:docker-skype
試用之下,的確可以順利執行,但是中文字的部份都是方塊,看起來得自己重新包了。所以就 fork 了一份,修改了 Dockerfile 與 scripts/skype-wrapper 。
Dockerfile 主要是參考下面的文章,加上安裝字型、語言的套件與設定環境變數:
skype-wrapper 則是修改腳本,因為我在 build 時,是 tag 為 elleryq/skype ,所以這邊在 docker run 的時候,也要跟著調整,否則會執行到原來的 sameersbn/skype 。
這樣就可以用一份無汙染、無添加而且有中文的 skype 了,不過這一包真的還蠻大包,吃掉 4xxMB …
Ubuntu 14.04 預載的 golang 是 1.2.1 版,想使用最新版的 golang ,除了可以用 gvm 以外,也可以用 debian package 來安裝。這篇要介紹的工具是 godeb ,這是一個會自動幫你將最新版的 golang binary 打包為 debian package 並安裝的工具。
首先下載 64-bit 的 godeb binary 檔案並解開:wget -qO – https://godeb.s3.amazonaws.com/godeb-amd64.tar.gz | tar xvz
執行 ./godeb list 就可以列出可安裝的 golang 版本,用 ./godeb install <version> 就可以安裝了。
要注意的是,這會跟預裝的 golang 套件衝突,所以使用前必須先移除原本裝好的 golang 套件。
有同事問,印象中有,就試了一下
gitlab-merge-request-builder 是可以讓 jenkins 對 gitlab 送 merge request 的 plugin,但是這個 plugin 不在 jenkins plugins repositories,所以找不到,得自己 build。
首先要裝 maven:sudo apt-get install maven
plugin 的說明裡提到,如果 gitlab 在 8.1.x 以下,要使用 v1.2.4 ;gitlab 在 8.1.x 以上 (含),可以直接用最新版本。關於這點,我倒是還沒去試,總之先把建置的步驟紀錄下來。
P.S. 我發現有兩個來源耶,所以?!
Callback 可以讓人有機會處理執行的結果,網路上有些人會寫自己的 callback plugin 以便統計執行結果什麼的。寫 callback plugin 的方法蠻簡單的,先繼承 CallbackBase ,然後覆寫裏面的方法即可,Ansible 有提供不少範例可供參考。
幾件事情要注意:
一台主機上要綁定多個 domain name ,是藉著設定 Apache 的 VirtualHost 來完成。那如果在沒輸入 domain name 的情況下,要使用指定的設定該怎麼做呢?
簡單的說,Apache 會以第一個 VirtualHost 來當作預設的。例如現在有兩個 VirtualHost,一個是 A,使用 www.example.com;一個是 B,使用 www.example.net ,那麼網址列輸入 IP 時,會看到 A。想要有預設的 VirtualHost,就是在設定 A 的前面多加一個 VirtualHost,裏面不指定 ServerName 就可以了。
指定 exact_count=1,第一次執行時,新建的 instances 會同時放在 instances 與 tagged_instances 裡。(請看 ec_create_result.txt)
exact_count=1,再執行一次,changes 會是 false,instances 裡是空的,而 tagged_instances 裡則是之前已經建立的 instances (請看 ec2_create_again_result.txt)
將 exact_count 設定為 2,再次執行,changes 會是 true,instances 裡是新建的 instance,tagged_instances 裡除了之前已經建立的 instance 之外,還會有新建的 instance。
將 exact_count 改回 1,再次執行,changes 會是 true,instances 裡是被終結掉的 instance,state 是 terminated,而 tagged_instances 裡則是仍存活的 instances。 (請看 ec2_create_decrease_exact_count_result.txt)
gitlab-ce 到 8.0 以後,就把 gitlab-ci 整進去了,要用 gitlab-ci ,需要安裝 gitlab-ci-multi-runner。
archlinux AUR 裡已經有人包進去了:
到 gitlab 專案設定裡的 runner 畫面去看,應該就會看到剛剛新增的 runner。
使用上可以參考這篇 gitlab ci quickstart 來做,大致就是在專案裡新增 .gitlab-ci.yml ,裏面填好要執行的步驟,加入 repository、提交、push,之後每次 push 時,就會執行 .gitlab-ci.yml 裡的步驟了。
碰到這個訊息:
[DEPRECATION WARNING]: You should not specify tags in the include parameters. All tags should be specified using the task-level option. This feature will be removed in a future release. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
這是因為這樣寫:
- include: setup.yml tags=myrole,setup - include: myrole.yml tags=myrole
論壇有人問,開發團隊回答說,建議的作法是把 tags 拿下來,不要放在 include: xxx 的後面,也就是:
- include: setup.yml tags=myrole,setup - include: myrole.yml tags=myrole