taperole 1.2.8 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.hound.yml +7 -0
- data/CHANGELOG.md +12 -0
- data/README.md +7 -16
- data/config/style_guides/ruby.yml +238 -0
- data/lib/tape/ansible_runner.rb +41 -33
- data/lib/tape/installer.rb +56 -28
- data/lib/tape.rb +8 -0
- data/requirements.yml +5 -2
- data/roles/backend_install_essentials/meta/main.yml +1 -1
- data/roles/database_load/tasks/db_reset.yml +3 -3
- data/roles/deployer_user/tasks/keys.yml +3 -2
- data/roles/frontend_deploy/tasks/main.yml +5 -1
- data/roles/frontend_install_essentials/meta/main.yml +3 -0
- data/roles/general/meta/main.yml +2 -0
- data/roles/general/tasks/basic_packages.yml +3 -0
- data/roles/general/tasks/main.yml +11 -1
- data/roles/nginx/tasks/main.yml +6 -2
- data/taperole.gemspec +1 -1
- data/templates/base/hosts.example +1 -1
- data/templates/base/tape_vars.example.yml +0 -3
- data/templates/static_html/tape_vars.example.yml +0 -3
- data/vars/defaults.yml +5 -0
- data/vendor/ANXS.postgresql/.travis.yml +11 -6
- data/vendor/ANXS.postgresql/README.md +5 -1
- data/vendor/ANXS.postgresql/Vagrantfile +1 -1
- data/vendor/ANXS.postgresql/defaults/main.yml +35 -1
- data/vendor/ANXS.postgresql/meta/.galaxy_install_info +1 -1
- data/vendor/ANXS.postgresql/tasks/configure.yml +34 -3
- data/vendor/ANXS.postgresql/tasks/databases.yml +13 -0
- data/vendor/ANXS.postgresql/tasks/install.yml +22 -0
- data/vendor/ANXS.postgresql/tasks/users_privileges.yml +4 -4
- data/vendor/ANXS.postgresql/templates/etc_apt_preferences.d_apt_postgresql_org_pub_repos_apt.pref.j2 +5 -0
- data/vendor/ANXS.postgresql/templates/postgresql.conf-9.3.j2 +596 -0
- data/vendor/ANXS.postgresql/templates/postgresql.conf-9.4.j2 +614 -0
- data/vendor/ANXS.postgresql/vagrant-inventory +1 -1
- data/vendor/bennojoy.memcached/meta/.galaxy_install_info +1 -1
- data/vendor/jnv.mosh/LICENSE +24 -0
- data/vendor/jnv.mosh/README.md +56 -0
- data/vendor/jnv.mosh/meta/.galaxy_install_info +1 -0
- data/vendor/jnv.mosh/meta/main.yml +96 -0
- data/vendor/jnv.mosh/tasks/main.yml +20 -0
- data/vendor/jnv.mosh/vars/main.yml +4 -0
- data/vendor/jnv.unattended-upgrades/meta/.galaxy_install_info +1 -1
- data/vendor/lxhunter.apt/.gitignore +1 -0
- data/vendor/lxhunter.apt/.kitchen.yml +67 -0
- data/vendor/lxhunter.apt/README.md +33 -25
- data/vendor/lxhunter.apt/defaults/main.yml +1 -5
- data/vendor/lxhunter.apt/meta/.galaxy_install_info +1 -1
- data/vendor/lxhunter.apt/tasks/main.yml +23 -23
- data/vendor/lxhunter.apt/test/integration/default/bats/simple.bats +35 -0
- data/vendor/lxhunter.apt/test/integration/default/default.yml +16 -0
- data/vendor/tersmitten.htop/.gitignore +29 -0
- data/vendor/tersmitten.htop/.travis.yml +75 -0
- data/vendor/tersmitten.htop/LICENSE.txt +19 -0
- data/vendor/tersmitten.htop/README.md +45 -0
- data/vendor/tersmitten.htop/Vagrantfile +71 -0
- data/vendor/tersmitten.htop/defaults/main.yml +8 -0
- data/vendor/tersmitten.htop/files/etc/skel/.config/htop/htoprc +23 -0
- data/vendor/tersmitten.htop/handlers/main.yml +2 -0
- data/vendor/tersmitten.htop/meta/.galaxy_install_info +1 -0
- data/vendor/tersmitten.htop/meta/main.yml +18 -0
- data/vendor/tersmitten.htop/tasks/main.yml +27 -0
- data/vendor/tersmitten.htop/templates/empty +0 -0
- data/vendor/tersmitten.htop/tests/inventory +1 -0
- data/vendor/tersmitten.htop/tests/test.yml +6 -0
- data/vendor/tersmitten.htop/tests/vagrant.yml +17 -0
- data/vendor/tersmitten.htop/vars/main.yml +2 -0
- data/vendor/williamyeh.nodejs/.gitignore +1 -0
- data/vendor/williamyeh.nodejs/LICENSE +22 -0
- data/vendor/williamyeh.nodejs/README.md +107 -0
- data/vendor/williamyeh.nodejs/Vagrantfile +33 -0
- data/vendor/williamyeh.nodejs/circle.yml +32 -0
- data/vendor/williamyeh.nodejs/defaults/main.yml +17 -0
- data/vendor/williamyeh.nodejs/files/nodesource.gpg.key +52 -0
- data/vendor/williamyeh.nodejs/meta/.galaxy_install_info +1 -0
- data/vendor/williamyeh.nodejs/meta/main.yml +27 -0
- data/vendor/williamyeh.nodejs/tasks/main.yml +19 -0
- data/vendor/williamyeh.nodejs/tasks/set-role-variables.yml +15 -0
- data/vendor/williamyeh.nodejs/tasks/use-apt.yml +88 -0
- data/vendor/williamyeh.nodejs/tasks/use-yum.yml +34 -0
- data/vendor/williamyeh.nodejs/test/Dockerfile-centos6 +29 -0
- data/vendor/williamyeh.nodejs/test/Dockerfile-centos7 +29 -0
- data/vendor/williamyeh.nodejs/test/Dockerfile-debian7 +29 -0
- data/vendor/williamyeh.nodejs/test/Dockerfile-debian8 +29 -0
- data/vendor/williamyeh.nodejs/test/Dockerfile-ubuntu12.04 +29 -0
- data/vendor/williamyeh.nodejs/test/Dockerfile-ubuntu14.04 +29 -0
- data/vendor/williamyeh.nodejs/test.yml +12 -0
- data/vendor/zzet.rbenv/.travis.yml +5 -2
- data/vendor/zzet.rbenv/README.md +1 -1
- data/vendor/zzet.rbenv/defaults/main.yml +3 -3
- data/vendor/zzet.rbenv/meta/.galaxy_install_info +1 -1
- data/vendor/zzet.rbenv/tasks/apt_build_depends.yml +7 -0
- data/vendor/zzet.rbenv/tasks/homebrew_build_depends.yml +4 -2
- data/vendor/zzet.rbenv/tasks/main.yml +5 -2
- metadata +53 -7
- data/lib/tape/vagrant_provisioner.rb +0 -42
- data/vendor/ANXS.postgresql/templates/postgresql.conf.j2 +0 -446
- data/vendor/lxhunter.apt/.travis.yml +0 -12
- data/vendor/lxhunter.apt/Vagrantfile +0 -16
- data/vendor/lxhunter.apt/templates/apt_10general.j2 +0 -4
@@ -0,0 +1,71 @@
|
|
1
|
+
# -*- mode: ruby -*-
|
2
|
+
# vi: set ft=ruby ts=2 sw=2 tw=0 et :
|
3
|
+
|
4
|
+
role = File.basename(File.expand_path(File.dirname(__FILE__)))
|
5
|
+
|
6
|
+
File.open(File.dirname(__FILE__) + '/ansible.cfg', 'w') { |f| f.write("[defaults]\nroles_path = ../") }
|
7
|
+
|
8
|
+
boxes = [
|
9
|
+
{
|
10
|
+
:name => "ubuntu-1004",
|
11
|
+
:box => "opscode-ubuntu-10.04",
|
12
|
+
:url => "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-10.04_chef-provisionerless.box",
|
13
|
+
:ip => '10.0.0.10',
|
14
|
+
:cpu => "50",
|
15
|
+
:ram => "256"
|
16
|
+
},
|
17
|
+
{
|
18
|
+
:name => "ubuntu-1204",
|
19
|
+
:box => "opscode-ubuntu-12.04",
|
20
|
+
:url => "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-12.04_chef-provisionerless.box",
|
21
|
+
:ip => '10.0.0.11',
|
22
|
+
:cpu => "50",
|
23
|
+
:ram => "256"
|
24
|
+
},
|
25
|
+
{
|
26
|
+
:name => "ubuntu-1404",
|
27
|
+
:box => "opscode-ubuntu-14.04",
|
28
|
+
:url => "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-14.04_chef-provisionerless.box",
|
29
|
+
:ip => '10.0.0.12',
|
30
|
+
:cpu => "50",
|
31
|
+
:ram => "256"
|
32
|
+
},
|
33
|
+
{
|
34
|
+
:name => "debian-6010",
|
35
|
+
:box => "opscode-debian-6.0.10",
|
36
|
+
:url => "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_debian-6.0.10_chef-provisionerless.box",
|
37
|
+
:ip => '10.0.0.13',
|
38
|
+
:cpu => "50",
|
39
|
+
:ram => "256"
|
40
|
+
},
|
41
|
+
{
|
42
|
+
:name => "debian-78",
|
43
|
+
:box => "opscode-debian-7.8",
|
44
|
+
:url => "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_debian-7.8_chef-provisionerless.box",
|
45
|
+
:ip => '10.0.0.14',
|
46
|
+
:cpu => "50",
|
47
|
+
:ram => "256"
|
48
|
+
},
|
49
|
+
]
|
50
|
+
|
51
|
+
Vagrant.configure("2") do |config|
|
52
|
+
boxes.each do |box|
|
53
|
+
config.vm.define box[:name] do |vms|
|
54
|
+
vms.vm.box = box[:box]
|
55
|
+
vms.vm.box_url = box[:url]
|
56
|
+
vms.vm.hostname = "ansible-#{role}-#{box[:name]}"
|
57
|
+
|
58
|
+
vms.vm.provider "virtualbox" do |v|
|
59
|
+
v.customize ["modifyvm", :id, "--cpuexecutioncap", box[:cpu]]
|
60
|
+
v.customize ["modifyvm", :id, "--memory", box[:ram]]
|
61
|
+
end
|
62
|
+
|
63
|
+
vms.vm.network :private_network, ip: box[:ip]
|
64
|
+
|
65
|
+
vms.vm.provision :ansible do |ansible|
|
66
|
+
ansible.playbook = "tests/vagrant.yml"
|
67
|
+
ansible.verbose = "vv"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Beware! This file is rewritten by htop when settings are changed in the interface.
|
2
|
+
# The parser is also very primitive, and not human-friendly.
|
3
|
+
fields=0 48 17 18 38 39 40 2 46 47 49 1
|
4
|
+
sort_key=46
|
5
|
+
sort_direction=1
|
6
|
+
hide_threads=0
|
7
|
+
hide_kernel_threads=1
|
8
|
+
hide_userland_threads=0
|
9
|
+
shadow_other_users=0
|
10
|
+
show_thread_names=0
|
11
|
+
highlight_base_name=1
|
12
|
+
highlight_megabytes=1
|
13
|
+
highlight_threads=1
|
14
|
+
tree_view=0
|
15
|
+
header_margin=1
|
16
|
+
detailed_cpu_time=0
|
17
|
+
cpu_count_from_zero=0
|
18
|
+
color_scheme=0
|
19
|
+
delay=15
|
20
|
+
left_meters=LeftCPUs2 Memory Swap
|
21
|
+
left_meter_modes=1 1 1
|
22
|
+
right_meters=RightCPUs2 Tasks LoadAverage Uptime Clock Hostname
|
23
|
+
right_meter_modes=1 2 2 2 2 2
|
@@ -0,0 +1 @@
|
|
1
|
+
{install_date: 'Tue Nov 17 14:57:00 2015', version: v2.0.1}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
---
|
2
|
+
# meta file for htop
|
3
|
+
galaxy_info:
|
4
|
+
author: Mischa ter Smitten
|
5
|
+
company: Oefenweb.nl B.V.
|
6
|
+
description: Set up htop in Debian-like systems
|
7
|
+
license: MIT
|
8
|
+
min_ansible_version: 1.5
|
9
|
+
platforms:
|
10
|
+
- name: Ubuntu
|
11
|
+
versions:
|
12
|
+
- all
|
13
|
+
- name: Debian
|
14
|
+
versions:
|
15
|
+
- all
|
16
|
+
categories:
|
17
|
+
- system
|
18
|
+
dependencies: []
|
@@ -0,0 +1,27 @@
|
|
1
|
+
---
|
2
|
+
# tasks file for htop
|
3
|
+
- name: install
|
4
|
+
apt:
|
5
|
+
name: htop
|
6
|
+
state: latest
|
7
|
+
update_cache: true
|
8
|
+
cache_valid_time: 3600
|
9
|
+
tags: [configuration, htop, htop-install]
|
10
|
+
|
11
|
+
- name: create configuration directory
|
12
|
+
file:
|
13
|
+
path: "{{ item.value.dest }}"
|
14
|
+
state: directory
|
15
|
+
with_dict: htop_htoprc_destinations
|
16
|
+
tags: [configuration, htop, htop-configuration]
|
17
|
+
|
18
|
+
- name: create configuration file
|
19
|
+
copy:
|
20
|
+
src: etc/skel/.config/htop/htoprc
|
21
|
+
dest: "{{ item.value.dest }}/htoprc"
|
22
|
+
owner: "{{ item.value.owner | default('root') }}"
|
23
|
+
group: "{{ item.value.group | default(item.value.owner) | default('root') }}"
|
24
|
+
mode: "{{ item.value.mode | default('0644') }}"
|
25
|
+
force: "{{ 'yes' if htop_replace_htoprc else 'no' }}"
|
26
|
+
with_dict: htop_htoprc_destinations
|
27
|
+
tags: [configuration, htop, htop-configuration]
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
localhost
|
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
# test file for htop
|
3
|
+
- hosts: all
|
4
|
+
remote_user: vagrant
|
5
|
+
sudo: true
|
6
|
+
roles:
|
7
|
+
- htop
|
8
|
+
vars:
|
9
|
+
htop_htoprc_destinations:
|
10
|
+
skell:
|
11
|
+
dest: /etc/skel/.config/htop
|
12
|
+
current:
|
13
|
+
dest: "{{ ansible_env.HOME }}/.config/htop"
|
14
|
+
vagrant:
|
15
|
+
dest: /home/vagrant/.config/htop
|
16
|
+
owner: vagrant
|
17
|
+
group: vagrant
|
@@ -0,0 +1 @@
|
|
1
|
+
.vagrant
|
@@ -0,0 +1,22 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2015 William Yeh <william.pjyeh@gmail.com>
|
4
|
+
|
5
|
+
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
8
|
+
in the Software without restriction, including without limitation the rights
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
11
|
+
furnished to do so, subject to the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
14
|
+
copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
22
|
+
SOFTWARE.
|
@@ -0,0 +1,107 @@
|
|
1
|
+
|
2
|
+
williamyeh.nodejs for Ansible Galaxy
|
3
|
+
============
|
4
|
+
|
5
|
+
[![Circle CI](https://circleci.com/gh/William-Yeh/ansible-nodejs.svg?style=shield)](https://circleci.com/gh/William-Yeh/ansible-nodejs)
|
6
|
+
|
7
|
+
|
8
|
+
## Summary
|
9
|
+
|
10
|
+
Role name in Ansible Galaxy: **[williamyeh.nodejs](https://galaxy.ansible.com/list#/roles/3669)**
|
11
|
+
|
12
|
+
This Ansible role has the following features for [Node.js](http://nodejs.org/):
|
13
|
+
|
14
|
+
- Install specific version of Node.js (including [io.js](https://iojs.org/)).
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
## Role Variables
|
20
|
+
|
21
|
+
### Mandatory variables
|
22
|
+
|
23
|
+
None.
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
### Optional variables
|
28
|
+
|
29
|
+
Pick one version to install:
|
30
|
+
|
31
|
+
```yaml
|
32
|
+
# Node.js version; e.g., "4.0", "0.12", "0.12.7"
|
33
|
+
nodejs_version
|
34
|
+
|
35
|
+
|
36
|
+
# io.js version; e.g., "3.3"
|
37
|
+
iojs_version
|
38
|
+
```
|
39
|
+
|
40
|
+
If neither `nodejs_version` nor `iojs_version` is defined, `nodejs_version` is defined automatically by `tasks/set-role-variables.yml` as:
|
41
|
+
|
42
|
+
- `nodejs_default_in_apt` for Debian/Ubuntu.
|
43
|
+
- `nodejs_default_in_yum` for CentOS.
|
44
|
+
|
45
|
+
|
46
|
+
User-configurable defaults:
|
47
|
+
|
48
|
+
```yaml
|
49
|
+
# install tools for compiling native addons from npm?
|
50
|
+
nodejs_compile: True
|
51
|
+
```
|
52
|
+
|
53
|
+
|
54
|
+
## Usage
|
55
|
+
|
56
|
+
|
57
|
+
### Step 1: add role
|
58
|
+
|
59
|
+
Add role name `williamyeh.nodejs` to your playbook file.
|
60
|
+
|
61
|
+
|
62
|
+
### Step 2: add variables
|
63
|
+
|
64
|
+
Set vars in your playbook file.
|
65
|
+
|
66
|
+
Simple example:
|
67
|
+
|
68
|
+
```yaml
|
69
|
+
---
|
70
|
+
# file: simple-playbook.yml
|
71
|
+
|
72
|
+
- hosts: all
|
73
|
+
sudo: True
|
74
|
+
|
75
|
+
roles:
|
76
|
+
- williamyeh.nodejs
|
77
|
+
|
78
|
+
vars:
|
79
|
+
nodejs_version: 4.0
|
80
|
+
```
|
81
|
+
|
82
|
+
|
83
|
+
## Dependencies
|
84
|
+
|
85
|
+
None.
|
86
|
+
|
87
|
+
|
88
|
+
## License
|
89
|
+
|
90
|
+
Licensed under the MIT License. See the [LICENSE file](LICENSE) for details.
|
91
|
+
|
92
|
+
|
93
|
+
## History
|
94
|
+
|
95
|
+
- 1.0 : From now on, the role installs Node.js from [NodeSource](https://github.com/nodesource/distributions) binary distributions.
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
Older versions are based on NVM:
|
100
|
+
|
101
|
+
- Rewritten from my pre-Galaxy version [server-config-template](https://github.com/William-Yeh/server-config-template) and Galaxy version [ansible-nvm-nodejs](https://github.com/William-Yeh/ansible-nvm-nodejs).
|
102
|
+
|
103
|
+
- During refactoring, some roles on Ansible Galaxy also inspired me:
|
104
|
+
|
105
|
+
- [leonidas.nvm](https://galaxy.ansible.com/list#/roles/694) forks, especially [ahmednuaman.nvm-ahmed](https://galaxy.ansible.com/list#/roles/2298) and then [g-div/ansible-nvm](https://github.com/g-div/ansible-nvm)
|
106
|
+
|
107
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
Vagrant.configure(2) do |config|
|
2
|
+
|
3
|
+
# main & default: normal OS series...
|
4
|
+
config.vm.define "main", primary: true do |node|
|
5
|
+
node.vm.box = "ubuntu/trusty64"
|
6
|
+
#node.vm.box = "ubuntu/precise64"
|
7
|
+
#node.vm.box = "debian/jessie64"
|
8
|
+
#node.vm.box = "debian/wheezy64"
|
9
|
+
#node.vm.box = "chef/centos-7.0"
|
10
|
+
#node.vm.box = "chef/centos-6.6"
|
11
|
+
|
12
|
+
node.vm.provision "ansible" do |ansible|
|
13
|
+
ansible.playbook = "test.yml"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
# docker: for auto build & testing (e.g., Travis CI)
|
19
|
+
config.vm.define "docker" do |node|
|
20
|
+
node.vm.box = "williamyeh/ubuntu-trusty64-docker"
|
21
|
+
|
22
|
+
node.vm.provision "shell", inline: <<-SHELL
|
23
|
+
cd /vagrant
|
24
|
+
docker build -f test/Dockerfile-ubuntu14.04 -t nodejs_trusty .
|
25
|
+
docker build -f test/Dockerfile-ubuntu12.04 -t nodejs_precise .
|
26
|
+
docker build -f test/Dockerfile-debian8 -t nodejs_jessie .
|
27
|
+
docker build -f test/Dockerfile-debian7 -t nodejs_wheezy .
|
28
|
+
docker build -f test/Dockerfile-centos7 -t nodejs_centos7 .
|
29
|
+
docker build -f test/Dockerfile-centos6 -t nodejs_centos6 .
|
30
|
+
SHELL
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
machine:
|
2
|
+
services:
|
3
|
+
- docker
|
4
|
+
|
5
|
+
dependencies:
|
6
|
+
override:
|
7
|
+
- docker info
|
8
|
+
- docker version
|
9
|
+
|
10
|
+
- docker build -f test/Dockerfile-ubuntu14.04 -t nodejs_trusty .
|
11
|
+
- docker build -f test/Dockerfile-ubuntu12.04 -t nodejs_precise .
|
12
|
+
- docker build -f test/Dockerfile-debian8 -t nodejs_jessie .
|
13
|
+
- docker build -f test/Dockerfile-debian7 -t nodejs_wheezy .
|
14
|
+
- docker build -f test/Dockerfile-centos7 -t nodejs_centos7 .
|
15
|
+
- docker build -f test/Dockerfile-centos6 -t nodejs_centos6 .
|
16
|
+
|
17
|
+
test:
|
18
|
+
override:
|
19
|
+
- docker run -i nodejs_trusty > result-ubuntu14.04
|
20
|
+
- docker run -i nodejs_precise > result-ubuntu12.04
|
21
|
+
- docker run -i nodejs_jessie > result-debian8
|
22
|
+
- docker run -i nodejs_wheezy > result-debian7
|
23
|
+
- docker run -i nodejs_centos7 > result-centos7
|
24
|
+
- docker run -i nodejs_centos6 > result-centos6
|
25
|
+
|
26
|
+
- echo "==> Validating the test results..."
|
27
|
+
- sh -c "[ -s result-ubuntu14.04 ]"
|
28
|
+
- sh -c "[ -s result-ubuntu12.04 ]"
|
29
|
+
- sh -c "[ -s result-debian8 ]"
|
30
|
+
- sh -c "[ -s result-debian7 ]"
|
31
|
+
- sh -c "[ -s result-centos7 ]"
|
32
|
+
- sh -c "[ -s result-centos6 ]"
|
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
|
3
|
+
#
|
4
|
+
# variables needed to be defined in user's playbook
|
5
|
+
#
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
#
|
10
|
+
# user-configurable defaults
|
11
|
+
#
|
12
|
+
|
13
|
+
nodejs_compile: True # install tools for compiling native addons from npm
|
14
|
+
|
15
|
+
|
16
|
+
nodejs_default_in_apt: "0.12"
|
17
|
+
nodejs_default_in_yum: "0.10"
|
@@ -0,0 +1,52 @@
|
|
1
|
+
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
2
|
+
Version: GnuPG v1
|
3
|
+
Comment: GPGTools - https://gpgtools.org
|
4
|
+
|
5
|
+
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
|
51
|
+
=CLGF
|
52
|
+
-----END PGP PUBLIC KEY BLOCK-----
|
@@ -0,0 +1 @@
|
|
1
|
+
{install_date: 'Mon Nov 16 16:35:28 2015', version: master}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
---
|
2
|
+
# nodejs/meta/main.yml
|
3
|
+
|
4
|
+
galaxy_info:
|
5
|
+
author: williamyeh
|
6
|
+
description: Install and configure Node.js
|
7
|
+
license: MIT
|
8
|
+
min_ansible_version: 1.4
|
9
|
+
|
10
|
+
platforms:
|
11
|
+
- name: Ubuntu
|
12
|
+
versions:
|
13
|
+
- precise
|
14
|
+
- trusty
|
15
|
+
- name: Debian
|
16
|
+
versions:
|
17
|
+
- wheezy
|
18
|
+
- jessie
|
19
|
+
- name: EL
|
20
|
+
versions:
|
21
|
+
- 6
|
22
|
+
- 7
|
23
|
+
|
24
|
+
categories:
|
25
|
+
- development
|
26
|
+
|
27
|
+
dependencies: []
|
@@ -0,0 +1,19 @@
|
|
1
|
+
---
|
2
|
+
# file: tasks/main.yml
|
3
|
+
# Top-level installer for Node.js.
|
4
|
+
#
|
5
|
+
# @see https://github.com/nodesource/distributions
|
6
|
+
#
|
7
|
+
|
8
|
+
|
9
|
+
- name: set role variables, if necessary
|
10
|
+
include: set-role-variables.yml
|
11
|
+
|
12
|
+
|
13
|
+
- name: delegate to APT system for installation
|
14
|
+
include: use-apt.yml
|
15
|
+
when: ansible_pkg_mgr == "apt"
|
16
|
+
|
17
|
+
- name: delegate to YUM system for installation
|
18
|
+
include: use-yum.yml
|
19
|
+
when: ansible_pkg_mgr == "yum"
|
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
# file: tasks/set-role-variables.yml
|
3
|
+
# set necessary role variables.
|
4
|
+
#
|
5
|
+
|
6
|
+
- name: set nodejs_version, if neither version variables are defined
|
7
|
+
set_fact:
|
8
|
+
nodejs_version: "{{ nodejs_default_in_apt }}"
|
9
|
+
when: nodejs_version is not defined and iojs_version is not defined and ansible_pkg_mgr == "apt"
|
10
|
+
|
11
|
+
|
12
|
+
- name: set nodejs_version, if neither version variables are defined
|
13
|
+
set_fact:
|
14
|
+
nodejs_version: "{{ nodejs_default_in_yum }}"
|
15
|
+
when: nodejs_version is not defined and iojs_version is not defined and ansible_pkg_mgr == "yum"
|
@@ -0,0 +1,88 @@
|
|
1
|
+
---
|
2
|
+
# file: tasks/use-apt.yml
|
3
|
+
#
|
4
|
+
# Configure Node.js from APT repository.
|
5
|
+
#
|
6
|
+
# @see https://github.com/nodesource/distributions
|
7
|
+
#
|
8
|
+
|
9
|
+
- name: install add-apt-repository and https binaries for Ansible to work
|
10
|
+
apt: name={{ item }} state=present update_cache=yes
|
11
|
+
with_items:
|
12
|
+
- python-software-properties
|
13
|
+
- apt-transport-https
|
14
|
+
|
15
|
+
- name: install tools for compiling native addons from npm
|
16
|
+
apt: name={{ item }} state=present
|
17
|
+
with_items:
|
18
|
+
- build-essential
|
19
|
+
when: nodejs_compile
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
- name: add NodeSource key
|
24
|
+
apt_key: data="{{ lookup('file', 'nodesource.gpg.key') }}" state=present
|
25
|
+
|
26
|
+
|
27
|
+
- name: add NodeSource repository for Node.js 4.0 (deb)
|
28
|
+
apt_repository: repo='deb https://deb.nodesource.com/node_4.x {{ ansible_distribution_release|lower }} main' state=present
|
29
|
+
when: (nodejs_version is defined) and nodejs_version|version_compare('4.0', '>=')
|
30
|
+
|
31
|
+
- name: add NodeSource repository for Node.js 0.12 (deb)
|
32
|
+
apt_repository: repo='deb https://deb.nodesource.com/node_0.12 {{ ansible_distribution_release|lower }} main' state=present
|
33
|
+
when: nodejs_version is defined
|
34
|
+
|
35
|
+
- name: add NodeSource repository for Node.js 0.10 (deb)
|
36
|
+
apt_repository: repo='deb https://deb.nodesource.com/node_0.10 {{ ansible_distribution_release|lower }} main' state=present
|
37
|
+
when: nodejs_version is defined
|
38
|
+
|
39
|
+
- name: add NodeSource repository for Node.js 4.0 (deb-src)
|
40
|
+
apt_repository: repo='deb-src https://deb.nodesource.com/node_4.x {{ ansible_distribution_release|lower }} main' state=present
|
41
|
+
when: (nodejs_version is defined) and nodejs_version|version_compare('4.0', '>=')
|
42
|
+
|
43
|
+
- name: add NodeSource repository for Node.js 0.12 (deb-src)
|
44
|
+
apt_repository: repo='deb-src https://deb.nodesource.com/node_0.12 {{ ansible_distribution_release|lower }} main' state=present
|
45
|
+
when: nodejs_version is defined
|
46
|
+
|
47
|
+
- name: add NodeSource repository for Node.js 0.10 (deb-src)
|
48
|
+
apt_repository: repo='deb-src https://deb.nodesource.com/node_0.10 {{ ansible_distribution_release|lower }} main' state=present
|
49
|
+
when: nodejs_version is defined
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
- name: add NodeSource repository for io.js 3.x (deb)
|
54
|
+
apt_repository: repo='deb https://deb.nodesource.com/iojs_3.x {{ ansible_distribution_release|lower }} main' state=present
|
55
|
+
when: iojs_version is defined
|
56
|
+
|
57
|
+
- name: add NodeSource repository for io.js 2.x (deb)
|
58
|
+
apt_repository: repo='deb https://deb.nodesource.com/iojs_2.x {{ ansible_distribution_release|lower }} main' state=present
|
59
|
+
when: iojs_version is defined
|
60
|
+
|
61
|
+
- name: add NodeSource repository for io.js 1.x (deb)
|
62
|
+
apt_repository: repo='deb https://deb.nodesource.com/iojs_1.x {{ ansible_distribution_release|lower }} main' state=present
|
63
|
+
when: iojs_version is defined
|
64
|
+
|
65
|
+
- name: add NodeSource repository for io.js 3.x (deb-src)
|
66
|
+
apt_repository: repo='deb-src https://deb.nodesource.com/iojs_3.x {{ ansible_distribution_release|lower }} main' state=present
|
67
|
+
when: iojs_version is defined
|
68
|
+
|
69
|
+
- name: add NodeSource repository for io.js 2.x (deb-src)
|
70
|
+
apt_repository: repo='deb-src https://deb.nodesource.com/iojs_2.x {{ ansible_distribution_release|lower }} main' state=present
|
71
|
+
when: iojs_version is defined
|
72
|
+
|
73
|
+
- name: add NodeSource repository for io.js 1.x (deb-src)
|
74
|
+
apt_repository: repo='deb-src https://deb.nodesource.com/iojs_1.x {{ ansible_distribution_release|lower }} main' state=present
|
75
|
+
when: iojs_version is defined
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
- name: install Node.js with specific version
|
81
|
+
apt: name={{ item }} update_cache=yes state=present force=yes
|
82
|
+
with_items: [ "nodejs={{ nodejs_version }}*" ]
|
83
|
+
when: nodejs_version is defined
|
84
|
+
|
85
|
+
- name: install io.js with specific version
|
86
|
+
apt: name={{ item }} update_cache=yes state=present force=yes
|
87
|
+
with_items: [ "iojs={{ iojs_version }}*" ]
|
88
|
+
when: iojs_version is defined
|
@@ -0,0 +1,34 @@
|
|
1
|
+
---
|
2
|
+
# file: tasks/use-yum.yml
|
3
|
+
#
|
4
|
+
# Configure Node.js from YUM repository.
|
5
|
+
#
|
6
|
+
# @see https://github.com/nodesource/distributions
|
7
|
+
#
|
8
|
+
|
9
|
+
- name: install libselinux-python binary for Ansible to work
|
10
|
+
yum: name=libselinux-python state=present
|
11
|
+
|
12
|
+
- name: install tools for compiling native addons from npm
|
13
|
+
yum: name={{ item }} state=present
|
14
|
+
with_items:
|
15
|
+
- gcc-c++
|
16
|
+
- make
|
17
|
+
when: nodejs_compile
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
- name: add NodeSource official repository for CentOS
|
22
|
+
yum: name=https://rpm.nodesource.com/pub/el/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}/nodesource-release-el{{ ansible_distribution_major_version }}-1.noarch.rpm state=present
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
- name: install Node.js with specific version
|
27
|
+
yum: name={{ item }} update_cache=yes state=present
|
28
|
+
with_items: [ "nodejs-{{ nodejs_version }}*" ]
|
29
|
+
when: nodejs_version is defined
|
30
|
+
|
31
|
+
#- name: install io.js with specific version
|
32
|
+
# yum: name={{ item }} update_cache=yes state=present
|
33
|
+
# with_items: [ "iojs-{{ iojs_version }}*" ]
|
34
|
+
# when: iojs_version is defined
|