# restricted to run on cloud instances only
- hosts: 209.132.184.*
  user: root
  vars_files: 
   - /srv/web/infra/ansible/vars/global.yml
   - $private/vars.yml
   - $vars/${ansible_distribution}.yml
  
  tasks:
  - include: $tasks/cloud_setup_basic.yml

  # setup openshift broker on el6
  - name: set the hostname to openshift-
    action: command hostname openshift-${dist_tag}
    tags:
    - config
  
  - name: setup openshift and jenkins repos
    action: copy src=$files/openshift/$item dest=/etc/yum.repos.d/$item
    with_items:
    - openshift-el6.repo
    - jenkins.repo
  
  - name: install openshift pkg core
    action: yum state=installed name=$item
    with_items:
    - mcollective 
    - mcollective-qpid-plugin 
    - mongodb 
    - qpid-cpp-server 
    - rubygem-gearchanger-mcollective-plugin 
    - rubygem-swingshift-mongo-plugin 
    - rubygem-uplift-bind-plugin 
    - rhc 
    - stickshift-broker
  
  - name: set selinux bools appropriately
    action: seboolean state=true persistent=yes name=$item
    with_items:
    - httpd_unified
    - httpd_can_network_connect
    - httpd_can_network_relay
    - named_write_master_zones
    - allow_ypbind
  
  - name: selinux module install - stickshift
    action: command semodule -i /usr/share/selinux/packages/rubygem-stickshift-common/stickshift.pp
  
  - name: selinux module disable - passenger
    action: command semodule -d passenger
    ignore_errors: True
  
  - name: selinux module install - other passenger
    action: command semodule -i /usr/share/selinux/packages/rubygem-passenger/rubygem-passenger.pp
  
  - name: fix up files for selinux
    action: command $item
    with_items:
    - "fixfiles -R rubygem-passenger restore"
    - "fixfiles -R mod_passenger restore"
    - "restorecon -rv /var/run"
    - "restorecon -rv /usr/lib/ruby/gems/1.8/gems/passenger-*"
    - "restorecon -rv /usr/sbin/mcollectived /var/log/mcollective.log /run/mcollective.pid"
  
  - name: mongodb.conf
    action: copy src=$files/openshift/mongodb.conf dest=/etc/mongodb.conf backup=true
    tags:
    - mongo
  
  - name: mongod service start
    action: service name=mongod state=running enabled=yes
    tags:
    - mongo
  
  - name: mongo/openshift account setup script
    action: template src=$files/openshift/mongo-acct.sh dest=/root/mongo-acct.sh mode=0700 
    tags:
    - mongo
  
  - name: mongo/openshift account setup
    action: command creates=/etc/mongo-acct-setup /root/mongo-acct.sh
    tags:
    - mongo
  
  - name: clear file mongo acct file
    action: file state=absent path=/root/mongo-acct.sh
    tags:
    - mongo
  
  - name: poke holes in the firewall
    action: command lokkit $item
    with_items:
    - --service=ssh
    - --service=https
    - --service=http
    - --service=dns
    - --port=5672:tcp
  
  - name: put our external ip into /etc/hosts as 'openshift-el6'
    action: lineinfile dest=/etc/hosts state=present line='${inventory_hostname} openshift-el6' regexp='${inventory_hostname}.*'
  
  - name: enable services until I turn peach
    action: service state=restarted enabled=yes name=$item
    with_items:
    - httpd
    - named
    - qpidd
    - stickshift-broker
  
  - name: disable mcollective
    action: service state=stopped enabled=no name=mcollective
  
  - name: mcollective client setup
    action: template src=$files/openshift/mcollective-client.cfg dest=/etc/mcollective/client.cfg
  
  - name: qpidd.conf
    action: copy src=$files/openshift/qpidd.conf dest=/etc/qpidd.conf
  
  - name: stickshift broker gemfile
    action: copy src=$files/openshift/Gemfile dest=/var/www/stickshift/broker/Gemfile owner=apache group=apache mode=0640
  
  
  
  handlers:
  - include: $handlers/restart_services.yml
