Commit 90f720c2 by Sef Kloninger

Merge pull request #861 from edx/sef/edx-west/parameterize-machines-in-playbooks-master

Parameterize machine names in edx-west playbooks
parents 13baf1b5 41514f35
...@@ -31,13 +31,19 @@ sure that the stanford-deploy-20130415 ssh key is in your ssh agent. ...@@ -31,13 +31,19 @@ sure that the stanford-deploy-20130415 ssh key is in your ssh agent.
Some specifics: Some specifics:
* To hit multiple machines the -e parameter would look like this: ```"machine=app(1|2|4)"```. * To do database migrations, include this: ```-e "migrate_db=yes"```. The default
behavior is to not do migrations.
* To hit multiple machines the use this: ```-e "machine=app(1|2|4)"```.
Use multiple separate "-e" options to specify multiple vars on the
command line.
* Usually I do with the ```--list-hosts``` option first to verify that I'm * Usually I do with the ```--list-hosts``` option first to verify that I'm
doing something sane before actually running. doing something sane before actually running.
* To do the utility machines, use ```prod-worker.yml```. Those also * To install the utility machines, substitute ```prod-worker.yml```. Those
take the machine variable. are also parameterized on the take the machine variable (util1, util(1|2),
and so forth).
## Ansible Commands - Stage ## Ansible Commands - Stage
......
- hosts: ~tag_Name_app(10|20)_carn # This uses variable expansion so you can select machine(s) from the command line
# using the -e flag. See README for instructions on how to use.
- hosts: ~tag_Name_{{machine}}_carn
pre_tasks:
- fail: msg="This playbook only runnable on 'app' machines"
when: "'app' not in machine"
sudo: True sudo: True
vars_prompt:
- name: "migrate_db"
prompt: "Should this playbook run database migrations? (Type 'yes' to run, anything else to skip migrations)"
default: "no"
private: no
vars: vars:
secure_dir: '../../../configuration-secure/ansible' secure_dir: '../../../configuration-secure/ansible'
# this indicates the path to site-specific (with precedence) # this indicates the path to site-specific (with precedence)
......
# this gets all running prod webservers - name: Basic util setup on carnegie workers
- hosts: tag_environment_prod_carn:&tag_function_util # This uses variable expansion so you can select machine(s) from the command line
# or we can get subsets of them by name # using the -e flag. See README for instructions on how to use.
#- hosts: ~tag_Name_util(10)_carn hosts: ~tag_Name_{{machine}}_carn
pre_tasks:
- fail: msg="This playbook only runnable on 'util' machines"
when: "'util' not in machine"
sudo: True sudo: True
gather_facts: True
vars: vars:
secure_dir: '../../../edx-secret/ansible' secure_dir: '../../../edx-secret/ansible'
# this indicates the path to site-specific (with precedence) # this indicates the path to site-specific (with precedence)
......
...@@ -9,17 +9,13 @@ ...@@ -9,17 +9,13 @@
# - apt: pkg=libzmq-dev,python-zmq state=present # - apt: pkg=libzmq-dev,python-zmq state=present
# - action: fireball # - action: fireball
# This uses variable expansion so you can select machine(s) from the command line
# this gets all running prod webservers # using the -e flag. See README for instructions on how to use.
#- hosts: tag_environment_prod:&tag_function_webserver - hosts: ~tag_Name_{{machine}}_cme
# or we can get subsets of them by name pre_tasks:
- hosts: ~tag_Name_app(10|20)_cme - fail: msg="This playbook only runnable on 'app' machines"
when: "'app' not in machine"
sudo: True sudo: True
vars_prompt:
- name: "migrate_db"
prompt: "Should this playbook run database migrations? (Type 'yes' to run, anything else to skip migrations)"
default: "no"
private: no
vars: vars:
secure_dir: '../../../edx-secret/ansible' secure_dir: '../../../edx-secret/ansible'
# this indicates the path to site-specific (with precedence) # this indicates the path to site-specific (with precedence)
......
# this gets all running prod webservers - name: Basic util setup on cme hosts
- hosts: tag_environment_prod_cme:&tag_function_util # This uses variable expansion so you can select machine(s) from the command line
# or we can get subsets of them by name # using the -e flag. See README for instructions on how to use.
#- hosts: ~tag_Name_util(10)_cme hosts: ~tag_Name_{{machine}}_cme
pre_tasks:
- fail: msg="This playbook only runnable on 'util' machines"
when: "'util' not in machine"
sudo: True sudo: True
vars: vars:
secure_dir: '../../../edx-secret/ansible' secure_dir: '../../../edx-secret/ansible'
......
# this gets all running prod webservers # This uses variable expansion so you can select machine(s) from the command line
#- hosts: tag_environment_prod:&tag_function_webserver # using the -e flag. See README for instructions on how to use.
# or we can get subsets of them by name - hosts: ~tag_Name_{{machine}}_prod
#- hosts: ~tag_Name_app(10|20)_prod pre_tasks:
- hosts: ~tag_Name_app(11|21)_prod - fail: msg="This playbook only runnable on 'app' machines"
## this is the test box when: "'app' not in machine"
#- hosts: ~tag_Name_app4_prod
## you can also do security group, but don't do that
#- hosts: security_group_edx-prod-EdxappServerSecurityGroup-NSKCQTMZIPQB
sudo: True sudo: True
vars_prompt:
- name: "migrate_db"
prompt: "Should this playbook run database migrations? (Type 'yes' to run, anything else to skip migrations)"
default: "no"
private: no
vars: vars:
secure_dir: '../../../configuration-secure/ansible' secure_dir: '../../../configuration-secure/ansible'
# this indicates the path to site-specific (with precedence) # this indicates the path to site-specific (with precedence)
......
# For all util machines - name: Basic util setup on all hosts
- hosts: tag_environment_prod:&tag_function_util # This uses variable expansion so you can select machine(s) from the command line
# or we can get subsets of them by name # using the -e flag. See README for instructions on how to use.
#- hosts: ~tag_Name_util(1|2)_prod hosts: ~tag_Name_{{machine}}_prod
pre_tasks:
- fail: msg="This playbook only runnable on 'util' machines"
when: "'util' not in machine"
sudo: True sudo: True
vars: vars:
secure_dir: '../../../configuration-secure/ansible' secure_dir: '../../../configuration-secure/ansible'
......
- hosts: tag_environment_stage:&tag_function_webserver # This uses variable expansion so you can select machine(s) from the command line
#- hosts: tag_Name_app1_stage # using the -e flag. See README for instructions on how to use.
- hosts: ~tag_Name_{{ machine }}_stage
pre_tasks:
- fail: msg="This playbook only runnable on 'app' machines"
when: "'app' not in machine"
sudo: True sudo: True
vars_prompt:
- name: "migrate_db"
prompt: "Should this playbook run database migrations? (Type 'yes' to run, anything else to skip migrations)"
default: "no"
private: no
vars: vars:
not_prod: true not_prod: true
secure_dir: ../../../edx-secret/ansible secure_dir: ../../../edx-secret/ansible
......
# this gets all running stage util machiens ---
- hosts: tag_environment_stage:&tag_function_util - name: Basic util setup on all hosts
# or we can get subsets of them by name # This uses variable expansion so you can select machine(s) from the command line
#- hosts: ~tag_Name_util(1|2)_stage # using the -e flag. See README for instructions on how to use.
hosts: ~tag_Name_{{machine}}_stage
pre_tasks:
- fail: msg="This playbook only runnable on 'util' machines"
when: "'util' not in machine"
sudo: True sudo: True
vars: vars:
secure_dir: ../../../edx-secret/ansible secure_dir: ../../../edx-secret/ansible
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment