質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

Q&A

解決済

1回答

475閲覧

Ansibleを使ってCentOS7にRubyをインストしたい

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

0グッド

1クリップ

投稿2018/06/28 09:18

編集2018/06/29 02:13

VagrantでRubyの開発環境を作ろうと思い、この記事にかいてあるものをplaybook化して楽にインストールしてやろう!と思っていたのですが上手くいきませんでした。

Vagrantファイル Vagrant.configure("2") do |config| config.vm.define :main do |main| main.vm.box = "centos/7" main.vm.network "private_network", ip: "192.168.33.11" main.vm.provision "ansible_local" do |ansible| ansible.playbook = "ansible/playbook.yml" end end end
playbook.yml - hosts: all become: yes roles: - role: ruby2.5.1
ruby2.5.1(main.yml) - name: Install git yum: name={{ item }} state=present with_items: - git - name: git clone rbenv become_user: vagrant shell: git clone https://github.com/rbenv/rbenv.git ~/.rbenv - name: rbenv path1/2 become_user: vagrant shell: echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile - name: rbenv path2/2 become_user: vagrant shell: echo 'eval "$(rbenv init -)"' >> ~/.bash_profile - name: bash reload become_user: vagrant shell: source ~/.bash_profile - name: git clone ruby-build become_user: vagrant shell: git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build - name: install ruby-build become_user: vagrant shell: ~/.rbenv/plugins/ruby-build/install.sh - name: Install package yum: name={{ item }} state=present with_items: - openssl-devel - readline-devel - zlib-devel - name: Install ruby shell: bash -lc "rbenv install 2.5.1" - name: ruby path become_user: vagrant shell: echo 'eval "$(rbenv init -)"' >> ~/.bash_profile - name: bash reload become_user: vagrant shell: source ~/.bash_profile - name: rbenv default ruby shell: bash -lc "rbenv global 2.5.1"

エラー内容(Install rubyで起きてます)install ruby-buildでおきてました

fatal: [main]: FAILED! => {"changed": true, "cmd": "~/.rbenv/plugins/ruby-build/install.sh", "delta": "0:00:00.008630", "end": "2018-06-28 09:05:53.032514", "msg": "non-zero return code", "rc": 1, "start": "2018-06-28 09:05:53.023884", "stderr": "mkdir: cannot create directory ‘/usr/local/share/ruby-build’: Permission denied", "stderr_lines": ["mkdir: cannot create directory ‘/usr/local/share/ruby-build’: Permission denied"], "stdout": "", "stdout_lines": []}

エラーの内容的に権限がないってことらしいんですが、ansibleではなくsshで直接rbenvコマンドをたたけば問題なくrubyがインストールされたため、よくわからなくなってしまいました。

どなたかお力添えしていただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まずそもそものエラーが起きている場所ですが、Install rubyではなくinstall ruby-buildで起きていました。

そして肝心のエラーが起きていた原因ですが、単純にmkdirを実行する権限がないことが原因でした。

- name: install ruby-build become_user: vagrant shell: ~/.rbenv/plugins/ruby-build/install.sh

become_userでvagrantユーザーを指定していたため、mkdirを実行する権限がなかったというわけですね。playbook.ymlのほうで

become: yes

とかいて、特に指定がなければrootユーザーで実行するようにしていたので、become_userを外してやることで無事にエラーが起きずにansibleが実行されました。

投稿2018/06/30 00:37

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問