2014-11-18 21:33:08 +00:00
|
|
|
Propellor can be used without any centralized git repsitory. When
|
|
|
|
`propellor --spin $HOST` is run, propellor pushes the local git repo
|
|
|
|
directly to the host. This makes it easy to get started with propellor.
|
|
|
|
|
|
|
|
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
|
2014-11-18 22:56:15 +00:00
|
|
|
hosts with propellor.
|
|
|
|
|
|
|
|
The central repository does not need to be trusted; it can be hosted
|
|
|
|
anywhere, and propellor will only accept verified gpg signed git commits
|
|
|
|
from it. See [[security]] for details, but this means you can put it
|
|
|
|
on github without github being able to 0wn your propellor driven hosts, for
|
|
|
|
example.
|
2014-11-18 21:33:08 +00:00
|
|
|
|
|
|
|
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:
|
2014-12-07 19:34:29 +00:00
|
|
|
`Cron.runPropellor "*/30 * * * *"`
|
2014-11-18 21:33:08 +00:00
|
|
|
|
|
|
|
3. Let your hosts know about the changed configuration (including the url
|
2014-11-18 21:41:20 +00:00
|
|
|
to the central repository), by running `propellor --spin $HOST` for each
|
2014-11-18 21:33:08 +00:00
|
|
|
of your hosts.
|
|
|
|
|
|
|
|
Now the hosts will automatically update every 30 minutes, and you can
|
|
|
|
`git commit -S` and `git push` changes that affect any number of
|
|
|
|
hosts.
|
|
|
|
|
|
|
|
Note that private data, set with `propellor --set`, is gpg encrypted, and
|
|
|
|
hosts cannot decrypt it! So after updating the private data of a host,
|
|
|
|
you still need to manually run `propellor --spin $HOST`
|