AnbilePlaybookでプライベートの開発環境構築を一撃で終わらせられるようにした
普段自分が使ってる自宅PCの開発環境構築をコマンド一撃で終わらせられるようにした。
リポジトリはこちら。
setup : https://github.com/jiro4989/setup
なぜやったか
僕は不定期にPCのOSを変更したくなります。 今までUbuntu、CentOS、LinuxMint、Debian、ManjaroLinuxなど色々変更し、 今ではManjaroLinux i3に落ち着いています。
数ヶ月に一度環境を構築し直しているわけですが、 最初の1回しかやらないことも多くて何をインストールしたのか忘れてしまいます。
Vimの環境構築とか何やってたのか覚えてなかったりするので どうせLinux系OSを使うならセットアップを自動化しよう、と考えました。
シェルではだめなのか
AnsiblePlaybookを使っていますが、最初はシェルで書いていました。
curl URL | sh
で環境構築が終わるような感じです。これはこれで便利でした。
しかしながらOSをごとに使うコマンドが違ったり、 このOSにはこのコマンドがないので追加でインストールが必要、みたいな ことが度々あって、それを分岐させるのが大変でした。
ロール(タスクのまとまり)で分ける、というアプローチが取りづらかったんです。
Ansibleに変更して、最初にAnsibleをインストールする手間が発生してしまいましたが、 それ以外はとても快適につかえています。
参考になったリンク
Ansibleはまともに動かせるようになるまでに時間がかかる。 覚えることも多いです。 ということでまともにかけるようになるまでに参考にした記事を記載。 僕がわざわざ書くよりも、今はWebに情報が豊富になっているので。
はてなブックマークの自分のansibleタグのページです。
https://b.hatena.ne.jp/jiroron666/search?q=ansible
特に参考になったのはこの記事。
最後に
Ansibleでローカル開発環境構築自動化するのいいよ、というだけの話でした。
Ansibleをおすすめする記事で必ず見かける「べき統制」「設定ファイルベース」 という点は、こうして自分でずっとメンテし続けるとたしかにメリットを体感します。
あの記述どうやったっけ、ってのをさっとコピペして使い回せますし、 何回も実行できますからね。
こうして自動化するスクリプトを作っておくことのメリットは 1つは自動化による環境構築コストの低下ですが、 もう1つは構築漏れがなくなることだと思います。
結構、OS入れ直して実行してみたら失敗することありました。 が、都度修正すればいいですし、大半は動くので修正量は少ないです。
個人開発機ですし完全な自動化はできてなくても、 設定しないといけない物事について、設定ファイルとしてまとまっていることが大事です。
なので、Ansibleでなくてもよいので 自分の開発機の環境構築スクリプトとかは用意しとくと いいと思います。