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

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

Androidからmoshでサーバーにログインしてみる

Centosのサーバーにmoshを入れて試してみる
でサーバーにmoshをいれてみましたが、今度はAndroidからつないでみました

JuiceSShというのがmoshに対応しているので入れてみました
JuiceSSH – SSH Client – Google Play の Android アプリ

立ち上げてプラスボタンで新規設定
(画像の色が悪いのは、目にやさしいアプリをいれてたからです)

設定を入れていきます
mosh-android1

秘密鍵はAndroid携帯へUSB経由とかで渡しておいて、読み込ませます
mosh-android2

つないでみた感じがこちら

mosh-android3

これでサーバー側で開発するものを用意できれば、Androidだけで開発ができる!
サーバー側で準備をいろいろ進めないと

Centosのサーバーにmoshを入れて試してみる

サーバーにsshで入って色々作業してるときに、ネットワークが不安定にあってフリーズ..とか困る場合にmoshがいいらしいです
Mosh: the mobile shell

sshを超えるらしいです、仕組みもすごそう

Centosのサーバーにmoshを入れて試してみました

Centos 6.4のサーバーにsshでログイン

$ sudo yum install mosh

これだけでクライアントとサーバーが両方入ります
ここではサーバーとして使いますが、デーモンを起動したりせず、クライアントからmoshでつなげば
自動でサーバーが起動するようです

UDPの60000 – 61000を使うそうなので、ファイアーウォールを開けます

$ sudo vim /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m udp -p udp --dport 60000:61000 -j ACCEPT

を追記

$ sudo service iptables restart

で変更が反映されるはずです

$ sudo service iptables status

で確認
あとは、クライアントからつないでみます
Ubuntu 14.04を使いました

$ sudo apt-get install mosh

これだけ
あとは今まで使っていたsshコマンドの代わりに

$ mosh sample.co.jp

とかでつなげば大丈夫です
.ssh/configもそのままできるので、便利です