Fedora Websites Release SOP

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
(Fedora 12 Notes)
(Update with F13 instructions.)
Line 31: Line 31:
 
=== Fire in the hole ===
 
=== Fire in the hole ===
  
On release day, wait for rel-eng to say go, then push the puppet changes
+
After 9:15 AM EDT release day, push the puppet changes (e.g.: <code>cd ~/puppet
(e.g.: <code>cd ~/puppet && git push</code>).  Then, on <code>puppet1</code>
+
&& git push</code>).  This timing ensures that the cron jobs will not
run:
+
automatically push the new website before 10:00 AM.  Then, on
 +
<code>puppet1</code> run:
  
 
<pre>
 
<pre>
 
# Ensure you have the puppet repo checked out to ~/puppet and up to date
 
# Ensure you have the puppet repo checked out to ~/puppet and up to date
cd ~/puppet && make HOSTS="bapp1 proxy1 proxy2 proxy3 proxy4 proxy5" push
+
cd ~/puppet && make HOSTS="bapp1 proxy1 proxy2 proxy3 proxy4 proxy5 proxy6 proxy7" push
 
</pre>
 
</pre>
  
Line 43: Line 44:
 
<pre>
 
<pre>
 
# Once /usr/local/bin/syncStatic on bapp1 is updated with your changes, run
 
# Once /usr/local/bin/syncStatic on bapp1 is updated with your changes, run
sudo /usr/local/bin/syncStatic
+
sudo -u apache /usr/local/bin/syncStatic
 
</pre>
 
</pre>
  
Finally, on the proxies:
+
This takes about 15 minutes, so try to do this well before you need to push the
 +
final site out.
 +
 
 +
Finally, when releng gives the OK, run the following on the proxies to make the
 +
site live:
  
 
<pre>
 
<pre>
 
# To sync the changes out, you can use func from puppet1 if you have sudo on puppet1.
 
# To sync the changes out, you can use func from puppet1 if you have sudo on puppet1.
 
# Otherwise, SSH to the proxies and call the below command.
 
# Otherwise, SSH to the proxies and call the below command.
sudo /usr/bin/rsync -a --no-owner --no-group bapp1.vpn.fedoraproject.org::fedoraproject.org/* /srv/web/fedoraproject.org/
+
sudo /usr/bin/rsync -a --no-owner --no-group bapp01::fedoraproject.org/* /srv/web/fedoraproject.org/
 
</pre>
 
</pre>
 
to push the updated website live.
 
  
 
== Fedora 12 Notes ==
 
== Fedora 12 Notes ==

Revision as of 16:39, 25 May 2010

Artwork DesignService fedorawebsitesbanner 3.png


Contents

Preparing the website for a release

Update gpg key

As the release approaches, watch the fedora-release package for a new key to be added. Use the update-gpg-keys script in the fedora-web git repository to add it to static/. Manually add it to /keys and /verify.

Branch master for stable release in fedora-web git repository

Note.png
Perhaps this should be done right after release?
git branch f12 master && git push origin f12

Unfreeze website

Comment out the git checkout line in modules/fedora-web/files/syncStatic.sh on puppet1.

Prepare puppet commits

Prior to release day, prepare puppet commits to move the fedora-web branch to the release (alpha, beta, final, whatever) and, edit redirects.conf (in modules/fedora-web/files on puppet1) to do the right thing with /get-prerelease requests.

Fire in the hole

After 9:15 AM EDT release day, push the puppet changes (e.g.: cd ~/puppet && git push). This timing ensures that the cron jobs will not automatically push the new website before 10:00 AM. Then, on puppet1 run:

# Ensure you have the puppet repo checked out to ~/puppet and up to date
cd ~/puppet && make HOSTS="bapp1 proxy1 proxy2 proxy3 proxy4 proxy5 proxy6 proxy7" push

On bapp1, run:

# Once /usr/local/bin/syncStatic on bapp1 is updated with your changes, run
sudo -u apache /usr/local/bin/syncStatic

This takes about 15 minutes, so try to do this well before you need to push the final site out.

Finally, when releng gives the OK, run the following on the proxies to make the site live:

# To sync the changes out, you can use func from puppet1 if you have sudo on puppet1.
# Otherwise, SSH to the proxies and call the below command.
sudo /usr/bin/rsync -a --no-owner --no-group bapp01::fedoraproject.org/* /srv/web/fedoraproject.org/

Fedora 12 Notes

(Still needs to be wikified)



The times below are based on the timing of the website build and sync cronjobs.
It'd be a good idea to double check those in advance.

Unfreeze website (modules/fedora-web/files/syncStatic.sh), push after 9:05 AM EDT.

Run sudo /usr/local/bin/syncStatic on bapp1 after 9:45 AM EDT, make sure this
succeeds by checking /srv/web/fedoraproject.org.

Release:

Push commit to redirect get-prerelease to get-fedora.  If you have sudo on puppet1, run:

$ sudo func proxy\* call command run "/usr/bin/rsync -a --no-owner --no-group bapp1.vpn.fedoraproject.org::fedoraproject.org/* /srv/web/fedoraproject.org/"

Otherwise, manually run this on each proxy server:

$ sudo /usr/bin/rsync -a --no-owner --no-group bapp1.vpn.fedoraproject.org::fedoraproject.org/* /srv/web/fedoraproject.org/

If necessary, clear proxy caches using

$ rm -rf /srv/cache/mod_cache/*

After the site is out, do link checking and push any last-minute fixes/changes
by committing to the git repo, running syncStatic, and syncing to the proxies
as above.

Update the static banner on start.fedoraproject.org.  The procedure is the
same as with fedoraproject.org, except that the command to run on the
proxies is

$ sudo /usr/bin/rsync -a --no-owner --no-group bapp1.vpn.fedoraproject.org::start.fedoraproject.org/* /srv/web/start.fedoraproject.org/

Unfinished notes

* add release banner countdown
* add new release checksum files
* add gpg keys

Watch the webmaster@ moderator queue for reports of website issues.

update start.fp.o banner image