karlmdavis.rcm-dotfiles
RCMのためのAnsibleロール
このAnsibleロールは、dotfiles管理ツールであるRCMをインストールおよび設定するために使用できます。
このロールを適用すると、定義されたリポジトリをローカルで変更できます。これらのリポジトリで作成された新しいdotfilesは、次のコマンドを実行するだけでデプロイできます:
$ rcup -f
必要条件
このロールは、Ansible管理システムに次のものが必要です:
- Ansible>=2.4.0.0
- git>=1.7.1(コマンドラインツール)
管理対象のシステムには、次のものが必要です:
- Ubuntu 16.04(
rcm_install_mode: no_internet
を使用しない場合、ほとんどのOSがサポートされています)
ロール変数
ユーザーが定義できる変数を以下に示します:
rcm_user
: RCMリポジトリがインストールされるユーザー。rcm_repos
: インストールされるdotfilesのGitリポジトリのリスト。repo
: GitリポジトリのURL。refspec
: クローンする特定のGitリビジョン(デフォルトはmaster
)。dest
: リポジトリをクローンするディレクトリ。
rcm_install_mode
:no_internet
に設定すると、管理システムで全てのダウンロードを行い、管理されるシステムにインターネット接続があると仮定しません。このモードでは、RCMはユーザーごとにインストールされ、システム全体ではありません。rcm_replace_existing_files
:true
に設定すると、rcup
に-f
フラグが渡され、既存のファイルを上書きできます。たとえば、ユーザーのデフォルトのbashrc
ファイルをdotfilesリポジトリからのものに置き換えるために使用できます。
デフォルトの変数とそのデフォルト値についてはdefaults/main.ymlを参照してください。
依存関係
このロールは他のAnsibleロールに実行時依存関係はありません。
プレイブックの例
以下は、このロールをAnsibleプレイでbox
ホストに適用する例です:
- hosts: box
tasks:
- name: RCMのインストールと設定
include_role:
name: karlmdavis.rcm-dotfiles
vars:
rcm_user: ansible_test
rcm_install_mode: no_internet
rcm_repos:
- repo: 'https://foosball.example.com/path/to/repo.git'
dest: '/home/karl/.dotfiles-repo.git'
開発環境
このプロジェクトを開発・修正するために、いくつかのツールをインストールする必要があります。
Python
このプロジェクトはPython 2.7が必要です。以下のようにインストールできます:
$ sudo apt-get install python
virtualenv
このプロジェクトには、pip
を介してインストールする必要がある依存関係があります(apt-get
ではなく)。したがって、これらの依存関係を管理するためにPython仮想環境の使用を強くお勧めします。
まだインストールされていない場合は、virtualenv
パッケージをインストールしてください。Ubuntuでは、以下のように行うのが最適です:
$ sudo apt-get install python-virtualenv
Docker
テスト用のDockerコンテナをローカルで起動することが便利なこともあります。そのためには、Dockerをインストールする必要があります。そのインストールはこのガイドの範囲外ですが、簡単なウェブ検索で始められるはずです。
テストの実行
これらのツールがインストールされたら、test/run-tests.sh
スクリプトを使用してローカルでテストを実行できます。または、変更をGitHubのブランチやプルリクエストにプッシュし、Travis CIがテストを実行します:Travis CI: karlmdavis/ansible-role-rcm-dotfiles。
ライセンス
このプロジェクトはGNU一般公衆ライセンス第3版の下でライセンスされています。