From fc5cf0410cc3ba9db0fa0eaf3ebbc82f36bc14a5 Mon Sep 17 00:00:00 2001 From: Mattias Hellborg Arthursson Date: Fri, 22 Nov 2013 16:04:03 +0100 Subject: [PATCH] LDAP-56: Server setup script for EC2 OpenLDAP server and keystore for spring-ldap ad integration test instance. --- etc/ec2/fabfile.py | 83 ++++++++++++++++++++++++++++++++ etc/ec2/spring-ldap-ad-keystore | Bin 0 -> 1683 bytes 2 files changed, 83 insertions(+) create mode 100644 etc/ec2/fabfile.py create mode 100644 etc/ec2/spring-ldap-ad-keystore diff --git a/etc/ec2/fabfile.py b/etc/ec2/fabfile.py new file mode 100644 index 00000000..51b7c2a1 --- /dev/null +++ b/etc/ec2/fabfile.py @@ -0,0 +1,83 @@ +__author__ = 'Mattias Hellborg Arthursson' + +from time import sleep +from fabric.api import task, settings, sudo, execute +from boto.ec2 import EC2Connection, get_region, connect_to_region + +BASE_AMI_ID = 'ami-6d0be61a' +KEYPAIR = 'dev-keypair' +SECURITY_GROUPS = ['default'] +INSTANCE_TYPE = "m1.small" +KEY_FILE = '~/.ssh/dev-keypair.pem' +SSH_USER = 'ubuntu' +AMI_NAME = 'spring-ldap-openldap' +AMI_DESCRIPTION = 'OpenLdap instance for Spring LDAP integration tests' + +@task +def launch_instance(): + conn = connect_to_region('eu-west-1') + reservation = conn.run_instances( + BASE_AMI_ID, + key_name=KEYPAIR, + instance_type=INSTANCE_TYPE, + security_groups=SECURITY_GROUPS + ) + + instance = reservation.instances[0] + while instance.state != 'running': + print('Waiting for instance to start') + sleep(10) + instance.update() + + print('Instance started') + return conn, instance + +@task +def setup_openldap_instance(): + conn, instance = launch_instance() + + with settings( + host_string=instance.public_dns_name, + key_filename=KEY_FILE, + user=SSH_USER, + connection_attempts=10): + upgrade_instance() + install_slapd() + + return conn, instance + +@task +def bundle_openldap_instance(): + conn, instance = setup_openldap_instance() + bundle_instance(conn, instance.id, AMI_NAME, AMI_DESCRIPTION) + + +def bundle_instance(conn, instance_id, ami_name, ami_description): + print('Creating AMI') + new_id = conn.create_image(instance_id, ami_name, ami_description) + ami = conn.get_all_images([new_id])[0] + + while ami.state == 'pending': + print('Waiting for image to become available to start') + ami.update() + sleep(20) + + conn.create_tags([ami.id], {'Name': ami_name}) + conn.terminate_instances([instance_id]) + + +def upgrade_instance(): + sudo('apt-get update') + sudo('apt-get upgrade -y') + sudo('apt-get install debconf-utils -y') + + +def install_slapd(): + sudo('cp /etc/hosts /etc/hosts.old') + sudo("sed -i '1i 127.0.1.1 open-ldap.261consulting.com open-ldap' /etc/hosts") + sudo("echo 'slapd slapd/password1 password secret' | sudo debconf-set-selections") + sudo("echo 'slapd slapd/password2 password secret' | sudo debconf-set-selections") + sudo("echo 'slapd shared/organization string 261consulting.com' | sudo debconf-set-selections") + sudo("echo 'slapd slapd/organization string 261consulting.com' | sudo debconf-set-selections") + sudo("echo 'slapd slapd/domain string 261consulting.com' | sudo debconf-set-selections") + sudo('apt-get install slapd ldap-utils -y') \ No newline at end of file diff --git a/etc/ec2/spring-ldap-ad-keystore b/etc/ec2/spring-ldap-ad-keystore new file mode 100644 index 0000000000000000000000000000000000000000..f1a9b4a90679940c1d9ac6bbb9a36d24d14da43e GIT binary patch literal 1683 zcmezO_TO6u1_mY|W(3oG#RWx~dFi@2DTxKTi77x~rv?qaa0b>0JyQcq1_m}CgC;f) zgCw@Un4gwRyCC=VfGMWo0mkHxxDyWaHwTq}Dn4lTHew zq!@E@ey*Xcfi#LBuaTKya(-TMX-)~yVna;>bvEWu7G_}u6mi{fPd{C6M-FOX_ov8P@ebW{DqEKhQSieV^!J ze%AL)uOHj<{FeP4t)G1G*`jRsoSGM>)*qb_&C+M_`B$Tw!)N0vxnsu1S>Nwnqtat8 zG{xuHRFP!{SEE)=tADQE8l3s%`?L4qCwkNu{GEDPaq7>vfx3TtYW3{v%y7m6M5?k%4h>6SKKN6SJ{_J{zYt8zT#2leq{J zi;|oIg9}4GLoP!iLncEWgENqw$56sh1f+9-FqNUmKo%GgvZ^d%1|n=6K%K0t?95DX z7NY?lNSdFK@jnX-GZX6qg9>+3uF*`lOAEJ<4js0J;?f`pu10zgziX;MyRvZ|4RcWNb&3{EX7 z%S=u!21y~ao%8e3GSf?o5=%1k^K@LCQEdeY0F%9aa%xdYW?E))Vo7RHYFR#z2CDYS zEH1H6N-R#b&rixqO)hcHNh~h5O%C#L0ZJ5QCY6E|1>|Sul^8VMfW;ysBTM6HgT@mE zjYnZZ225>@J4p1mqo*VFJ?ZF-@Fo_I!6kv-ax5*$$S=w)sWk8fMWi5$n}N#$d3bV{ zWLzM`B2bXRsha1MYt zW7GFn4^E~0F@8E<>$;B7E0#@HXRSYc>)KS)c>&QMULKs?tStUO+o-eMQD@ilPK6GK z_;X+GxuSTPq$nMB0;}u^u41T>!IhGgj;mfhml<&Ix zTUQj#O`4FsZs|ec=W=-mr>%3`d$J?FRP5QU)9doojvf5ZKjT!>MA7^gCL4R(az6Hj zH65Dx`RT>Qk~dXie~7McFg-nyUwHDGd!8i|cI~-wP)Olf?wwGlb^WQ|W)>au|2+RO T`$5wC7 literal 0 HcmV?d00001