Just another Ruby porter,

〜2015年11月中旬〜


<Older(,) | Newer(.)> | Recent(/)>> | RDF

2015-11-11 (Wed)

add-apt-repositoryとproxy

aptって名前ついてるから/etc/apt/apt.conf.d/に置いた99proxyが効くかと思ったら、
全然無視されて結局環境変数https_proxyしか見てくれないことが判明した。
調べてみるとpycurlを使っているらしく全然別系統らしい。
やっぱsudoersでenv_keepしとくか。


2015-11-12 (Thu)

circle.ymlでheredoc

-で配列にしちゃうと各々別のbashが起動されてしまうので1つの文字列にする必要あり。

test:
  post:
    - "cat <<EOM\nfoo\nbar\nEOM\n"

""で囲んで\nとか書くのは面倒なら、いわゆるブロックスタイルにしちゃえばいい。

test:
  post:
    - |
      cat <<EOM
      foo
      bar
      EOM

|がないと改行が保存されず空白類はまとめて1つの空白に変換される。


2015-11-13 (Fri)

Github Desktopでproxy設定

GUIからは設定できないので内部で起動しているgitで設定する。
Can I log in behind a proxy server?
Windowsの場合はなにかリポジトリを作ってからOpen Git Shellしてその中のgitで設定する。
ふつうにコマンドプロンプトを起動してもたぶんPATHが通ってない。


2015-11-14 (Sat)

bashの内部コマンドだけでコピー #シェル芸

while readは-rしなきゃいけないとかもろもろ罠があるので別解を。

$ printf "%s\n" "$(<.bashrc)" > .bashrc.bak
$ cmp .bashrc .bashrc.bak

ひょっとしたら古いbashだとだめだったかもしれない。


2015-11-15 (Sun)

IFTTT(Date&Timer)+Github+CircleCIで定期実行

CircleCIにはNightly Buildという仕組みがある。
これは外からBuildを実行するAPIが提供されてるだけだが、
意外にもTravisとかWerckerにはない機能。
つまりGithubにコード置いといてIFTTTのDate&Timeで定期的にCircleCIのAPIを叩けば、
botが作れるわけだ。テストの代わりにbotを実行する。

もしくはAWS Lambdaもスケジュール実行ができるからそれでもいい。
月に320万回とか、1ヶ月ちょっとの実行時間なんて実質フリーみたいなもんだし。
5分間という実行時間の制限はあまり影響はないだろう。


2015-11-16 (Mon)

IFTTT(Date&Time+Maker)+Bitbucket+werckerで定期実行

情報が古かった。werckerも6月にtriggerBuild APIが追加されていた。
werckerはBitbucketも対応してるので非公開リポジトリもありになる。
Authenticating with the wercker API
IFTTTのMakerではAuthorizationヘッダーを追加することはできないので、queryに含める。
jsonの場合は"token":"<TOKEN>"てな感じで入れればいい。

% curl  -H 'Content-Type: application/json' -X POST \
 -d '{"applicationId": "<AppID>", "branch":"master", "message":"<MESSAGE>", "token":"<TOKEN>"}' \
 https://app.wercker.com/api/v3/builds

AppIDはアプリケーションURLの末尾24桁の16進。

なぜか

Failed step: setup environment - context canceled

というエラーが頻発しているのが気になる。
それはそれとして、CIなのでログが詳細に残るのは思いの外便利だ。


2015-11-17 (Tue)

Dockerでproxy設定

/etc/default/dockerとか環境変数とかぐぐるといろんな情報に満ち溢れているが、
本家にsystemd用の設定方法があった。
Control and configure Docker with systemd
/etc/systemd/system/docker.service.d/http-proxy.confに

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"

と書いて反映させて確認し、再起動。

$ sudo systemctl daemon-reload
$ sudo systemctl show docker --property Environment
Environment=HTTP_PROXY=http://proxy.example.com:80/
$ $ sudo systemctl restart docker

dockerコマンドに環境変数を渡しても時すでに遅し。
serviceのほうをなんとかしないといけない。


2015-11-18 (Wed)

IFTTT Maker+wercker順調

初期設定時はこれ使い物になるんかな的なエラー率だったが、
いざ動き出してみると全然エラーが出なくなった。
それにしてもbotをCIサービスで動かすってのは思いの外便利だと改めて実感。
エラーが起きればメールが飛んでくるし、その時のログも残っているわけで。
まじでおすすめ。


2015-11-19 (Thu)

一般ユーザーでdockerコマンドを実行可能にする

dockerグループを作ってそこに自分を加えればok。
大抵の場合はすでにdockerグループはあるので追加するだけでいける。

% sudo gpasswd -a eban docker

2015-11-20 (Fri)

/etc/default/dockerはsystemdとは関係ないファイル

ここに書いてあるが、upstartとSysVInit用であって、systemdとは関係ない。
いや、なんかおかしいとは思ったが、じゃなんでこんなファイルが用意されているのか?


<Older(,) | Newer(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!