ansible galaxyを使ってrbenvをインストールしてみる

ansibleでインフラのコード化を進めてますが、rubyのインストール時に使っていたrbenvがうまくいかなかったので
Galaxy – zzet.rbenv
を使ってみました

ansibleはインストール済み、サーバーもsshでつながる状態からはじめました

指示があるように(sudoはつけました)
$ sudo ansible-galaxy install zzet.rbenv

でデフォルトのディレクトリだと
/etc/ansible/roles/zzet.rbenv
へインストールされます

ディレクトリを変更するなら
/etc/ansible/ansible.cfg
に指定すればよさそうです

playbookに

- hosts: sample
  become: yes
  become_method: sudo
  gather_facts: true # https://github.com/zzet/ansible-rbenv-role/issues/37
  vars:
    rbenv:
      env: system
      version: v1.0.0
      ruby_version: 2.3.0
  roles:
    - role: zzet.rbenv
      rbenv_users:
        - user

を追記

sudoをつけたり、バージョン指定したりします
あとは実行すれば

$ ansible-playbook -i hosts site.yml -vvv

rbenvでruby v2.3.0が入った環境ができました

はまったところはこちら
Vagrantへansibleでrbenv installするとコケる

Vagrantへansibleでrbenv installするとコケる

ansibleを使って、Vagrantへのrbenv installをするとエラーでこけました

$ rbenv install 2.3.0
でこけてたみたい

/tmpに吐かれたエラーをメモし忘れましたが
Ruby 2.2.0 Fails during “Generating RI” · Issue #721 · rbenv/ruby-build
と同じエラーでした
rdocあたりでこけてました

原因はメモリー不足だったようで

$ vim Vagrantfile

  config.vm.provider "virtualbox" do |vb|
    vb.customize ["modifyvm", :id, "--memory", "2048"]
  end

とメモリ2GBにして再起動

$ vagrant reload

これで再度実行すると無事終わりました

vagrant内へsshでログインしてみる

vagrantで立ち上げた環境へsshコマンドでログインしてみました

まずvagrant環境を立ち上げます

$ vagrant up

sshでつなぐ環境を見てみます

$ vagrant ssh-config

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /home/user/vg/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

これを~/.ssh/configに追記すればいいですがHost名を指定して書き出してみます

$ vagrant ssh-config –host vagrant >> ~/.ssh.config

Host名をvagrantにして、追記されました

試しにログイン
$ ssh vagrant

これでログイン出来ました

vagrantでCPUが100%に張り付く

vagrantで開発してると、PCのファンが全開で熱くなってる..と思って
topコマンド見たら

VBoxHeadlessってのが100%を超えてる、ずっと超えてる

調べてたらpluginが怪しそうなので確認

$ vagrant plugin list
vagrant-cachier (1.2.0)
vagrant-login (1.0.1, system)
vagrant-omnibus (1.4.1)
vagrant-share (1.1.3, system)

アップデートしてみる

$ vagrant plugin update
Updating plugins: vagrant-cachier. This may take a few minutes…
Updated ‘vagrant-cachier’ to version ‘1.2.1’!
Updated ‘vagrant-share’ to version ‘1.1.4’!

ちょこっとアップデートされました

$ vagrant plugin list
vagrant-cachier (1.2.1)
vagrant-login (1.0.1, system)
vagrant-omnibus (1.4.1)
vagrant-share (1.1.4, system)

これでだいぶ落ち着きました
しばらく様子見ます