orats 0.7.3 → 0.8.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.
- 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? [](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
         |