orats 0.7.3 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/Gemfile +1 -1
- data/{LICENSE.txt → LICENSE} +21 -21
- data/README.md +51 -346
- data/Rakefile +1 -1
- data/bin/orats +5 -2
- data/lib/orats/argv_adjust.rb +61 -0
- data/lib/orats/cli.rb +53 -141
- data/lib/orats/cli_help/new +27 -0
- data/lib/orats/cli_help/nuke +19 -0
- data/lib/orats/commands/new/exec.rb +59 -0
- data/lib/orats/commands/new/rails.rb +197 -0
- data/lib/orats/commands/new/server.rb +67 -0
- data/lib/orats/commands/nuke.rb +66 -44
- data/lib/orats/common.rb +76 -0
- data/lib/orats/postgres.rb +90 -0
- data/lib/orats/process.rb +35 -0
- data/lib/orats/redis.rb +25 -0
- data/lib/orats/shell.rb +12 -0
- data/lib/orats/templates/auth.rb +96 -82
- data/lib/orats/templates/base.rb +115 -110
- data/lib/orats/templates/includes/new/rails/.env +28 -28
- data/lib/orats/templates/includes/new/rails/Gemfile +4 -4
- data/lib/orats/templates/includes/new/rails/config/{whenever.rb → schedule.rb} +0 -0
- data/lib/orats/ui.rb +33 -0
- data/lib/orats/version.rb +3 -2
- data/lib/orats.rb +2 -1
- data/orats.gemspec +7 -5
- data/test/integration/cli_test.rb +28 -177
- data/test/test_helper.rb +24 -9
- metadata +17 -29
- data/lib/orats/commands/common.rb +0 -146
- data/lib/orats/commands/diff/compare.rb +0 -106
- data/lib/orats/commands/diff/exec.rb +0 -60
- data/lib/orats/commands/diff/parse.rb +0 -66
- data/lib/orats/commands/inventory.rb +0 -100
- data/lib/orats/commands/playbook.rb +0 -60
- data/lib/orats/commands/project/exec.rb +0 -74
- data/lib/orats/commands/project/rails.rb +0 -162
- data/lib/orats/commands/project/server.rb +0 -57
- data/lib/orats/commands/role.rb +0 -70
- data/lib/orats/commands/ui.rb +0 -47
- data/lib/orats/templates/includes/inventory/group_vars/all.yml +0 -202
- data/lib/orats/templates/includes/inventory/hosts +0 -8
- data/lib/orats/templates/includes/playbook/Galaxyfile +0 -15
- data/lib/orats/templates/includes/playbook/common.yml +0 -23
- data/lib/orats/templates/includes/playbook/site.yml +0 -36
- data/lib/orats/templates/includes/role/.travis.yml +0 -19
- data/lib/orats/templates/includes/role/README.md +0 -62
- data/lib/orats/templates/includes/role/meta/main.yml +0 -123
- data/lib/orats/templates/includes/role/tests/inventory +0 -1
- data/lib/orats/templates/includes/role/tests/main.yml +0 -7
- data/lib/orats/templates/playbook.rb +0 -119
- data/lib/orats/templates/role.rb +0 -144
data/lib/orats/commands/ui.rb
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
module Orats
|
2
|
-
module Commands
|
3
|
-
module UI
|
4
|
-
include Thor::Shell
|
5
|
-
|
6
|
-
def log_task(message)
|
7
|
-
puts
|
8
|
-
say_status 'task', "#{message}:", :yellow
|
9
|
-
puts '-'*80, ''; sleep 0.25
|
10
|
-
end
|
11
|
-
|
12
|
-
def log_status_top(type, message, color)
|
13
|
-
puts
|
14
|
-
say_status type, set_color(message, :bold), color
|
15
|
-
end
|
16
|
-
|
17
|
-
def log_status_bottom(type, message, color, strip_newline = false)
|
18
|
-
say_status type, message, color
|
19
|
-
puts unless strip_newline
|
20
|
-
end
|
21
|
-
|
22
|
-
def log_results(results, message)
|
23
|
-
log_status_top 'results', "#{results}:", :magenta
|
24
|
-
log_status_bottom 'message', message, :white
|
25
|
-
end
|
26
|
-
|
27
|
-
def log_error(top_label, top_message, bottom_label, bottom_message, strip_newline = false)
|
28
|
-
log_status_top top_label, "#{top_message}:", :red
|
29
|
-
log_status_bottom bottom_label, bottom_message, :yellow, strip_newline
|
30
|
-
yield if block_given?
|
31
|
-
end
|
32
|
-
|
33
|
-
def log_remote_info(top_label, top_message, bottom_label, bottom_message)
|
34
|
-
log_status_top top_label, "#{top_message}:", :blue
|
35
|
-
log_status_bottom bottom_label, bottom_message, :cyan
|
36
|
-
end
|
37
|
-
|
38
|
-
def run_from(path, command)
|
39
|
-
run "cd #{path} && #{command} && cd -"
|
40
|
-
end
|
41
|
-
|
42
|
-
def git_commit(message)
|
43
|
-
run_from @active_path, "git add -A && git commit -m '#{message}'"
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
@@ -1,202 +0,0 @@
|
|
1
|
-
---
|
2
|
-
# -----------------------------------------------------------------------------
|
3
|
-
# secrets
|
4
|
-
# load all passwords from a local location outside of version control
|
5
|
-
# -----------------------------------------------------------------------------
|
6
|
-
|
7
|
-
# do not add a trailing slash to the path
|
8
|
-
secrets_load_path: /home/yourname/dev/testproj/secrets
|
9
|
-
|
10
|
-
secrets_postgres_password: "{{ lookup('password', secrets_load_path + '/postgres_password') }}"
|
11
|
-
secrets_redis_password: "{{ lookup('password', secrets_load_path + '/redis_password') }}"
|
12
|
-
secrets_mail_password: "{{ lookup('password', secrets_load_path + '/mail_password') }}"
|
13
|
-
secrets_rails_token: "{{ lookup('password', secrets_load_path + '/rails_token') }}"
|
14
|
-
secrets_devise_token: "{{ lookup('password', secrets_load_path + '/devise_token') }}"
|
15
|
-
secrets_devise_pepper_token: "{{ lookup('password', secrets_load_path + '/devise_pepper_token') }}"
|
16
|
-
|
17
|
-
# -----------------------------------------------------------------------------
|
18
|
-
# ansible
|
19
|
-
# -----------------------------------------------------------------------------
|
20
|
-
# default values you can overwrite with documentation:
|
21
|
-
# http://docs.ansible.com/intro_inventory.html#list-of-behavioral-inventory-parameters
|
22
|
-
# -----------------------------------------------------------------------------
|
23
|
-
|
24
|
-
ansible_ssh_user: deploy
|
25
|
-
|
26
|
-
# -----------------------------------------------------------------------------
|
27
|
-
# locale
|
28
|
-
# -----------------------------------------------------------------------------
|
29
|
-
# default values you can overwrite with documentation:
|
30
|
-
# https://github.com/nickjj/ansible-locale/#role-variables
|
31
|
-
# -----------------------------------------------------------------------------
|
32
|
-
|
33
|
-
# -----------------------------------------------------------------------------
|
34
|
-
# sshd
|
35
|
-
# -----------------------------------------------------------------------------
|
36
|
-
# default values you can overwrite with documentation:
|
37
|
-
# https://github.com/nickjj/ansible-sshd/#role-variables
|
38
|
-
# -----------------------------------------------------------------------------
|
39
|
-
|
40
|
-
# -----------------------------------------------------------------------------
|
41
|
-
# ferm
|
42
|
-
# -----------------------------------------------------------------------------
|
43
|
-
# default values you can overwrite with documentation:
|
44
|
-
# https://github.com/nickjj/ansible-ferm/#role-variables
|
45
|
-
# -----------------------------------------------------------------------------
|
46
|
-
|
47
|
-
# -----------------------------------------------------------------------------
|
48
|
-
# fail2ban
|
49
|
-
# -----------------------------------------------------------------------------
|
50
|
-
# default values you can overwrite with documentation:
|
51
|
-
# https://github.com/nickjj/ansible-fail2ban/#role-variables
|
52
|
-
# -----------------------------------------------------------------------------
|
53
|
-
|
54
|
-
# -----------------------------------------------------------------------------
|
55
|
-
# user
|
56
|
-
# -----------------------------------------------------------------------------
|
57
|
-
# default values you can overwrite with documentation:
|
58
|
-
# https://github.com/nickjj/ansible-user/#role-variables
|
59
|
-
# -----------------------------------------------------------------------------
|
60
|
-
|
61
|
-
user_name: "{{ ansible_ssh_user }}"
|
62
|
-
|
63
|
-
# -----------------------------------------------------------------------------
|
64
|
-
# postgres
|
65
|
-
# -----------------------------------------------------------------------------
|
66
|
-
# default values you can overwrite with documentation:
|
67
|
-
# https://github.com/nickjj/ansible-postgres/#role-variables
|
68
|
-
# -----------------------------------------------------------------------------
|
69
|
-
|
70
|
-
postgres_user: "{{ user_name }}"
|
71
|
-
postgres_password: "{{ secrets_postgres_password }}"
|
72
|
-
|
73
|
-
# -----------------------------------------------------------------------------
|
74
|
-
# redis
|
75
|
-
# -----------------------------------------------------------------------------
|
76
|
-
# default values you can overwrite with documentation:
|
77
|
-
# https://github.com/DavidWittman/ansible-redis/blob/master/defaults/main.yml
|
78
|
-
# -----------------------------------------------------------------------------
|
79
|
-
|
80
|
-
redis_bind: 0.0.0.0
|
81
|
-
redis_port: 6379
|
82
|
-
redis_install_dir: /usr/local
|
83
|
-
redis_dir: /usr/local/redis
|
84
|
-
redis_password: "{{ secrets_redis_password }}"
|
85
|
-
|
86
|
-
# -----------------------------------------------------------------------------
|
87
|
-
# rails
|
88
|
-
# -----------------------------------------------------------------------------
|
89
|
-
# default values you can overwrite with documentation:
|
90
|
-
# https://github.com/nickjj/ansible-rails/#role-variables
|
91
|
-
# -----------------------------------------------------------------------------
|
92
|
-
|
93
|
-
rails_deploy_app_name: testproj
|
94
|
-
rails_deploy_user: "{{ user_name }}"
|
95
|
-
|
96
|
-
rails_deploy_ssh_keypair_local_path: "{{ secrets_load_path }}"
|
97
|
-
|
98
|
-
rails_deploy_git_url: "git@bitbucket.org:yourname/testproj.git"
|
99
|
-
|
100
|
-
rails_deploy_migrate_master_host: "{{ groups['app'][0] }}"
|
101
|
-
|
102
|
-
rails_deploy_env:
|
103
|
-
RAILS_ENV: production
|
104
|
-
SOURCE_ENV_PATH: "/etc/default/{{ rails_deploy_app_name }}"
|
105
|
-
|
106
|
-
PROJECT_PATH: "{{ rails_deploy_path }}"
|
107
|
-
TIME_ZONE: Eastern Time (US & Canada)
|
108
|
-
DEFAULT_LOCALE: en
|
109
|
-
|
110
|
-
GOOGLE_ANALYTICS_UA: ""
|
111
|
-
DISQUS_SHORT_NAME: ""
|
112
|
-
S3_ACCESS_KEY_ID: ""
|
113
|
-
S3_SECRET_ACCESS_KEY: ""
|
114
|
-
S3_REGION: ""
|
115
|
-
|
116
|
-
DATABASE_HOST: localhost
|
117
|
-
DATABASE_NAME: "{{ rails_deploy_app_name }}"
|
118
|
-
DATABASE_USERNAME: "{{ postgres_user }}"
|
119
|
-
DATABASE_PASSWORD: "{{ postgres_password }}"
|
120
|
-
DATABASE_POOL: 25
|
121
|
-
DATABASE_TIMEOUT: 5000
|
122
|
-
|
123
|
-
CACHE_HOST: "{{ redis_bind }}"
|
124
|
-
CACHE_PORT: "{{ redis_port }}"
|
125
|
-
CACHE_DATABASE: 0
|
126
|
-
CACHE_PASSWORD: "{{ secrets_redis_password }}"
|
127
|
-
|
128
|
-
TOKEN_RAILS_SECRET: "{{ secrets_rails_token }}"
|
129
|
-
TOKEN_DEVISE_SECRET: "{{ secrets_devise_token }}"
|
130
|
-
TOKEN_DEVISE_PEPPER: "{{ secrets_devise_pepper_token }}"
|
131
|
-
|
132
|
-
SMTP_ADDRESS: smtp.gmail.com
|
133
|
-
SMTP_PORT: 587 # 465 if you use ssl
|
134
|
-
SMTP_DOMAIN: gmail.com
|
135
|
-
SMTP_USERNAME: info@testproj.com
|
136
|
-
SMTP_PASSWORD: "{{ secrets_mail_password }}"
|
137
|
-
SMTP_AUTH: plain
|
138
|
-
SMTP_ENCRYPTION: starttls
|
139
|
-
|
140
|
-
ACTION_MAILER_HOST: www.testproj.com
|
141
|
-
ACTION_MAILER_DEFAULT_FROM: info@testproj.com
|
142
|
-
ACTION_MAILER_DEFAULT_TO: me@testproj.com
|
143
|
-
ACTION_MAILER_DEVISE_DEFAULT_FROM: info@testproj.com
|
144
|
-
|
145
|
-
PUMA_THREADS_MIN: 0
|
146
|
-
PUMA_THREADS_MAX: 16
|
147
|
-
|
148
|
-
PUMA_WORKERS: "{{ ansible_processor_cores if ansible_processor_cores > 1 else 2 }}"
|
149
|
-
|
150
|
-
SIDEKIQ_CONCURRENCY: 25
|
151
|
-
|
152
|
-
# -----------------------------------------------------------------------------
|
153
|
-
# whenever
|
154
|
-
# -----------------------------------------------------------------------------
|
155
|
-
# default values you can overwrite with documentation:
|
156
|
-
# https://github.com/nickjj/ansible-whenever/#role-variables
|
157
|
-
# -----------------------------------------------------------------------------
|
158
|
-
|
159
|
-
whenever_update: rails_deploy_app_name
|
160
|
-
|
161
|
-
# -----------------------------------------------------------------------------
|
162
|
-
# pumacorn
|
163
|
-
# -----------------------------------------------------------------------------
|
164
|
-
# default values you can overwrite with documentation:
|
165
|
-
# https://github.com/nickjj/ansible-pumacorn/#role-variables
|
166
|
-
# -----------------------------------------------------------------------------
|
167
|
-
|
168
|
-
# -----------------------------------------------------------------------------
|
169
|
-
# sidekiq
|
170
|
-
# -----------------------------------------------------------------------------
|
171
|
-
# default values you can overwrite with documentation:
|
172
|
-
# https://github.com/nickjj/ansible-sidekiq/#role-variables
|
173
|
-
# -----------------------------------------------------------------------------
|
174
|
-
|
175
|
-
# -----------------------------------------------------------------------------
|
176
|
-
# nginx
|
177
|
-
# -----------------------------------------------------------------------------
|
178
|
-
# default values you can overwrite with documentation:
|
179
|
-
# https://github.com/nickjj/ansible-nginx/#role-variables
|
180
|
-
# -----------------------------------------------------------------------------
|
181
|
-
|
182
|
-
nginx_base_domain: localhost # change this to yourdomain.com
|
183
|
-
nginx_upstream_name: "{{ rails_deploy_app_name }}"
|
184
|
-
nginx_upstream_server: unix://{{ rails_deploy_path }}/tmp/puma.sock
|
185
|
-
nginx_root_path: "{{ rails_deploy_path }}/public"
|
186
|
-
nginx_ssl_local_path: "{{ secrets_load_path }}"
|
187
|
-
|
188
|
-
# -----------------------------------------------------------------------------
|
189
|
-
# monit
|
190
|
-
# -----------------------------------------------------------------------------
|
191
|
-
# default values you can overwrite with documentation:
|
192
|
-
# https://github.com/nickjj/ansible-monit/#role-variables
|
193
|
-
# -----------------------------------------------------------------------------
|
194
|
-
|
195
|
-
monit_process_list: |
|
196
|
-
check process {{ rails_deploy_app_name }} with pidfile {{ rails_deploy_path }}/tmp/{{ pumacorn_server }}.pid
|
197
|
-
start program = "/etc/init.d/{{ rails_deploy_app_name }} start"
|
198
|
-
stop program = "/etc/init.d/{{ rails_deploy_app_name }} stop"
|
199
|
-
|
200
|
-
check process sidekiq with pidfile {{ rails_deploy_path }}/tmp/sidekiq.pid
|
201
|
-
start program = "/etc/init.d/sidekiq start"
|
202
|
-
stop program = "/etc/init.d/sidekiq stop"
|
@@ -1,15 +0,0 @@
|
|
1
|
-
nickjj.locale,v0.1.1
|
2
|
-
nickjj.sshd,v0.1.2
|
3
|
-
nickjj.ferm,v0.1.1
|
4
|
-
nickjj.fail2ban,v0.1.2
|
5
|
-
nickjj.user,v0.1.0
|
6
|
-
nickjj.postgres,v0.1.3
|
7
|
-
nickjj.ruby,v0.1.9
|
8
|
-
nickjj.nodejs,v0.1.1
|
9
|
-
nickjj.nginx,v0.1.4
|
10
|
-
nickjj.rails,v0.2.2
|
11
|
-
nickjj.whenever,v0.1.2
|
12
|
-
nickjj.pumacorn,v0.1.2
|
13
|
-
nickjj.sidekiq,v0.1.2
|
14
|
-
nickjj.monit,v0.1.3
|
15
|
-
DavidWittman.redis
|
@@ -1,23 +0,0 @@
|
|
1
|
-
---
|
2
|
-
- name: ensure all servers are commonly configured without sudo
|
3
|
-
hosts: all:!localhost
|
4
|
-
sudo: false
|
5
|
-
|
6
|
-
tasks:
|
7
|
-
- name: ensure IP address of the ansible controller is set
|
8
|
-
set_fact:
|
9
|
-
ansible_controller: '{{ ansible_env.SSH_CLIENT.split(" ") | first }}/32'
|
10
|
-
when: (ansible_controller is undefined and ansible_connection != "local")
|
11
|
-
tags: [common, ferm]
|
12
|
-
|
13
|
-
|
14
|
-
- name: ensure all servers are commonly configured with sudo
|
15
|
-
hosts: all
|
16
|
-
sudo: true
|
17
|
-
|
18
|
-
roles:
|
19
|
-
- { role: nickjj.locale, tags: [common, locale] }
|
20
|
-
- { role: nickjj.sshd, tags: [common, sshd] }
|
21
|
-
- { role: nickjj.ferm, tags: [common, ferm] }
|
22
|
-
- { role: nickjj.fail2ban, tags: [common, fail2ban] }
|
23
|
-
- { role: nickjj.user, tags: [common, user] }
|
@@ -1,36 +0,0 @@
|
|
1
|
-
---
|
2
|
-
- include: common.yml
|
3
|
-
|
4
|
-
- name: ensure database servers are configured
|
5
|
-
hosts: database
|
6
|
-
sudo: true
|
7
|
-
|
8
|
-
roles:
|
9
|
-
- { role: nickjj.postgres, tags: [database, postgres] }
|
10
|
-
|
11
|
-
- name: ensure cache servers are configured
|
12
|
-
hosts: cache
|
13
|
-
sudo: true
|
14
|
-
|
15
|
-
roles:
|
16
|
-
- { role: DavidWittman.redis, tags: [cache, redis] }
|
17
|
-
|
18
|
-
- name: ensure app servers are configured
|
19
|
-
hosts: app
|
20
|
-
sudo: true
|
21
|
-
|
22
|
-
roles:
|
23
|
-
- role: nickjj.ferm
|
24
|
-
tags: [app, ferm]
|
25
|
-
ferm_input_list:
|
26
|
-
- type: "dport_accept"
|
27
|
-
dport: ["http", "https"]
|
28
|
-
|
29
|
-
- { role: nickjj.ruby, tags: [app, ruby] }
|
30
|
-
- { role: nickjj.nodejs, tags: [app, nodejs] }
|
31
|
-
- { role: nickjj.nginx, tags: [app, nginx] }
|
32
|
-
- { role: nickjj.rails, tags: [app, rails] }
|
33
|
-
- { role: nickjj.whenever, tags: [app, rails] }
|
34
|
-
- { role: nickjj.pumacorn, tags: [app, rails] }
|
35
|
-
- { role: nickjj.sidekiq, tags: [app, rails] }
|
36
|
-
- { role: nickjj.monit, tags: [app, monit] }
|
@@ -1,19 +0,0 @@
|
|
1
|
-
---
|
2
|
-
language: "python"
|
3
|
-
python: "2.7"
|
4
|
-
|
5
|
-
env:
|
6
|
-
- SITE_AND_INVENTORY="tests/main.yml -i tests/inventory"
|
7
|
-
|
8
|
-
install:
|
9
|
-
- "pip install ansible==1.6.2"
|
10
|
-
- "printf '[defaults]\nroles_path = ../' > ansible.cfg"
|
11
|
-
|
12
|
-
script:
|
13
|
-
- "ansible-playbook $SITE_AND_INVENTORY --syntax-check"
|
14
|
-
- "ansible-playbook $SITE_AND_INVENTORY --connection=local -vvvv"
|
15
|
-
- >
|
16
|
-
ansible-playbook $SITE_AND_INVENTORY --connection=local
|
17
|
-
| grep -q 'changed=0.*failed=0'
|
18
|
-
&& (echo 'Idempotence test: pass' && exit 0)
|
19
|
-
|| (echo 'Idempotence test: fail' && exit 1)
|
@@ -1,62 +0,0 @@
|
|
1
|
-
## What is repo_name? [![Build Status](https://secure.travis-ci.org/github_user/repo_name.png)](http://travis-ci.org/github_user/repo_name)
|
2
|
-
|
3
|
-
It is an [ansible](http://www.ansible.com/home) role to <enter what the role is about>.
|
4
|
-
|
5
|
-
### What problem does it solve and why is it useful?
|
6
|
-
|
7
|
-
Thanks for generating a role with orats. Here's your todo list:
|
8
|
-
|
9
|
-
- Change `meta/main.yml` to your liking
|
10
|
-
- Create your awesome role
|
11
|
-
- Fill out this readme properly
|
12
|
-
- Sign up for [travis-ci.org](http://travis-ci.org) (it is free for public repos)
|
13
|
-
- Review `.travis.yml` and write reasonable tests
|
14
|
-
- Push your role to github and tag it with a version number
|
15
|
-
- Publish your role on the [ansible galaxy](https://galaxy.ansible.com) if it's not private
|
16
|
-
- Replace the `role_id` with your id in the `Ansible galaxy` section of this readme
|
17
|
-
|
18
|
-
## Role variables
|
19
|
-
|
20
|
-
Below is a list of default values along with a description of what they do.
|
21
|
-
|
22
|
-
```
|
23
|
-
# Add your default role variables here.
|
24
|
-
```
|
25
|
-
|
26
|
-
## Example playbook
|
27
|
-
|
28
|
-
For the sake of this example let's assume you have a group called **foo** and you have a typical `site.yml` file.
|
29
|
-
|
30
|
-
To use this role edit your `site.yml` file to look something like this:
|
31
|
-
|
32
|
-
```
|
33
|
-
---
|
34
|
-
- name: ensure foo servers are configured
|
35
|
-
- hosts: foo
|
36
|
-
|
37
|
-
roles:
|
38
|
-
- { role: github_user.role_name, tags: role_name }
|
39
|
-
```
|
40
|
-
|
41
|
-
Let's say you want to edit a few values, you can do this by opening or creating `group_vars/foo.yml` which is located relative to your `inventory` directory and then making it look something like this:
|
42
|
-
|
43
|
-
```
|
44
|
-
---
|
45
|
-
# Overwrite the defaults here.
|
46
|
-
```
|
47
|
-
|
48
|
-
## Installation
|
49
|
-
|
50
|
-
`$ ansible-galaxy install github_user.role_name`
|
51
|
-
|
52
|
-
## Requirements
|
53
|
-
|
54
|
-
Tested on <enter your OS of choice>.
|
55
|
-
|
56
|
-
## Ansible galaxy
|
57
|
-
|
58
|
-
You can find it on the official [ansible galaxy](https://galaxy.ansible.com/list#/roles/role_id) if you want to rate it.
|
59
|
-
|
60
|
-
## License
|
61
|
-
|
62
|
-
MIT
|
@@ -1,123 +0,0 @@
|
|
1
|
-
---
|
2
|
-
galaxy_info:
|
3
|
-
author: author_name
|
4
|
-
description: Enter a short description about this role.
|
5
|
-
company: Your company (optional).
|
6
|
-
# Some suggested licenses:
|
7
|
-
# - BSD (default)
|
8
|
-
# - MIT
|
9
|
-
# - GPLv2
|
10
|
-
# - GPLv3
|
11
|
-
# - Apache
|
12
|
-
# - CC-BY
|
13
|
-
license: license MIT
|
14
|
-
min_ansible_version: 1.6
|
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: Fedora
|
32
|
-
# versions:
|
33
|
-
# - all
|
34
|
-
# - 16
|
35
|
-
# - 17
|
36
|
-
# - 18
|
37
|
-
# - 19
|
38
|
-
# - 20
|
39
|
-
#- name: opensuse
|
40
|
-
# versions:
|
41
|
-
# - all
|
42
|
-
# - 12.1
|
43
|
-
# - 12.2
|
44
|
-
# - 12.3
|
45
|
-
# - 13.1
|
46
|
-
# - 13.2
|
47
|
-
#- name: Amazon
|
48
|
-
# versions:
|
49
|
-
# - all
|
50
|
-
# - 2013.03
|
51
|
-
# - 2013.09
|
52
|
-
#- name: GenericBSD
|
53
|
-
# versions:
|
54
|
-
# - all
|
55
|
-
# - any
|
56
|
-
#- name: FreeBSD
|
57
|
-
# versions:
|
58
|
-
# - all
|
59
|
-
# - 8.0
|
60
|
-
# - 8.1
|
61
|
-
# - 8.2
|
62
|
-
# - 8.3
|
63
|
-
# - 8.4
|
64
|
-
# - 9.0
|
65
|
-
# - 9.1
|
66
|
-
# - 9.1
|
67
|
-
# - 9.2
|
68
|
-
#- name: Ubuntu
|
69
|
-
# versions:
|
70
|
-
# - all
|
71
|
-
# - lucid
|
72
|
-
# - maverick
|
73
|
-
# - natty
|
74
|
-
# - oneiric
|
75
|
-
# - precise
|
76
|
-
# - quantal
|
77
|
-
# - raring
|
78
|
-
# - saucy
|
79
|
-
# - trusty
|
80
|
-
#- name: SLES
|
81
|
-
# versions:
|
82
|
-
# - all
|
83
|
-
# - 10SP3
|
84
|
-
# - 10SP4
|
85
|
-
# - 11
|
86
|
-
# - 11SP1
|
87
|
-
# - 11SP2
|
88
|
-
# - 11SP3
|
89
|
-
#- name: GenericLinux
|
90
|
-
# versions:
|
91
|
-
# - all
|
92
|
-
# - any
|
93
|
-
#- name: Debian
|
94
|
-
# versions:
|
95
|
-
# - all
|
96
|
-
# - etch
|
97
|
-
# - lenny
|
98
|
-
# - squeeze
|
99
|
-
# - wheezy
|
100
|
-
#
|
101
|
-
# Below are all categories currently available. Just as with
|
102
|
-
# the platforms above, uncomment those that apply to your role.
|
103
|
-
#
|
104
|
-
#categories:
|
105
|
-
#- cloud
|
106
|
-
#- cloud:ec2
|
107
|
-
#- cloud:gce
|
108
|
-
#- cloud:rax
|
109
|
-
#- clustering
|
110
|
-
#- database
|
111
|
-
#- database:nosql
|
112
|
-
#- database:sql
|
113
|
-
#- development
|
114
|
-
#- monitoring
|
115
|
-
#- networking
|
116
|
-
#- packaging
|
117
|
-
#- system
|
118
|
-
#- web
|
119
|
-
dependencies: []
|
120
|
-
# List your role dependencies here, one per line. Only
|
121
|
-
# dependencies available via galaxy should be listed here.
|
122
|
-
# Be sure to remove the '[]' above if you add dependencies
|
123
|
-
# to this list.
|
@@ -1 +0,0 @@
|
|
1
|
-
localhost
|
@@ -1,119 +0,0 @@
|
|
1
|
-
# =============================================================================
|
2
|
-
# template for generating an orats ansible playbook for ansible 1.6.x
|
3
|
-
# =============================================================================
|
4
|
-
# view the task list at the bottom of the file
|
5
|
-
# -----------------------------------------------------------------------------
|
6
|
-
|
7
|
-
# -----------------------------------------------------------------------------
|
8
|
-
# private functions
|
9
|
-
# -----------------------------------------------------------------------------
|
10
|
-
def method_to_sentence(method)
|
11
|
-
method.tr!('_', ' ')
|
12
|
-
method[0] = method[0].upcase
|
13
|
-
method
|
14
|
-
end
|
15
|
-
|
16
|
-
def log_task(message)
|
17
|
-
puts
|
18
|
-
say_status 'task', "#{method_to_sentence(message.to_s)}:", :yellow
|
19
|
-
puts '-'*80, ''; sleep 0.25
|
20
|
-
end
|
21
|
-
|
22
|
-
def git_commit(message)
|
23
|
-
git add: '-A'
|
24
|
-
git commit: "-m '#{message}'"
|
25
|
-
end
|
26
|
-
|
27
|
-
def git_config(field)
|
28
|
-
command = "git config --global user.#{field}"
|
29
|
-
git_field_value = run(command, capture: true).gsub("\n", '')
|
30
|
-
default_value = "YOUR_#{field.upcase}"
|
31
|
-
|
32
|
-
git_field_value.to_s.empty? ? default_value : git_field_value
|
33
|
-
end
|
34
|
-
|
35
|
-
def copy_from_local_gem(source, dest = '')
|
36
|
-
dest = source if dest.empty?
|
37
|
-
|
38
|
-
base_path = "#{File.expand_path File.dirname(__FILE__)}/includes/playbook"
|
39
|
-
|
40
|
-
run "mkdir -p #{File.dirname(dest)}" unless Dir.exist?(File.dirname(dest))
|
41
|
-
run "cp -f #{base_path}/#{source} #{dest}"
|
42
|
-
end
|
43
|
-
|
44
|
-
# ---
|
45
|
-
|
46
|
-
def delete_generated_rails_code
|
47
|
-
log_task __method__
|
48
|
-
|
49
|
-
run 'rm -rf * .git .gitignore'
|
50
|
-
end
|
51
|
-
|
52
|
-
def add_playbook_directory
|
53
|
-
log_task __method__
|
54
|
-
|
55
|
-
run "mkdir -p #{app_name}"
|
56
|
-
run "mv #{app_name}/* ."
|
57
|
-
run "rm -rf #{app_name}"
|
58
|
-
git :init
|
59
|
-
git_commit 'Initial commit'
|
60
|
-
end
|
61
|
-
|
62
|
-
def add_gitignore
|
63
|
-
log_task __method__
|
64
|
-
|
65
|
-
copy_from_local_gem '../common/.gitignore', '.gitignore'
|
66
|
-
git_commit 'Add .gitignore'
|
67
|
-
end
|
68
|
-
|
69
|
-
def add_license
|
70
|
-
log_task __method__
|
71
|
-
|
72
|
-
author_name = git_config 'name'
|
73
|
-
author_email = git_config 'email'
|
74
|
-
|
75
|
-
copy_from_local_gem '../common/LICENSE', 'LICENSE'
|
76
|
-
gsub_file 'LICENSE', 'Time.now.year', Time.now.year.to_s
|
77
|
-
gsub_file 'LICENSE', 'author_name', author_name
|
78
|
-
gsub_file 'LICENSE', 'author_email', author_email
|
79
|
-
git_commit 'Add MIT license'
|
80
|
-
end
|
81
|
-
|
82
|
-
def add_common_plays
|
83
|
-
log_task __method__
|
84
|
-
|
85
|
-
copy_from_local_gem 'common.yml'
|
86
|
-
git_commit 'Add common playsk'
|
87
|
-
end
|
88
|
-
|
89
|
-
def add_site_plays
|
90
|
-
log_task __method__
|
91
|
-
|
92
|
-
copy_from_local_gem 'site.yml'
|
93
|
-
git_commit 'Add the site plays'
|
94
|
-
end
|
95
|
-
|
96
|
-
def add_galaxyfile
|
97
|
-
log_task __method__
|
98
|
-
|
99
|
-
copy_from_local_gem 'Galaxyfile'
|
100
|
-
git_commit 'Add the Galaxyfile'
|
101
|
-
end
|
102
|
-
|
103
|
-
def remove_unused_files_from_git
|
104
|
-
log_task __method__
|
105
|
-
|
106
|
-
git add: '-u'
|
107
|
-
git_commit 'Remove unused files'
|
108
|
-
end
|
109
|
-
|
110
|
-
# ---
|
111
|
-
|
112
|
-
delete_generated_rails_code
|
113
|
-
add_playbook_directory
|
114
|
-
add_gitignore
|
115
|
-
add_license
|
116
|
-
add_common_plays
|
117
|
-
add_site_plays
|
118
|
-
add_galaxyfile
|
119
|
-
remove_unused_files_from_git
|