abrizer 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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