rbenvをansibleつかってインストール
ansibleの勉強も兼ねて。
環境
今回はvagrantのprovisoningは使わずに、サーバを2台用意。 共にvagrant上に立てたcentos6.2
- nodeA : ansibleを実行するサーバ
- nodeB : rbenvをインストールするサーバ
VagrantFileは、それぞれIPのとssh用のポートを設定。
まずansibleが使える環境づくり
ここはvagrantのprovisioningで。
鍵は事前に作っておきます。
鍵の置き場所は適当に変えてください。
※Ansible チュートリアル | Ansible Tutorial in Japaneseを参考に、vagrantの鍵を流用しようとしたのですが、何故かうまく鍵が使えず…
<nodeAのprovisioningスクリプト>
sudo yum update sudo yum install -y ansible sudo yum groupinstall -y "Development Tools" sudo yum install openssl-devel chmod 400 /vagrant/keys/id_rsa
nodeB側でも、鍵の登録をしておきます。
cat /vagrant/keys/id_rsa.pub >> ~/.authorized_keys
以上設定終わり。
まず疎通の確認から
これで、nodeAからつながるはず。
まず疎通の確認を、なのですがansibleでは接続先はファイルに書いておかないといけないので
ファイルを作成します。
echo "{nodeBのIP} ansible_ssh_private_key_file=/vagrant/keys/id_rsa" >> hosts
これで、疎通確認ができるはず。
ansible -i hosts {nodeBのIP} -m ping
successってでれば、疎通成功!
rbenvのインストール
ようやく本題。
playbookはこんな感じ。 書き方が拙いのはご勘弁。
- yum: name: git state: latest sudo: yes - yum: name: "@Development Tools" state: present sudo: yes - yum: name: "openssl-devel" state: present sudo: yes - git: repo: git://github.com/sstephenson/rbenv.git dest: "{{ rbenv_dir }}" accept_hostkey: yes - git: repo: git://github.com/sstephenson/ruby-build.git dest: "{{ rbenv_dir }}/plugins/ruby-build" accept_hostkey: yes - lineinfile: dest: ~/.bash_profile regexp: 'PATH=.*{{ rbenv_dir }}/bin' line: 'export PATH="{{ rbenv_dir }}/bin/:$PATH"' - lineinfile: dest: ~/.bash_profile regexp: 'rbenv init' line: 'eval "$(rbenv init -)"'
rubyのインストール
node2でrbenvコマンドが叩けるようになったので、あとはrubyをインストールするだけ
rbenv install --list rbenv install 2.2.2 rbenv global 2.2.2 rbenv rehash
問題が1つ。
rubyの部分をansibleにするかどうか。
…冪等性とか考えると、playbook書くの面倒だし
…バージョン変更とか考えると、ファイル自体は別にするべきだろうし。
うーん、やめておくか。