--- ###################################################################### # Tasks to run on all hosts at once before we begin a release. - name: Preflight hosts: javawebqa user: root vars_files: - site-vars/nagios-services/javaweb.yaml - site-vars/qa.yaml tasks: # Downtime for all apps and services being shut down. - include: tasks/nagios.yaml tags=services,balancerpools minutes=60 tags: [roll,update] # Stop automatic updates from happening during the release. - include: tasks/puppet.yaml tags=disable tags: update ###################################################################### # This is the window in which we push all puppet updates into git and # double check all new RPMs are present in their respective # repositories. - name: Ready prompt hosts: localhost vars_prompt: continue: "Press enter to begin the rolling update:" # Or in the future: # tasks: # - name: Continue prompt # pause: prompt="Press enter to begin the rolling update:" ###################################################################### # Begin the rolling update process - name: Rolling Update hosts: javawebqa user: root serial: 1 vars_files: - site-vars/qa.yaml - site-vars/nagios-services/javaweb.yaml tasks: # Disable node in balancer pairs - include: tasks/bigip.yaml tags=disable tags: [roll,update] - include: tasks/modjk.yaml tags=proxyjavaweb_disable tags: [roll,update] # Shut it down. This isn't always pretty. - include: tasks/jboss.yaml tags=stop tags: [roll,update] # Updating. This step is skipped if we are just performing a # rolling restart of the cluster. - include: tasks/puppet.yaml tags=run tags: update # Start it up - include: tasks/jboss.yaml tags=start tags: [roll,update] # Validation. This task doesn't officially exist yet but it's # necessary to our release process due to the poor behavior of # the cluster. - pause: prompt=Verify jboss has started without any critical errors tags: [roll,update] # Enable node in balancer pairs - include: tasks/modjk.yaml tags=proxyjavaweb_enable tags: [roll,update] - include: tasks/bigip.yaml tags=enable tags: [roll,update] ###################################################################### # End everything by performing a manual configuration sync between the # bigip pairs in the production environment to resolve any perceived # state differences. - name: Config sync hosts: localhost tasks: - include: tasks/bigip.yaml tags=sync env=qa tags: [roll,update]