- Notifications
You must be signed in to change notification settings - Fork0
fabiobcoder/fabric-scripts
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Fabric is a command-line tool for application deploymentand systems administration tasks. It allows the user to run commands across aserver farm.
The tool is intended to be configured and run on your local workstation/laptop. You should usevirtualenv to create an isolated Python environment.
To installpip,virtualenv and set up the environment:
$ sudo easy_install pip$ sudo pip install virtualenv$ mkdir ~/venv$ virtualenv ~/venv/fabric-scriptsTo enable the virtual environment for this session (you will need to do this for each new terminal window):
$ . ~/venv/fabric-scripts/bin/activateTo install the dependencies:
$ pip install -Ur requirements.txtNB: if you get a "pip: command not found" error, run this first:
$ sudo easy_install pipConfigure it (seethe fabric documentation for more examples),
$ echo 'user = jimbob' >> ~/.fabricrcYou can view a list of the available tasks:
$ fab -lAnd execute against an environment and set of hosts like so:
$ fab integration all hosts...$ fab integration class:frontend do:'uname -a'$ fab integration class:cache,bouncer do:uptime...Fabric tasks can be run on groups of machines in a variety of different ways.
By puppet class:
# target all machines that have the 'govuk::safe_to_reboot::yes' class$ fab integration puppet_class:govuk::safe_to_reboot::yes do:'uname -a'By numeric machine suffix:
# target all machines that end in '2'$ fab integration numbered:2 do:'uname -a'By node type (as defined in puppet):
# target all 'frontend' machines$ fab integration node_type:frontend do:'uname -a'By the node name:
# target just one node$ fab production -H backend-3.backend do:'uname -a'It was previously possible to use these scripts from the jumpboxes via thegovuk_fab wrapper. This is no longer supported as it relied on SSH agentforwarding, which is a Bad Thing because other people with root access tothat jumpbox would be able to re-use any of the private keys in your agent.
You should convert to the [local usage](#Local usage) method described aboveand ensure that you do not have the following option anywhere in your~/.ssh/config:
ForwardAgent yesAn example:
fab <env> -H '<src_db>' postgresql.sync:<db_name>,<dst_db> -A
the -A must be specified to forward the agent
This will sync the specified database<db_name> from the machine with thehostname of<src_db> to the machine with hostaname<dst_db>. It will destroy data on the destination db.
About
GOV.UK Fabric scripts
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Languages
- Python98.3%
- Shell1.5%
- Makefile0.2%