abrizer 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.travis.yml +5 -0
  4. data/Gemfile +6 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +91 -0
  7. data/Rakefile +10 -0
  8. data/Vagrantfile +76 -0
  9. data/abrizer.gemspec +31 -0
  10. data/ansible/development-playbook.retry +1 -0
  11. data/ansible/development-playbook.yml +19 -0
  12. data/ansible/development.ini +2 -0
  13. data/ansible/roles/basic-setup/tasks/main.yml +39 -0
  14. data/ansible/roles/bento4/tasks/main.yml +14 -0
  15. data/ansible/roles/ffmpeg/defaults/main.yml +6 -0
  16. data/ansible/roles/ffmpeg/tasks/ff-libraries.yml +21 -0
  17. data/ansible/roles/ffmpeg/tasks/ffmpeg.yml +18 -0
  18. data/ansible/roles/ffmpeg/tasks/libfdk_aac.yml +19 -0
  19. data/ansible/roles/ffmpeg/tasks/libmp3lame.yml +20 -0
  20. data/ansible/roles/ffmpeg/tasks/libogg.yml +18 -0
  21. data/ansible/roles/ffmpeg/tasks/libopus.yml +20 -0
  22. data/ansible/roles/ffmpeg/tasks/libvorbis.yml +18 -0
  23. data/ansible/roles/ffmpeg/tasks/libvpx.yml +18 -0
  24. data/ansible/roles/ffmpeg/tasks/main.yml +80 -0
  25. data/ansible/roles/ffmpeg/tasks/x264.yml +18 -0
  26. data/ansible/roles/ffmpeg/tasks/x265.yml +14 -0
  27. data/ansible/roles/ffmpeg/tasks/yasm.yml +19 -0
  28. data/ansible/roles/franklinkim.environment/.clog.toml +4 -0
  29. data/ansible/roles/franklinkim.environment/.editorconfig +16 -0
  30. data/ansible/roles/franklinkim.environment/.gitignore +2 -0
  31. data/ansible/roles/franklinkim.environment/.travis.yml +17 -0
  32. data/ansible/roles/franklinkim.environment/CHANGELOG.md +14 -0
  33. data/ansible/roles/franklinkim.environment/LICENSE +22 -0
  34. data/ansible/roles/franklinkim.environment/Makefile +11 -0
  35. data/ansible/roles/franklinkim.environment/README.md +100 -0
  36. data/ansible/roles/franklinkim.environment/Vagrantfile +23 -0
  37. data/ansible/roles/franklinkim.environment/defaults/main.yml +13 -0
  38. data/ansible/roles/franklinkim.environment/meta/.galaxy_install_info +1 -0
  39. data/ansible/roles/franklinkim.environment/meta/main.yml +143 -0
  40. data/ansible/roles/franklinkim.environment/meta/readme.yml +11 -0
  41. data/ansible/roles/franklinkim.environment/tasks/config.yml +21 -0
  42. data/ansible/roles/franklinkim.environment/tasks/main.yml +8 -0
  43. data/ansible/roles/franklinkim.environment/tests/main.yml +8 -0
  44. data/ansible/roles/rvm_io.rvm1-ruby/.gitignore +6 -0
  45. data/ansible/roles/rvm_io.rvm1-ruby/.travis.yml +52 -0
  46. data/ansible/roles/rvm_io.rvm1-ruby/LICENSE +22 -0
  47. data/ansible/roles/rvm_io.rvm1-ruby/README.md +142 -0
  48. data/ansible/roles/rvm_io.rvm1-ruby/defaults/main.yml +44 -0
  49. data/ansible/roles/rvm_io.rvm1-ruby/meta/main.yml +21 -0
  50. data/ansible/roles/rvm_io.rvm1-ruby/tasks/main.yml +4 -0
  51. data/ansible/roles/rvm_io.rvm1-ruby/tasks/rubies.yml +78 -0
  52. data/ansible/roles/rvm_io.rvm1-ruby/tasks/rvm.yml +55 -0
  53. data/ansible/roles/rvm_io.rvm1-ruby/tests/inventory +1 -0
  54. data/ansible/roles/rvm_io.rvm1-ruby/tests/test.yml +14 -0
  55. data/ansible/roles/rvm_io.rvm1-ruby/vars/main.yml +22 -0
  56. data/bin/console +14 -0
  57. data/bin/setup +8 -0
  58. data/exe/abrizer +5 -0
  59. data/lib/abrizer/adaptation.rb +53 -0
  60. data/lib/abrizer/adaptation_finder.rb +59 -0
  61. data/lib/abrizer/all.rb +20 -0
  62. data/lib/abrizer/cleaner.rb +37 -0
  63. data/lib/abrizer/cli.rb +84 -0
  64. data/lib/abrizer/ffmpeg_processor.rb +59 -0
  65. data/lib/abrizer/ffprobe_informer.rb +69 -0
  66. data/lib/abrizer/filepath_helpers.rb +33 -0
  67. data/lib/abrizer/package_dash_bento.rb +35 -0
  68. data/lib/abrizer/package_dash_shaka.rb +49 -0
  69. data/lib/abrizer/package_hls_bento.rb +35 -0
  70. data/lib/abrizer/package_hls_shaka.rb +50 -0
  71. data/lib/abrizer/processor.rb +8 -0
  72. data/lib/abrizer/progressive_mp4.rb +37 -0
  73. data/lib/abrizer/progressive_vp9.rb +57 -0
  74. data/lib/abrizer/sprites.rb +24 -0
  75. data/lib/abrizer/version.rb +3 -0
  76. data/lib/abrizer.rb +22 -0
  77. metadata +232 -0
@@ -0,0 +1,16 @@
1
+ # EditorConfig helps developers define and maintain consistent
2
+ # coding styles between different editors and IDEs
3
+ # editorconfig.org
4
+
5
+ root = true
6
+
7
+ [*]
8
+ # Change these settings to your own preference
9
+ indent_size = 2
10
+ indent_style = space
11
+
12
+ # We recommend you to keep these unchanged
13
+ charset = utf-8
14
+ end_of_line = lf
15
+ insert_final_newline = true
16
+ trim_trailing_whitespace = true
@@ -0,0 +1,2 @@
1
+ .DS_Store
2
+ .vagrant
@@ -0,0 +1,17 @@
1
+ ---
2
+ language: phyton
3
+ python: "2.7"
4
+
5
+ sudo: required
6
+
7
+ services:
8
+ - docker
9
+
10
+ before_install:
11
+ - docker pull williamyeh/ansible:ubuntu14.04
12
+
13
+ script:
14
+ - make test
15
+
16
+ notifications:
17
+ webhooks: https://galaxy.ansible.com/api/v1/notifications/
@@ -0,0 +1,14 @@
1
+ <a name="1.2.0"></a>
2
+ ## 1.2.0 (2016-07-25)
3
+
4
+
5
+ #### Features
6
+
7
+ * use ansible-role docgen to generate documentions ([857dc0f6](https://github.com/weareinteractive/ansible-environment/commit/857dc0f68c89a86bef35b407f73ca775afa77cce))
8
+ * add .editorconfig ([35798f5b](https://github.com/weareinteractive/ansible-environment/commit/35798f5bfc49ace1f9fdbfee5013725665a8c282))
9
+ * add CHANGELOG ([44b96586](https://github.com/weareinteractive/ansible-environment/commit/44b96586ecf38c20faf19f3466b0e5a0a690f0db))
10
+ * add environment file user and group vars ([d626b7bf](https://github.com/weareinteractive/ansible-environment/commit/d626b7bfaf515bfe123f2d6d66207d0af1bb498e))
11
+ * add environment_file var to allow writing alternative files ([df721dba](https://github.com/weareinteractive/ansible-environment/commit/df721dbab4511da678f05eba9a18fda2088a405a))
12
+
13
+
14
+
@@ -0,0 +1,22 @@
1
+ Copyright (c) We Are Interactive
2
+
3
+ Permission is hereby granted, free of charge, to any person
4
+ obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use,
7
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the
9
+ Software is furnished to do so, subject to the following
10
+ conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,11 @@
1
+ PWD=$(shell pwd)
2
+ ROLE_NAME=weareinteractive.environment
3
+ ROLE_PATH=/etc/ansible/roles/$(ROLE_NAME)
4
+ TEST_VERSION=ansible --version
5
+ TEST_SYNTAX=ansible-playbook -vv -i 'localhost,' -c local $(ROLE_PATH)/tests/main.yml --syntax-check
6
+ TEST_PLAYBOOK=ansible-playbook -vv -i 'localhost,' -c local $(ROLE_PATH)/tests/main.yml
7
+ TEST_CMD=$(TEST_VERSION); $(TEST_SYNTAX); $(TEST_PLAYBOOK)
8
+
9
+ .PHONY: test
10
+ test:
11
+ docker run -it --rm -e "ROLE_NAME=$(ROLE_NAME)" -v $(PWD):$(ROLE_PATH) williamyeh/ansible:ubuntu14.04 /bin/bash -c "$(TEST_CMD)"
@@ -0,0 +1,100 @@
1
+ # Ansible franklinkim.environment role
2
+
3
+ [![Build Status](https://img.shields.io/travis/weareinteractive/ansible-environment.svg)](https://travis-ci.org/weareinteractive/ansible-environment)
4
+ [![Galaxy](http://img.shields.io/badge/galaxy-weareinteractive.environment-blue.svg)](https://galaxy.ansible.com/weareinteractive/environment)
5
+ [![GitHub Tags](https://img.shields.io/github/tag/weareinteractive/ansible-environment.svg)](https://github.com/weareinteractive/ansible-environment)
6
+ [![GitHub Stars](https://img.shields.io/github/stars/weareinteractive/ansible-environment.svg)](https://github.com/weareinteractive/ansible-environment)
7
+
8
+ > `franklinkim.environment` is an [Ansible](http://www.ansible.com) role which:
9
+ >
10
+ > * adds `/etc/environment` variables
11
+
12
+ ## Installation
13
+
14
+ Using `ansible-galaxy`:
15
+
16
+ ```shell
17
+ $ ansible-galaxy install franklinkim.environment
18
+ ```
19
+
20
+ Using `requirements.yml`:
21
+
22
+ ```yaml
23
+ - src: franklinkim.environment
24
+ ```
25
+
26
+ Using `git`:
27
+
28
+ ```shell
29
+ $ git clone https://github.com/weareinteractive/ansible-environment.git franklinkim.environment
30
+ ```
31
+
32
+ ## Dependencies
33
+
34
+ * Ansible >= 2.0
35
+
36
+ ## Variables
37
+
38
+ Here is a list of all the default variables for this role, which are also available in `defaults/main.yml`.
39
+
40
+ ```yaml
41
+ ---
42
+
43
+ # Path to the environment file
44
+ environment_file: /etc/environment
45
+ # The environment file owner
46
+ environment_file_owner: root
47
+ # The environment file group
48
+ environment_file_group: root
49
+ # A dictionary of config parameters i.e
50
+ #
51
+ # environment_config:
52
+ # LC_ALL: en_US.UTF-8
53
+ environment_config:
54
+
55
+ ```
56
+
57
+
58
+ ## Usage
59
+
60
+ This is an example playbook:
61
+
62
+ ```yaml
63
+ ---
64
+
65
+ - hosts: all
66
+ roles:
67
+ - franklinkim.environment
68
+ vars:
69
+ environment_config:
70
+ LC_ALL: C
71
+
72
+ ```
73
+
74
+
75
+ ## Testing
76
+
77
+ ```shell
78
+ $ git clone https://github.com/weareinteractive/ansible-environment.git
79
+ $ cd ansible-environment
80
+ $ make test
81
+ ```
82
+
83
+ ## Contributing
84
+ In lieu of a formal style guide, take care to maintain the existing coding style. Add unit tests and examples for any new or changed functionality.
85
+
86
+ 1. Fork it
87
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
88
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
89
+ 4. Push to the branch (`git push origin my-new-feature`)
90
+ 5. Create new Pull Request
91
+
92
+ *Note: To update the `README.md` file please install and run `ansible-role`:*
93
+
94
+ ```shell
95
+ $ gem install ansible-role
96
+ $ ansible-role docgen
97
+ ```
98
+
99
+ ## License
100
+ Copyright (c) We Are Interactive under the MIT license.
@@ -0,0 +1,23 @@
1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+
4
+ Vagrant.configure("2") do |config|
5
+ config.vbguest.no_remote = true
6
+ config.vbguest.auto_update = false
7
+
8
+ config.vm.define 'trusty' do |instance|
9
+ instance.vm.box = 'ubuntu/trusty64'
10
+ end
11
+
12
+ config.vm.define 'precise' do |instance|
13
+ instance.vm.box = 'ubuntu/precise64'
14
+ end
15
+
16
+ # View the documentation for the provider you're using for more
17
+ # information on available options.
18
+ config.vm.provision "ansible" do |ansible|
19
+ ansible.playbook = "test.yml"
20
+ ansible.verbose = 'vv'
21
+ ansible.sudo = true
22
+ end
23
+ end
@@ -0,0 +1,13 @@
1
+ ---
2
+
3
+ # Path to the environment file
4
+ environment_file: /etc/environment
5
+ # The environment file owner
6
+ environment_file_owner: root
7
+ # The environment file group
8
+ environment_file_group: root
9
+ # A dictionary of config parameters i.e
10
+ #
11
+ # environment_config:
12
+ # LC_ALL: en_US.UTF-8
13
+ environment_config:
@@ -0,0 +1 @@
1
+ {install_date: 'Wed Aug 17 13:28:33 2016', version: 1.2.0}
@@ -0,0 +1,143 @@
1
+ ---
2
+ galaxy_info:
3
+ author: franklin
4
+ company: We Are Interactive
5
+ description: Adds /etc/environment variables
6
+ min_ansible_version: 2.0
7
+ license: MIT
8
+ # Optionally specify the branch Galaxy will use when accessing the GitHub
9
+ # repo for this role. During role install, if no tags are available,
10
+ # Galaxy will use this branch. During import Galaxy will access files on
11
+ # this branch. If travis integration is cofigured, only notification for this
12
+ # branch will be accepted. Otherwise, in all cases, the repo's default branch
13
+ # (usually master) will be used.
14
+ github_branch: master
15
+ #
16
+ # Below are all platforms currently available. Just uncomment
17
+ # the ones that apply to your role. If you don't see your
18
+ # platform on this list, let us know and we'll get it added!
19
+ #
20
+ platforms:
21
+ #- name: EL
22
+ # versions:
23
+ # - all
24
+ # - 5
25
+ # - 6
26
+ # - 7
27
+ #- name: GenericUNIX
28
+ # versions:
29
+ # - all
30
+ # - any
31
+ #- name: Solaris
32
+ # versions:
33
+ # - all
34
+ # - 10
35
+ # - 11.0
36
+ # - 11.1
37
+ # - 11.2
38
+ # - 11.3
39
+ #- name: Fedora
40
+ # versions:
41
+ # - all
42
+ # - 16
43
+ # - 17
44
+ # - 18
45
+ # - 19
46
+ # - 20
47
+ # - 21
48
+ # - 22
49
+ # - 23
50
+ #- name: Windows
51
+ # versions:
52
+ # - all
53
+ # - 2012R2
54
+ #- name: SmartOS
55
+ # versions:
56
+ # - all
57
+ # - any
58
+ #- name: opensuse
59
+ # versions:
60
+ # - all
61
+ # - 12.1
62
+ # - 12.2
63
+ # - 12.3
64
+ # - 13.1
65
+ # - 13.2
66
+ #- name: Amazon
67
+ # versions:
68
+ # - all
69
+ # - 2013.03
70
+ # - 2013.09
71
+ #- name: GenericBSD
72
+ # versions:
73
+ # - all
74
+ # - any
75
+ #- name: FreeBSD
76
+ # versions:
77
+ # - all
78
+ # - 10.0
79
+ # - 10.1
80
+ # - 10.2
81
+ # - 8.0
82
+ # - 8.1
83
+ # - 8.2
84
+ # - 8.3
85
+ # - 8.4
86
+ # - 9.0
87
+ # - 9.1
88
+ # - 9.1
89
+ # - 9.2
90
+ # - 9.3
91
+ - name: Ubuntu
92
+ versions:
93
+ - all
94
+ # - lucid
95
+ # - maverick
96
+ # - natty
97
+ # - oneiric
98
+ # - precise
99
+ # - quantal
100
+ # - raring
101
+ # - saucy
102
+ # - trusty
103
+ # - utopic
104
+ # - vivid
105
+ # - wily
106
+ #- name: SLES
107
+ # versions:
108
+ # - all
109
+ # - 10SP3
110
+ # - 10SP4
111
+ # - 11
112
+ # - 11SP1
113
+ # - 11SP2
114
+ # - 11SP3
115
+ #- name: GenericLinux
116
+ # versions:
117
+ # - all
118
+ # - any
119
+ - name: Debian
120
+ versions:
121
+ - all
122
+ # - etch
123
+ # - jessie
124
+ # - lenny
125
+ # - squeeze
126
+ # - wheezy categories:
127
+ #
128
+ # List tags for your role here, one per line. A tag is
129
+ # a keyword that describes and categorizes the role.
130
+ # Users find roles by searching for tags. Be sure to
131
+ # remove the '[]' above if you add tags to this list.
132
+ #
133
+ # NOTE: A tag is limited to a single word comprised of
134
+ # alphanumeric characters. Maximum 20 tags per role.
135
+ galaxy_tags:
136
+ - system
137
+ - environment
138
+ - env
139
+ # List your role dependencies here, one per line. Only
140
+ # dependencies available via galaxy should be listed here.
141
+ # Be sure to remove the '[]' above if you add dependencies
142
+ # to this list.
143
+ dependencies: []
@@ -0,0 +1,11 @@
1
+ ---
2
+ galaxy_name: franklinkim.environment
3
+ github_user: weareinteractive
4
+ github_name: ansible-environment
5
+ badges: |
6
+ [![Build Status](https://img.shields.io/travis/weareinteractive/ansible-environment.svg)](https://travis-ci.org/weareinteractive/ansible-environment)
7
+ [![Galaxy](http://img.shields.io/badge/galaxy-weareinteractive.environment-blue.svg)](https://galaxy.ansible.com/weareinteractive/environment)
8
+ [![GitHub Tags](https://img.shields.io/github/tag/weareinteractive/ansible-environment.svg)](https://github.com/weareinteractive/ansible-environment)
9
+ [![GitHub Stars](https://img.shields.io/github/stars/weareinteractive/ansible-environment.svg)](https://github.com/weareinteractive/ansible-environment)
10
+ description: |
11
+ > * adds `/etc/environment` variables
@@ -0,0 +1,21 @@
1
+ ---
2
+
3
+ - name: Ensure file exists
4
+ file:
5
+ path: "{{ environment_file }}"
6
+ owner: "{{ environment_file_owner }}"
7
+ group: "{{ environment_file_group }}"
8
+ state: touch
9
+
10
+ - name: Remove previous values
11
+ lineinfile:
12
+ dest: "{{ environment_file }}"
13
+ regexp: '^{{ item.key | upper }}'
14
+ state: absent
15
+ with_dict: "{{ environment_config }}"
16
+
17
+ - name: Configuring environment
18
+ lineinfile:
19
+ dest: "{{ environment_file }}"
20
+ line: "{{ item.key | upper }}='{{ item.value }}'"
21
+ with_dict: "{{ environment_config }}"
@@ -0,0 +1,8 @@
1
+ ---
2
+
3
+ - include: config.yml
4
+ tags:
5
+ - system
6
+ - environment
7
+ - config
8
+ - environment-config
@@ -0,0 +1,8 @@
1
+ ---
2
+
3
+ - hosts: all
4
+ roles:
5
+ - franklinkim.environment
6
+ vars:
7
+ environment_config:
8
+ LC_ALL: C
@@ -0,0 +1,6 @@
1
+ .DS_Store
2
+ */**.DS_Store
3
+ ._*
4
+ .*.sw*
5
+ *~
6
+ .idea/
@@ -0,0 +1,52 @@
1
+ ---
2
+ language: 'python'
3
+ python: '2.7'
4
+
5
+ env:
6
+ - SITE_AND_INVENTORY='tests/test.yml -i tests/inventory'
7
+
8
+ before_install:
9
+ - '__rvm_unload ; rm -rf ~/.rvm'
10
+
11
+ install:
12
+ - 'pip install ansible==2.0.0'
13
+ - 'printf "[defaults]\nroles_path = ../" > ansible.cfg'
14
+
15
+ script:
16
+ - >
17
+ ruby -v
18
+ | grep -q 'ruby'
19
+ && (echo 'No ruby test: pass' && exit 1)
20
+ || (echo 'No ruby test: fail' && exit 0)
21
+ - 'ansible-playbook $SITE_AND_INVENTORY --syntax-check'
22
+ - 'ansible-playbook $SITE_AND_INVENTORY --connection=local -vvvv'
23
+ - >
24
+ ansible-playbook $SITE_AND_INVENTORY --connection=local
25
+ | grep -q 'changed=0.*failed=0'
26
+ && (echo 'Idempotence test: pass' && exit 0)
27
+ || (echo 'Idempotence test: fail' && exit 1)
28
+ - >
29
+ ~/.rvm/wrappers/default/ruby -v
30
+ | grep -q '2.1.2'
31
+ && (echo 'Default ruby test: pass' && exit 0)
32
+ || (echo 'Default ruby test: fail' && exit 1)
33
+ - >
34
+ ls ~/.rvm/rubies
35
+ | grep -q 'ruby-2.1.0'
36
+ && (echo 'Multiple rubies test: pass' && exit 0)
37
+ || (echo 'Multiple rubies test: fail' && exit 1)
38
+ - >
39
+ ansible-playbook $SITE_AND_INVENTORY --connection=local --extra-vars='rvm1_delete_ruby=ruby-2.1.0'
40
+ | grep -q 'ok=1.*failed=0'
41
+ && (echo 'Delete ruby test: pass' && exit 0)
42
+ || (echo 'Delete ruby test: fail' && exit 1)
43
+ - >
44
+ ls ~/.rvm/rubies/ | wc -l
45
+ | grep -q '2'
46
+ && (echo 'Really deleted ruby test: pass' && exit 0)
47
+ || (echo 'Really deleted ruby test: fail' && exit 1)
48
+ - >
49
+ ls ~/.rvm/wrappers/default/
50
+ | grep -q 'bundler'
51
+ && (echo 'Bundler symlinked on system path test: pass' && exit 0)
52
+ || (echo 'Bundler symlinked on system path test: fail' && exit 1)
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 Nick Janetakis nick.janetakis@gmail.com
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ 'Software'), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,142 @@
1
+ ## What is rvm1-ansible? [![Build Status](https://secure.travis-ci.org/rvm/rvm1-ansible.png)](http://travis-ci.org/rvm/rvm1-ansible)
2
+
3
+ It is an [Ansible](http://www.ansible.com/home) role to install and manage ruby versions using rvm.
4
+
5
+ ### Why should you use rvm?
6
+
7
+ In production it's useful because compiling a new version of ruby can easily
8
+ take upwards of 10 minutes. That's 10 minutes of your CPU being pegged at 100%.
9
+
10
+ rvm has pre-compiled binaries for a lot of operating systems. That means you can
11
+ install ruby in about 1 minute, even on a slow micro instance.
12
+
13
+ This role even adds the ruby binaries to your system path when doing a system
14
+ wide install. This allows you to access them as if they were installed without
15
+ using a version manager while still benefiting from what rvm has to offer.
16
+
17
+ ## Installation
18
+
19
+ `$ ansible-galaxy install rvm_io.rvm1-ruby`
20
+
21
+ ## Role variables
22
+
23
+ Below is a list of default values that you can configure:
24
+
25
+ ```
26
+ ---
27
+
28
+ # Install 1 or more versions of ruby
29
+ # The last ruby listed will be set as the default ruby
30
+ rvm1_rubies:
31
+ - 'ruby-2.1.3'
32
+
33
+ # Delete a specific version of ruby (ie. ruby-2.1.0)
34
+ rvm1_delete_ruby:
35
+
36
+ # Install path for rvm (defaults to system wide)
37
+ rvm1_install_path: '/usr/local/rvm'
38
+
39
+ # Add or remove any install flags
40
+ # NOTE: If you are doing a USER BASED INSTALL then
41
+ # make sure you ADD the --user-install flag below
42
+ rvm1_install_flags: '--auto-dotfiles'
43
+
44
+ # Add additional ruby install flags
45
+ rvm1_ruby_install_flags:
46
+
47
+ # Set the owner for the rvm directory
48
+ rvm1_user: 'root'
49
+
50
+ # URL for the latest installer script
51
+ rvm1_rvm_latest_installer: 'https://raw.githubusercontent.com/wayneeseguin/rvm/master/binscripts/rvm-installer'
52
+
53
+ # rvm version to use
54
+ rvm1_rvm_version: 'stable'
55
+
56
+ # Check and update rvm, disabling this will force rvm to never update
57
+ rvm1_rvm_check_for_updates: True
58
+
59
+ # GPG key verification, use an empty string if you want to skip this
60
+ # Note: Unless you know what you're doing, just keep it as is
61
+ # Identity proof: https://keybase.io/mpapis
62
+ # PGP message: https://rvm.io/mpapis.asc
63
+ rvm1_gpg_keys: 'D39DC0E3'
64
+
65
+ # The GPG key server
66
+ rvm1_gpg_key_server: 'hkp://keys.gnupg.net'
67
+
68
+ # autolib mode, see https://rvm.io/rvm/autolibs
69
+ rvm1_autolib_mode: 3
70
+ ```
71
+
72
+ ## Example playbook
73
+
74
+ ```
75
+ ---
76
+
77
+ - name: Configure servers with ruby support
78
+ hosts: all
79
+
80
+ roles:
81
+ - { role: rvm_io.rvm1-ruby, tags: ruby, sudo: True }
82
+ ```
83
+
84
+ #### System wide installation
85
+
86
+ The above example would setup ruby system wide. It's very important that you
87
+ run the play with sudo because it will need to write to `/usr/local/rvm`.
88
+
89
+ #### To the same user as `ansible_ssh_user`
90
+
91
+ In this case, just overwrite `rvm_install_path` and set the `--user-install` flag:
92
+
93
+ **Note:** you still need to use sudo because during the ruby
94
+ installation phase rvm will internally make calls using sudo
95
+ to install certain ruby dependencies.
96
+
97
+ ```
98
+ rvm1_install_flags: '--auto-dotfiles --user-install'
99
+ rvm1_install_path: '/home/{{ ansible_ssh_user }}/.rvm'
100
+ ```
101
+
102
+ #### To a user that is not `ansible_ssh_user`
103
+
104
+ You **will need sudo here** because you will be writing outside the ansible
105
+ user's home directory. Other than that it's the same as above, except you will
106
+ supply a different user account:
107
+
108
+ ```
109
+ rvm1_install_flags: '--auto-dotfiles --user-install'
110
+ rvm1_install_path: '/home/someuser/.rvm'
111
+ ```
112
+
113
+ #### A quick note about `rvm1_user`
114
+
115
+ In some cases you may want the rvm folder and its files to be owned by a specific
116
+ user instead of root. Simply set `rvm1_user: 'foo'` and when ruby gets installed
117
+ it will ensure that `foo` owns the rvm directory.
118
+
119
+ ## Upgrading and removing old versions of ruby
120
+
121
+ A common work flow for upgrading your ruby version would be:
122
+
123
+ 1. Install the new version
124
+ 2. Run your application role so that bundle install re-installs your gems
125
+ 3. Delete the previous version of ruby
126
+
127
+ ### Leverage ansible's `--extra-vars`
128
+
129
+ 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.
130
+
131
+ ## Requirements
132
+
133
+ - Tested on ubuntu 12.04 LTS but it should work on other versions that are similar.
134
+ - Tested on RHEL6.5 and CentOS 6.5
135
+
136
+ ## Ansible galaxy
137
+
138
+ You can find it on the official [ansible galaxy](https://galaxy.ansible.com/list#/roles/1087) if you want to rate it.
139
+
140
+ ## License
141
+
142
+ MIT