ansible-playbookをlocalhostあてに適用する

ansible-playbookを使っていて、一部をlocalhostに当てたかったので調べてみました

Delegation, Rolling Updates, and Local Actions — Ansible Documentation

にバッチシ書いてある

$ ansible-playbook playbook.yml –connection=local

でいいらしい

インベントリファイルを作って

$ vim localhost

[dev]
localhost

playbookにhosts: localhostの記載を足して(もしくはhosts: all)

$ ansible-playbook -i localhost site.yml -t test –connection=local -K -vvv

で当ててみました
-t で指定したtagだけ、-Kでsudo時のパスワードを入力、-vvvは詳細に表示が出ます

いやー、便利

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

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