propellor/doc/centralized_git_repository....

38 lines
1.7 KiB
Plaintext
Raw Normal View History

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:
2015-02-12 16:40:52 +00:00
`Cron.runPropellor (Cron.Times "*/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`