log > VagrantでDigitalOcean

  • VagrantでDigitalOceanを立ち上げるのとProvisionを別にした方が良さそうな気がしてきた。
    • 要するに、rootパスワード変更、sshポート変更、iptables設定、yum update、などを最初にやる必要があるのだが、これをやると接続ポートを変更する必要があるため、次回以降接続するために設定を変更する必要がある。
      • また、rootパスワード変更は手動でやった方がいい気がする。
    • なので、provisionは別でansibleで行うことにした。
  • Vagrant-DigitalOceanやろうと思ったら、An active machine was found with a different provider.エラー。
    • .vagrantフォルダを削除するといいらしい。
      • ということは、Develop用とProvision用の2つのVagrantFileが必要になるってことなのかな。
    • DigitalOceanは最近cliend-id&api-key方式からapi-token方式に切り替わったので、過去の資料(の一部)が役に立たなくなってるなどがあった。
    • しょうがないので、DigitalOceanテスト用にVagrantFile作る
    • hostsファイル書いてなくてprovision失敗したけど、サーバは起動した。やった。₍₍ (ง ‘ω’)ว ⁾⁾
      • vagrant sshでrootログインできた。
      • sshのport変えたらログインできなくなった
      • 要は、Vagrantは同一環境の仮想環境を起動するところまでが役割だからSSHポート変更したらvagrant sshで接続できなくなってもかまわないってことなのかな……。
        • いや、普通はvagrant reloadとかで直った気がする。providerがあることでどうのこうの。
      • とりあえずansibleだけでやる。
        • ERROR: InnoDB: Cannot allocate memory for the buffer pool
        • メモリが足りてなかった。(Swap領域がなかったのでダメだったっぽい。)
        • あとでtagつけて切り替えられるようにしたい。
        • ntpdateでcommand実行してるので、常にchangedになるけど、okにする方法がわからない。ansible力が足りない。
        • fileモジュールでstate=touchにすると常にchangedになるんだけど、okにする方法がわからない。( ˘ω˘)
        • とりあえずfailed=0になったのでよかった。(˶˘◡˘˶)
  • で、このあとiptablesとsshdの設定を別のplaybookでやった。
    • 一部は手動。sshdのファイル設定。
    • で、ここでrootのログインを禁止した後に作業ユーザーのパスワードをちゃんと設定できていないことが判明し、詰んだので作り直す。
      • 失敗できるやつでよかった。
    • python -c 'import crypt; print crypt.crypt("password", "$1$SomeSalt$")'でpasswordを暗号化してansibleで使えるようになるのだが、環境によって違うっぽい。MacだとSaltがない13桁の文字列になる。
    • iptablesでsshポートを変えたがsshポートの設定を変える処理忘れてた。
      • 管理画面からrootでログインしてsshのポート変えて設定読み直して事なきを得た。
  • とりあえず何とかなってるので、よかった。もう寝る。
    • メモリとか見ると心許ない。今のところ大丈夫だけど、落ちるようなら……。