- 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のポート変えて設定読み直して事なきを得た。
- とりあえず何とかなってるので、よかった。もう寝る。
- メモリとか見ると心許ない。今のところ大丈夫だけど、落ちるようなら……。