Rbenv를 사용해 Ruby 환경을 인스톨.png)
【연재 01】214.(Ansible)Rbenv를 사용해 Ruby 환경을 인스톨
2022-10-06 last update
11 minutes reading ansible-playbook YAML Ansible ruby-build 루비본 기사는 사례 연구의 연재입니다. 목차는 【이쪽】 입니다.
최신 소스 코드는 【GitHub】에서 공개 중입니다.
서버의 책임은 여기에서 확인하십시오.
스크립팅 언어 Ruby를 설치합니다. Ruby는 주로 웹 응용 프로그램에서 사용됩니다.
많다고 생각합니다만, 이번은 경량인 배치 쉘을 만드는 경우에 이용합니다.


${ANSIBLE_HOME}/site.yml
메인이 되는 playbook(site.yml) 참조
${ANSIBLE_HOME}/operations/1011_ruby.yml
playbook 의 코멘트의 보충에 대해서는 「 5. 보충 설명 」를 참조.
Ruby 설치는 다음과 같이 합니다.
1. rbenv git 클론
2. rbenv 빌드용 플러그인 git 클론
3. rbenv init - 를 로그인시 실행하도록/etc/profile.d/profile_init.sh에 eval "$(rbenv init -)"를 기술한다.
4. 3 쉘을 실행하여 현재 쉘 환경 내에서 rbenv를 사용할 수 있도록 합니다.
5. rbenv를 사용하여 ruby2.1.8,ruby2.2.4 설치
6. ruby2.1.8,ruby2.2.4의 2version 중 2.1.8을 사용하도록 설정
7. rehash한다. (~/.rbenv/shims/에 지정된 루비를 사용할 수 있도록 대체)
※ 이번 루비 설치에 관해서는 균등성 담보는
· which 루비가 실행 가능한 경우에는 상기 처리는 실시하지 않는다.
일하고 있지만,
· rbenv가 설치된 경우 설치 프로세스가 수행되지 않습니다.
· rbenv를 사용하여 해당 버전이 설치된 경우 설치하지 마십시오.
균등성의 담보는 검토의 여지 있다고 생각합니다.
루비 설치에 관해서는 향후 버전 업이나 다른 버전에서의 실행 확인을 쉽게 할 수 있도록
환경 전환에 편리한 rbenv를 사용하여 실행합니다.
rbenv는 github보다 복제하여 실행합니다.
ansible로 git에서 복제하려면 git 모듈을 사용하십시오.
git 모듈
repo에 URL을 지정하고 복제합니다.
command 모듈
rbenv는 모듈이 존재하지 않기 때문에 command 모듈을 사용하여 실행합니다.
command 모듈을 사용하기 때문에 일반 shell과 설명은 동일합니다.
복수 ruby 버전을 인스톨했을 경우의 디폴트 지정은 rbenv의 global를 지정해 실시한다.
마지막으로 rbenv에서 버전을 전환하거나 gem을 설치 한 경우
rehash를 수행하고 ~/.rbenv/shims 이하에 지정된 버전 복사
(그렇지만 현재는 불필요하게 되어 있다. rehash에 관해서는 만약을 위해.)
다음번은 「 215.java/Tomcat 설치 및 배치 」에 대해.
연재의 목차는 【이쪽】 입니다.
최신 소스 코드는 【GitHub】에서 공개 중입니다.
서버의 책임은 여기에서 확인하십시오.
1.ruby 설정 개요
스크립팅 언어 Ruby를 설치합니다. Ruby는 주로 웹 응용 프로그램에서 사용됩니다.
많다고 생각합니다만, 이번은 경량인 배치 쉘을 만드는 경우에 이용합니다.

2.playbook 파일의 상관

3.playbook(site.yml)
${ANSIBLE_HOME}/site.yml
메인이 되는 playbook(site.yml) 참조
4.ruby 설치/설정 playbook(/operations/1011_ruby.yml)
${ANSIBLE_HOME}/operations/1011_ruby.yml
playbook 의 코멘트의 보충에 대해서는 「 5. 보충 설명 」를 참조.
# ========================================================
# Rubyをインストール(ruby.yml)
# ========================================================
- hosts: all
sudo: no
remote_user: root
tasks:
# ========================================================
# rubyが既にインストールされている場合は実行しない
# 為の確認コマンド
# ========================================================
- name: Rubyの存在確認
shell: which ruby
register: ruby_install
failed_when: ruby_install.rc not in [0, 1]
# ========================================================
# 以下のRubyがインストールされている場合は設定しない
# ========================================================
# ========================================================
# githubよりrbenv(Rubyの複数バージョン切替)をクローンする
# ========================================================
- name: gitからrbenvをクローンする
git: repo=https://github.com/sstephenson/rbenv.git dest=~/.rbenv
when: ruby_install.rc == 1
# ========================================================
# githubよりruby-build(rubyインストーラ)をクローンする
# ========================================================
- name: rbenvビルドプラグインをクローンする
git: repo=https://github.com/sstephenson/ruby-build.git dest=/root/.rbenv/plugins/ruby-build
when: ruby_install.rc == 1
# ========================================================
# rbenv init置換する
# ========================================================
- name: profile_init.sh内のREPLACE_EXECRBENVをrbenv initに置換する
replace: dest=/etc/profile.d/profile_init.sh regexp="^#REPLACE_EXECRBENV" replace='eval "$(rbenv init -)" >/dev/null 2>&1'
when: ruby_install.rc == 1
# ========================================================
# profile_init.shを再読み込み
# ========================================================
- name: bashの実行
shell: /etc/profile.d/profile_init.sh
when: ruby_install.rc == 1
# ========================================================
# ruby 2.1.8バージョンをインストールする
# ========================================================z
- name: 2.1.8のインストール
command: rbenv install 2.1.8
when: ruby_install.rc == 1
# ========================================================
# ruby 2.2.4バージョンをインストールする
# ========================================================z
- name: 2.2.4のインストール
command: rbenv install 2.2.4
when: ruby_install.rc == 1
# ========================================================
# rbenv rehashを行う
# ========================================================z
- name: rehashを行う
command: rbenv rehash
when: ruby_install.rc == 1
# ========================================================
# ruby 2.1.8をデフォルトに設定
# ========================================================z
- name: 2.1.8をデフォルトに設定
command: rbenv global 2.1.8
when: ruby_install.rc == 1
# ========================================================
# rbenv rehashを行う
# ========================================================z
- name: rehashを行う
command: rbenv rehash
when: ruby_install.rc == 1
5. 보충 설명
5.a 실행 처리 개요
Ruby 설치는 다음과 같이 합니다.
1. rbenv git 클론
2. rbenv 빌드용 플러그인 git 클론
3. rbenv init - 를 로그인시 실행하도록/etc/profile.d/profile_init.sh에 eval "$(rbenv init -)"를 기술한다.
4. 3 쉘을 실행하여 현재 쉘 환경 내에서 rbenv를 사용할 수 있도록 합니다.
5. rbenv를 사용하여 ruby2.1.8,ruby2.2.4 설치
6. ruby2.1.8,ruby2.2.4의 2version 중 2.1.8을 사용하도록 설정
7. rehash한다. (~/.rbenv/shims/에 지정된 루비를 사용할 수 있도록 대체)
※ 이번 루비 설치에 관해서는 균등성 담보는
· which 루비가 실행 가능한 경우에는 상기 처리는 실시하지 않는다.
일하고 있지만,
· rbenv가 설치된 경우 설치 프로세스가 수행되지 않습니다.
· rbenv를 사용하여 해당 버전이 설치된 경우 설치하지 마십시오.
균등성의 담보는 검토의 여지 있다고 생각합니다.
5.b. 실행 처리 보충 설명
루비 설치에 관해서는 향후 버전 업이나 다른 버전에서의 실행 확인을 쉽게 할 수 있도록
환경 전환에 편리한 rbenv를 사용하여 실행합니다.
rbenv는 github보다 복제하여 실행합니다.
ansible로 git에서 복제하려면 git 모듈을 사용하십시오.
git 모듈
repo에 URL을 지정하고 복제합니다.
git: repo=https://github.com/sstephenson/rbenv.git dest=~/.rbenv
command 모듈
rbenv는 모듈이 존재하지 않기 때문에 command 모듈을 사용하여 실행합니다.
command 모듈을 사용하기 때문에 일반 shell과 설명은 동일합니다.
command: rbenv install 2.2.4
복수 ruby 버전을 인스톨했을 경우의 디폴트 지정은 rbenv의 global를 지정해 실시한다.
command: rbenv global 2.2.4
마지막으로 rbenv에서 버전을 전환하거나 gem을 설치 한 경우
rehash를 수행하고 ~/.rbenv/shims 이하에 지정된 버전 복사
(그렇지만 현재는 불필요하게 되어 있다. rehash에 관해서는 만약을 위해.)
command: rbenv rehash
다음번은 「 215.java/Tomcat 설치 및 배치 」에 대해.
연재의 목차는 【이쪽】 입니다.