Title - Wake Up! Good Night*

AnsibleでDotfilesをインストール

Posted on July 12, 2017
Tags: ansible, dotfiles

DotfilesのインストールをAnsibleのPlaybookにしました。

dotfiles

デメリットはもちろんAnsibleがインストールされていないといけないことなので、ここはスクリプトでやることにしました。

Ansibleにするメリットは、任意のパートを実行しやすいことと、冪等性が保たれていることです。また、dotfilesをデプロイする前に、いろいろパッケージをダウンロードしたり、インストールしたりするのが、意外と手間だったので、それを自動化したい思いもありました。

はじめにインストーラーをキックします bash -c "$(curl -fsSL https://git.io/imokuri)" 。 この時、Proxyが必要な環境では、環境変数を設定しておきます。環境変数でProxyが設定されている場合は、AnsibleでもProxyを使用するようになっています。

キックされたインストーラーでAnsibleをインストールして、Playbookをキックします。

デプロイ対象のdotfilesはレポジトリにあるファイルのうち、「デプロイしないもの」を設定して、それ以外をデプロイ(シンボリックリンクを作る)するようにしています。これによって、デプロイ対象が増えても、Playbookを修正する手間がなくなります。

シンボリックリンクを作成する際は、正規表現を使って、走査したパスからファイル名を取得しています。

これで、インストール直後に、コマンド一発でいつもの環境になりました!

submit to reddit このエントリーをはてなブックマークに追加