From 74e067fa7640847cb0395ab4bf17c1d01c3b9349 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 18 Nov 2014 17:26:02 -0400 Subject: propellor spin --- doc/README.mdwn | 45 +++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-) (limited to 'doc') diff --git a/doc/README.mdwn b/doc/README.mdwn index a0742f78..47fa8e40 100644 --- a/doc/README.mdwn +++ b/doc/README.mdwn @@ -35,7 +35,7 @@ see [configuration for the Haskell newbie](https://propellor.branchable.com/hask ## quick start -1. Get propellor installed +1. Get propellor installed on your laptop. `cabal install propellor` or `apt-get install propellor` @@ -44,25 +44,46 @@ see [configuration for the Haskell newbie](https://propellor.branchable.com/hask 3. If you don't have a gpg private key already, generate one: `gpg --gen-key` 4. Run: `propellor --add-key $KEYID`, which will make propellor trust your gpg key, and will sign your `~/.propellor` repository using it. -5. Push the git repository to a central server (github or your own): - `cd ~/.propellor/; git remote add origin ssh://git.example.com/propellor.git; git push -u origin master` -6. Edit `~/.propellor/config.hs`, and add a host you want to manage. +5. Edit `~/.propellor/config.hs`, and add a host you want to manage. You can start by not adding any properties, or only a few. -7. Pick a host and run: `propellor --spin $HOST` -8. Now you have a simple propellor deployment, but it doesn't do +6. Pick a host and run: `propellor --spin $HOST` +7. Now you have a simple propellor deployment, but it doesn't do much to the host yet, besides installing propellor. So, edit `~/.propellor/config.hs` to configure the host (maybe - start with a few simple properties), and re-run step 7. + start with a few simple properties), and re-run step 6. Repeat until happy and move on to the next host. :) -9. To move beyond manually running `propellor --spin` against hosts - when you change their properties, add a property to your hosts - like: `Cron.runPropellor "30 * * * *"` - +8. Write some neat new properties and send patches! + +## adding a central git repository + +The above quick start uses propellor without any central git repository. +Instead, the git repo on a host gets updated from the repo on your laptop +whenever you run `propellor --spin $HOST`. + +A central git repository allows hosts to run propellor from cron and pick +up any updates you may have pushed. This is useful when managing several +hosts with propellor. + +You can add a central git repository to your existing propellor setup easily: + +1. Push propellor's git repository to a central server (github or your own): + `cd ~/.propellor/; git remote add origin ssh://git.example.com/propellor.git; git push -u origin master` + +2. Configure the url your hosts should use for the git repisitory, if + it differs from the url above, by setting up a remote named "deploy": + `cd ~/.propellor/; git remote add deploy git://git.example.com/propellor.git` + +2. Add a property to your hosts like: + `Cron.runPropellor "30 * * * *"` + +3. Let your hosts know about the changed configuration (including the url + to the central repository), by running `proellor --spin $HOST` for each + of your hosts. + Now they'll automatically update every 30 minutes, and you can `git commit -S` and `git push` changes that affect any number of hosts. -10. Write some neat new properties and send patches! ## debugging -- cgit v1.2.3