All Projects → rvm → Rvm1 Ansible

rvm / Rvm1 Ansible

Licence: mit
The official ansible RVM role to install and manage your Ruby versions.

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Rvm1 Ansible

Ansible Openwisp2 Imagegenerator
Automatically build several openwisp2 firmware images for different organizations while keeping track of their differences
Stars: ✭ 122 (-50.41%)
Mutual labels:  ansible, ansible-role
Nginx
A fairly flexible and feature full Ansible role for the NGINX web server.
Stars: ✭ 151 (-38.62%)
Mutual labels:  ansible, ansible-role
Ansible Role Ssl Certs
Generate and/or deploy SSL certificate
Stars: ✭ 122 (-50.41%)
Mutual labels:  ansible, ansible-role
Ansible Role Firewall
A role to manage iptables rules which doesn't suck.
Stars: ✭ 81 (-67.07%)
Mutual labels:  ansible, ansible-role
Graylog Ansible Role
Ansible role which installs and configures Graylog
Stars: ✭ 173 (-29.67%)
Mutual labels:  ansible, ansible-role
Ubuntu1604 Cis
Ubuntu CIS Hardening Ansible Role
Stars: ✭ 88 (-64.23%)
Mutual labels:  ansible, ansible-role
Ansible Role K3s
Ansible role for installing k3s as either a standalone server or HA cluster.
Stars: ✭ 132 (-46.34%)
Mutual labels:  ansible, ansible-role
Ansible Role Visual Studio Code
Ansible role for installing the Visual Studio Code IDE
Stars: ✭ 58 (-76.42%)
Mutual labels:  ansible, ansible-role
Nexus3 Oss
Ansible role to install and provision sonatype nexus3-oss
Stars: ✭ 169 (-31.3%)
Mutual labels:  ansible, ansible-role
Ansible Relayor
An Ansible Role for Tor Relay Operators
Stars: ✭ 165 (-32.93%)
Mutual labels:  ansible, ansible-role
Molecule Ansible Docker Aws
Example project showing how to test Ansible roles with Molecule using Testinfra and a multiscenario approach with Docker, Vagrant & AWS EC2 as infrastructure providers
Stars: ✭ 72 (-70.73%)
Mutual labels:  ansible, ansible-role
Ansible Playbook Grapher
A command line tool to create a graph representing your Ansible playbook tasks and roles
Stars: ✭ 234 (-4.88%)
Mutual labels:  ansible, ansible-role
Centos7 Cis
Ansible CentOS 7 - CIS Benchmark Hardening Script
Stars: ✭ 64 (-73.98%)
Mutual labels:  ansible, ansible-role
Ansible Elasticsearch
Ansible playbook for Elasticsearch
Stars: ✭ 1,316 (+434.96%)
Mutual labels:  ansible, ansible-role
Ansible In Action
Ansible playbook to deploy your Laravel code base to VPS
Stars: ✭ 61 (-75.2%)
Mutual labels:  ansible, ansible-role
Sensu Ansible
An Ansible role to deploy a fully dynamic Sensu stack!
Stars: ✭ 126 (-48.78%)
Mutual labels:  ansible, ansible-role
Ansible Phoenix
[Unmaintained] Develop and deploy a Phoenix app using Ansible!
Stars: ✭ 37 (-84.96%)
Mutual labels:  ansible, ansible-role
Ansible Kvm
Stars: ✭ 40 (-83.74%)
Mutual labels:  ansible, ansible-role
Ansible Nomad
⌚️ Ansible role for Nomad
Stars: ✭ 157 (-36.18%)
Mutual labels:  ansible, ansible-role
Ansible Role Wireguard
Ansible role for installing WireGuard VPN. Supports Ubuntu, Debian, Archlinx, Fedora and CentOS.
Stars: ✭ 176 (-28.46%)
Mutual labels:  ansible, ansible-role

Build Status OpenCollective OpenCollective Ansible Role Ansible Role Downloads

What is rvm1-ansible?

It is an Ansible role to install and manage ruby versions using rvm.

Why should you use rvm?

In production it's useful because compiling a new version of ruby can easily take upwards of 10 minutes. That's 10 minutes of your CPU being pegged at 100%.

rvm has pre-compiled binaries for a lot of operating systems. That means you can install ruby in about 1 minute, even on a slow micro instance.

This role even adds the ruby binaries to your system path when doing a system wide install. This allows you to access them as if they were installed without using a version manager while still benefiting from what rvm has to offer.

Installation

$ ansible-galaxy install rvm.ruby

Role variables

Below is a list of default values that you can configure:

---

# Install 1 or more versions of ruby
# The last ruby listed will be set as the default ruby
rvm1_rubies:
  - 'ruby-2.3.1'

# Install the bundler gem
rvm1_bundler_install: True

# Delete a specific version of ruby (ie. ruby-2.1.0)
rvm1_delete_ruby:

# Install path for rvm (defaults to single user)
# NOTE: If you are doing a ROOT BASED INSTALL then make sure you
#       set the install path to something like '/usr/local/rvm'
rvm1_install_path: '~/.rvm'

# Add or remove any install flags
# NOTE: If you are doing a ROOT BASED INSTALL then
#       make sure you REMOVE the --user-install flag below
rvm1_install_flags: '--auto-dotfiles  --user-install'

# Add additional ruby install flags
rvm1_ruby_install_flags:

# Set the owner for the rvm directory
# NOTE: If you are doing a ROOT BASED INSTALL then
#       make sure you set rvm1_user to 'root'
rvm1_user: 'ubuntu'

# URL for the latest installer script
rvm1_rvm_latest_installer: 'https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer'

# rvm version to use
rvm1_rvm_version: 'stable'

# Check and update rvm, disabling this will force rvm to never update
rvm1_rvm_check_for_updates: True

# GPG key verification, use an empty string if you want to skip this
# Note: Unless you know what you're doing, just keep it as is
#           Identity proof: https://keybase.io/mpapis
#           PGP message: https://rvm.io/mpapis.asc
rvm1_gpg_keys: '409B6B1796C275462A1703113804BB82D39DC0E3'

# The GPG key server
rvm1_gpg_key_server: 'hkp://pool.sks-keyservers.net'

# autolib mode, see https://rvm.io/rvm/autolibs
rvm1_autolib_mode: 3

Example playbooks

---

- name: Configure servers with ruby support for single user
  hosts: all

  roles:
    - { role: rvm.ruby,
        tags: ruby,
        rvm1_rubies: ['ruby-2.3.1'],
        rvm1_user: 'ubuntu'
      }

If you need to pass a list of ruby versions, pass it in an array like so.

---
- name: Configure servers with ruby support system wide
  hosts: all
  roles:
    - { role: rvm.ruby,
        tags: ruby,
        become: yes,

        rvm1_rubies: ['ruby-2.2.5','ruby-2.3.1'],
        rvm1_install_flags: '--auto-dotfiles',     # Remove --user-install from defaults
        rvm1_install_path: /usr/local/rvm,         # Set to system location
        rvm1_user: root                            # Need root account to access system location
      }

rvm_rubies must be specified via ruby-x.x.x so that if you want ruby 2.2.5, you will need to pass in an array rvm_rubies: ['ruby-2.2.5']

System wide installation

The above example would setup ruby system wide. It's very important that you run the play as root because it will need to write to a system location specified by rvm1_install_path

To the same user as ansible_user

In this case, just overwrite rvm_install_path and by default is set the --user-install flag:

rvm1_install_flags: '--auto-dotfiles --user-install'
rvm1_install_path: '/home/{{ ansible_user }}/.rvm'

To a user that is not ansible_user

You will need root access here because you will be writing outside the ansible user's home directory. Other than that it's the same as above, except you will supply a different user account:

rvm1_install_flags: '--auto-dotfiles --user-install'
rvm1_install_path: '/home/someuser/.rvm'

A quick note about rvm1_user

In some cases you may want the rvm folder and its files to be owned by a specific user instead of root. Simply set rvm1_user: 'foo' and when ruby gets installed it will ensure that foo owns the rvm directory.

Upgrading and removing old versions of ruby

A common work flow for upgrading your ruby version would be:

  1. Install the new version
  2. Run your application role so that bundle install re-installs your gems
  3. Delete the previous version of ruby

Leverage ansible's --extra-vars

Just add --extra-vars 'rvm1_delete_ruby=ruby-2.1.0' to the end of your play book command and that version will be removed.

Requirements

Potentially, any Linux/Unix system supported by Ansible and satisfying the RVM prerequisites should work.

Compatibility with Linux distributions based on Debian, Ubuntu or Redhat families is actively tested.

The continuous integration setup of this project currently covers following platforms:

  • CentOS 6, 7 and 8
  • Debian 8, 9 and 10
  • Ubuntu 14.04, 16.04, 18.04 and 20.04

Ansible galaxy

You can find it on the official ansible galaxy if you want to rate it.

Contributing

Backers

Become a backer and support us with a small monthly donation to help us continue our activities.

Backer Backer Backer Backer Backer Backer Backer Backer Backer Backer Backer Backer Backer Backer Backer Backer Backer Backer Backer Backer

Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site.

Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor Sponsor

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].