【연재 01】214.(Ansible)Rbenv를 사용해 Ruby 환경을 인스톨

【연재 01】214.(Ansible)Rbenv를 사용해 Ruby 환경을 인스톨

2022-10-06 last update

11 minutes reading ansible-playbook YAML Ansible ruby-build 루비
본 기사는 사례 연구의 연재입니다. 목차는 【이쪽】 입니다.
최신 소스 코드는 【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 설치 및 배치 」에 대해.

연재의 목차는 【이쪽】 입니다.