Установите RVM с ansible

Можно посмотреть на интернет-сокеты и соединения и программы, которые владеют ими с также sudo lsof -i или sudo netstat -nap46 . Вы видите, оставляет ли трафик машину путем передачи -i $EXTERNAL_INTERFACE к tshark или tcpdump.

6
задан 16 April 2015 в 21:00
7 ответов

Возможно, код ответа от скрипта отличен от нуля?

"rc": 1

0
ответ дан 3 December 2019 в 00:08

У меня это сработало (Ubuntu):

    tasks:
      - name: Install RVM
        shell: "curl -sSL https://get.rvm.io | bash"

Использование обычного (не root) пользователя.

4
ответ дан 3 December 2019 в 00:08

Building on @dynex's answer, here's a way to do it a bit more idempotently, by checking for a folder it would normally create.

- stat: path=/etc/profile.d/rvm.sh
  register: rvm_folder

- name: install rvm
  shell: "curl -sSL https://get.rvm.io | bash"
  when: rvm_folder.stat.isdir is not defined
2
ответ дан 3 December 2019 в 00:08

Я также пробовал установить RVM с помощью Ansible. К сожалению, RVM плохо работает с неинтерактивными оболочками, потому что это функция сценария оболочки. Вместо этого я установил rbenv ( https://github.com/sstephenson/rbenv ).

Вот моя суть:

https://gist.github.com/brendan-skyrkt/7699067

1
ответ дан 3 December 2019 в 00:08

Поскольку rvm плохо работает с неинтерактивными оболочками, если вы все еще хотите использовать rvm с ansible, вы должны написать свои собственные сценарии, которые вызывают rvm, но начинают с bash -l (оболочка входа в систему):

- name: install ruby-1.9.3
    script: scripts/install-ruby-1.9.3.sh

Где install-ruby-1.9.3.sh содержит что-то вроде

#!/bin/bash -l
rvm install 1.9.3

Старайтесь, чтобы такие сценарии были небольшими и ориентированными только на одну задачу (плюс обработка ] $? для основной команды, если существует значение выхода, отличное от 0, которое вы хотите принять). Для второго рубина используйте второй сценарий, который инкапсулирует вторую команду.

0
ответ дан 3 December 2019 в 00:08

Пособие по установке RVM и Ruby

Вот идемпотентное руководство, которое установит RVM, конкретную версию Ruby (установите версию с помощью ruby_version var) и установите ее версия Ruby по умолчанию:

---

- hosts: all
  sudo: yes
  vars:
    ruby_version: "2.1.3"
    rvm_path: "/usr/local/rvm/gems/ruby-{{ ruby_version }}/bin:/usr/local/rvm/gems/ruby-{{ ruby_version }}@global/bin:/usr/local/rvm/rubies/ruby-{{ ruby_version }}/bin:/usr/local/rvm/bin"

  tasks:

  - name: append rvm path to environment
    lineinfile: dest=/etc/environment state=present backrefs=yes regexp='PATH=(["]*)((?!.*?{{rvm_path}}).*?)(["]*)$' line="PATH=\1\2:{{rvm_path}}\3"


  - name: ensure necessary packages are installed
    yum:
      name: "{{ item }}"
      state: present
    with_items:
      - curl
      - gnupg2

  - name: ensure that GPG key for RVM is installed
    command: gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
    args:
      creates: /root/.gnupg/secring.gpg

  - name: ensure that RVM is installed
    shell: curl -L get.rvm.io | bash -s stable
    args:
      creates: /usr/local/rvm

  - name: ensure that ruby is installed
    command: "rvm install {{ ruby_version }}"
    args:
      creates: "/usr/local/rvm/gems/ruby-{{ ruby_version }}"
    environment:
      PATH: "{{ rvm_path }}:{{ ansible_env.PATH }}"

  - name: set default version of ruby with rvm
    command: "rvm alias create default ruby-{{ ruby_version }}"
    args:
      creates: /usr/local/rvm/config/alias
    environment:
      PATH: "{{ rvm_path }}:{{ ansible_env.PATH }}"
4
ответ дан 3 December 2019 в 00:08

В наши дни я считаю, что рекомендуемый способ - использовать доступную роль RVM . Инструкции есть в README этого проекта.

2
ответ дан 3 December 2019 в 00:08

Теги

Похожие вопросы