Commit 3ad526d8 by John Jarvis

Merge pull request #689 from edx/jarv/config-secure-update

creating arg for configuration-secure and adding role path
parents c55babf9 d68676b8
../ansible.cfg
\ No newline at end of file
# config file for ansible -- http://ansible.github.com
# nearly all parameters can be overridden in ansible-playbook or with command line flags
# ansible will read ~/.ansible.cfg or /etc/ansible/ansible.cfg, whichever it finds first
[defaults]
jinja2_extensions=jinja2.ext.do
hash_behaviour=merge
host_key_checking=False
roles_path=../../../ansible-roles
...@@ -4,6 +4,7 @@ from argparse import ArgumentParser ...@@ -4,6 +4,7 @@ from argparse import ArgumentParser
import time import time
import json import json
import yaml import yaml
import os
try: try:
import boto.ec2 import boto.ec2
import boto.sqs import boto.sqs
...@@ -61,7 +62,7 @@ class MongoConnection: ...@@ -61,7 +62,7 @@ class MongoConnection:
} }
try: try:
self.mongo_ami.insert(query) self.mongo_ami.insert(query)
except DuplicateKeyError as e: except DuplicateKeyError:
if not args.noop: if not args.noop:
print "Entry already exists for {}".format(ami) print "Entry already exists for {}".format(ami)
raise raise
...@@ -71,11 +72,11 @@ class MongoConnection: ...@@ -71,11 +72,11 @@ class MongoConnection:
Adds the built AMI to the deployment Adds the built AMI to the deployment
collection collection
""" """
query = { '_id': args.jenkins_build } query = {'_id': args.jenkins_build}
deployment = self.mongo_deployment.find_one(query) deployment = self.mongo_deployment.find_one(query)
try: try:
deployment['plays'][args.play]['amis'][args.environment] = ami deployment['plays'][args.play]['amis'][args.environment] = ami
except KeyError as e: except KeyError:
msg = "Unexpected document structure, couldn't write " +\ msg = "Unexpected document structure, couldn't write " +\
"to path deployment['plays']['{}']['amis']['{}']" "to path deployment['plays']['{}']['amis']['{}']"
print msg.format(args.play, args.environment) print msg.format(args.play, args.environment)
...@@ -95,6 +96,7 @@ class MongoConnection: ...@@ -95,6 +96,7 @@ class MongoConnection:
self.mongo_deployment.save(deployment) self.mongo_deployment.save(deployment)
class Unbuffered: class Unbuffered:
""" """
For unbuffered output, not For unbuffered output, not
...@@ -121,8 +123,8 @@ def parse_args(): ...@@ -121,8 +123,8 @@ def parse_args():
parser.add_argument('--secure-vars', required=False, parser.add_argument('--secure-vars', required=False,
metavar="SECURE_VAR_FILE", metavar="SECURE_VAR_FILE",
help="path to secure-vars from the root of " help="path to secure-vars from the root of "
"configuration-secure, defaults to ansible/" "the secure repo (defaults to ansible/"
"vars/DEPLOYMENT/ENVIRONMENT-DEPLOYMENT.yml") "vars/DEPLOYMENT/ENVIRONMENT-DEPLOYMENT.yml)")
parser.add_argument('--stack-name', parser.add_argument('--stack-name',
help="defaults to ENVIRONMENT-DEPLOYMENT", help="defaults to ENVIRONMENT-DEPLOYMENT",
metavar="STACK_NAME", metavar="STACK_NAME",
...@@ -149,6 +151,9 @@ def parse_args(): ...@@ -149,6 +151,9 @@ def parse_args():
parser.add_argument('--configuration-secure-version', required=False, parser.add_argument('--configuration-secure-version', required=False,
help="configuration-secure repo branch(no hashes)", help="configuration-secure repo branch(no hashes)",
default="master") default="master")
parser.add_argument('--configuration-secure-repo', required=False,
default="git@github.com:edx-ops/prod-secure",
help="repo to use for the secure files")
parser.add_argument('-j', '--jenkins-build', required=False, parser.add_argument('-j', '--jenkins-build', required=False,
help="jenkins build number to update") help="jenkins build number to update")
parser.add_argument('-b', '--base-ami', required=False, parser.add_argument('-b', '--base-ami', required=False,
...@@ -261,8 +266,12 @@ environment="{environment}" ...@@ -261,8 +266,12 @@ environment="{environment}"
deployment="{deployment}" deployment="{deployment}"
play="{play}" play="{play}"
config_secure={config_secure} config_secure={config_secure}
secure_vars_file="$base_dir/configuration-secure/{secure_vars}" git_repo_name="configuration"
common_vars_file="$base_dir/configuration-secure/ansible/vars/common/common.yml" git_repo="https://github.com/edx/$git_repo_name"
git_repo_secure="{configuration_secure_repo}"
git_repo_secure_name="{configuration_secure_repo_basename}"
secure_vars_file="$base_dir/$git_repo_secure_name/{secure_vars}"
common_vars_file="$base_dir/$git_repo_secure_name/ansible/vars/common/common.yml"
instance_id=\\ instance_id=\\
$(curl http://169.254.169.254/latest/meta-data/instance-id 2>/dev/null) $(curl http://169.254.169.254/latest/meta-data/instance-id 2>/dev/null)
instance_ip=\\ instance_ip=\\
...@@ -270,10 +279,6 @@ $(curl http://169.254.169.254/latest/meta-data/local-ipv4 2>/dev/null) ...@@ -270,10 +279,6 @@ $(curl http://169.254.169.254/latest/meta-data/local-ipv4 2>/dev/null)
instance_type=\\ instance_type=\\
$(curl http://169.254.169.254/latest/meta-data/instance-type 2>/dev/null) $(curl http://169.254.169.254/latest/meta-data/instance-type 2>/dev/null)
playbook_dir="$base_dir/configuration/playbooks/edx-east" playbook_dir="$base_dir/configuration/playbooks/edx-east"
git_repo_name="configuration"
git_repo_secure_name="configuration-secure"
git_repo="https://github.com/edx/$git_repo_name"
git_repo_secure="git@github.com:edx/$git_repo_secure_name"
if $config_secure; then if $config_secure; then
git_cmd="env GIT_SSH=$git_ssh git" git_cmd="env GIT_SSH=$git_ssh git"
...@@ -349,6 +354,9 @@ rm -rf $base_dir ...@@ -349,6 +354,9 @@ rm -rf $base_dir
""".format( """.format(
configuration_version=args.configuration_version, configuration_version=args.configuration_version,
configuration_secure_version=args.configuration_secure_version, configuration_secure_version=args.configuration_secure_version,
configuration_secure_repo=args.configuration_secure_repo,
configuration_secure_repo_basename=os.path.basename(
args.configuration_secure_repo),
environment=args.environment, environment=args.environment,
deployment=args.deployment, deployment=args.deployment,
play=args.play, play=args.play,
......
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