Mitchell Hashimoto
5c5d62733f
fmt
2014-05-01 14:24:19 -07:00
Mitchell Hashimoto
9beac8d286
provisioner/chef-client: proper ordering of args [GH-1100]
2014-05-01 14:13:22 -07:00
Ben Langfeld
b801713e83
Node DNA needs to handle multiple types
...
Makes chef-client provisioner consistent with chef-solo in its handling of nested JSON as well as strings.
Fixes #1096
2014-05-01 12:48:45 -03:00
Mitchell Hashimoto
bb8d0a5e7a
provisioner/chef-solo: convert []uint8 to string
2014-04-29 00:33:55 -07:00
Mitchell Hashimoto
379f3ae933
provisioner/chef-solo: be more lenient on json fix
2014-04-28 22:20:57 -07:00
Mitchell Hashimoto
4379997c2c
provisioner/chef-solo: better error for bad type in JSON
2014-04-28 22:18:21 -07:00
Mitchell Hashimoto
8fc46aaa82
provisioner/chef-solo: deeploy nested JSON works properly
2014-04-28 21:56:32 -07:00
James Cline
6017f895f1
provisioners/chef-client: delete correct client
...
The server URL was being passed through rather than the client name.
2014-04-28 15:29:15 -07:00
Mitchell Hashimoto
9365b879c0
provisioner/shell: chmod uploaded file to 0777 [GH-994]
2014-04-26 20:20:47 -07:00
Mitchell Hashimoto
ec41edf558
provisioner/shell: Split on first equal for env vars [GH-1045]
2014-04-26 14:51:56 -07:00
Mitchell Hashimoto
5fac6c79c4
fmt
2014-04-26 11:12:43 -07:00
James Cline
eb4ba76e1a
provisioner/chef-client: validation_client_name
...
Allows setting of validation_client_name from packer template json.
2014-04-24 00:09:30 -07:00
Ross Smith II
ec847acf80
Merge pull request #963 from rhburrows/ansible-local-paths-on-windows
...
Fix ansible paths when provisioning Linux from Windows
2014-04-21 08:21:08 -07:00
Ross Smith II
4f186fbd6e
Merge pull request #1006 from jgornick/add-ansible-inventory-file (manually)
2014-04-21 07:57:24 -07:00
Joe Gornick
d9fc06a170
Update Ansible provisioner to set cwd to staging directory.
2014-04-08 09:50:26 -05:00
Joe Gornick
6d56def162
Add inventory_file option to Ansible provisioner.
2014-04-04 14:58:48 -05:00
Ryan Burrows
6420fbb469
Fix ansible paths when provisioning Linux from Windows
...
Since the paths are generated on the host machine but the commands are
executed on the VM being provisioned the paths generated will use path
separators from the host. In the case of provisioning a Linux VM from
Windows this path will not work.
Convert the path to use a '/' separator which should work for both
platforms in Go
2014-03-18 11:12:13 -07:00
Mitchell Hashimoto
3de16f20b9
privisioner/chef-client: don't chown with ubuntu [GH-939]
2014-03-12 21:05:25 -07:00
Mitchell Hashimoto
ab97545a52
provisioner/puppet-server: docs
2014-02-24 09:51:48 -08:00
Mitchell Hashimoto
2af91addf9
Merge pull request #796 from Jimdo/puppet-server
...
Add puppet server provisioner
2014-02-24 09:49:27 -08:00
Mitchell Hashimoto
000e5b67ff
provisioner/chef-client: docs and validation key path
2014-02-24 09:45:04 -08:00
Mitchell Hashimoto
d7e6409b9a
provisioner/chef-client: clean up
2014-02-24 08:53:56 -08:00
Mitchell Hashimoto
d0a08e83cf
Merge pull request #855 from Elachance/chef-client-provisioner
...
adding chef-client provisioner
2014-02-24 08:33:11 -08:00
Mitchell Hashimoto
4576093c17
fmt
2014-02-24 08:26:51 -08:00
Mitchell Hashimoto
8c1de9e712
provisioner/ansible-local: better error if missing [GH-836]
2014-02-21 20:30:04 -08:00
Mitchell Hashimoto
a51fbea499
provisioner/ansible-local: style
2014-02-21 15:27:39 -08:00
Jan Brauer
ee50657097
Merge remote-tracking branch 'upstream/master' into puppet-server
2014-02-18 09:41:10 +01:00
Bernard McKeever
458d90c71d
provisioner/ansible: support {group,host}_vars
...
ansible looks for group and host vars directories as well as playbooks
this revision to the provisioner uploads those as well.
squashed to a single commit by strcrzy.
2014-02-02 09:34:41 -08:00
Bailey Johnson
73bbfab8f1
adding chef-client provisioner
2014-01-25 01:06:55 +00:00
jamie brim
ec1adec029
provisioner/ansible: configurable command / args
...
allow users to provide a replacement command / extra args to the
ansible-local provisioner.
this is useful, for example, to unbuffer output when using the
docker builder, or to modify ansible behavior, like enabling
verbose mode, injecting variables, or changing paths.
2014-01-22 14:34:34 -08:00
jamie brim
75f64ef6af
provisioner/ansible: upload playbooks correctly
...
`Provision` calls uploadFile on each path in playbook_paths, but
playbook_paths can only contain directories, per bf7530ca28
.
This changes `Provision` to call uploadDir instead.
2014-01-17 16:54:20 -08:00
Jan Brauer
9d01684c1c
Use sudo by default, as in puppet-masterless
2014-01-09 08:51:48 +01:00
Jan Brauer
58b06526f5
Update docs for puppet-server provisioner
2014-01-08 13:03:03 +01:00
Jan Brauer
646f4a6dd3
Implement puppet-server provisioner
...
This closely modeled after the same provisioner
in Vagrant.
2014-01-08 12:50:24 +01:00
Mitchell Hashimoto
525802e9e6
provisioner/ansible-local: templates for role, playbook paths [GH-749]
2013-12-27 08:29:31 -07:00
Mitchell Hashimoto
4d3c9e7104
Merge pull request #726 from rocketnova/master
...
provisioner/chef-solo: Chef environment doesn't work for chef-solo
2013-12-18 08:40:13 -08:00
Sudharshan S
e8d1cc8e31
Fix Puppet Provisioner crash when HieraConfigPath or ManifestDir is specified
...
Prevents the following error,
Build 'amazon-instance' errored: template: tpl11:1:103: executing "tpl11" at <.HieraConfigPath>: HieraConfigPath has arguments but cannot be invoked as function
2013-12-18 19:33:43 +05:30
Rocket
bb8e9ad71c
Change chef environment to work for chef-solo.
2013-12-17 17:15:37 -08:00
Jake Good
b76a116823
Fix Ansible-local provisioner configuration check for 'playbook_paths' as it was checking for files, not paths
2013-12-12 14:13:23 -06:00
Mitchell Hashimoto
962cedd04c
fmt
2013-12-11 13:43:59 -08:00
Mitchell Hashimoto
10546f6aee
provisioner/puppet-masterless: fix compile
2013-12-11 13:22:00 -08:00
Mitchell Hashimoto
895d87d9eb
provisioner/puppet-masterless: use Go 1.2 template comparators
2013-12-11 12:39:02 -08:00
Mitchell Hashimoto
3a2c04e4e5
provisioner/puppet-masterless: validate manifest_dir is a dir
2013-12-11 11:21:51 -08:00
Mitchell Hashimoto
2986452804
provisioner/puppet-masterless: simplify manifest dir upload
2013-12-11 11:20:22 -08:00
Jan Brauer
afd0aea8df
Merge branch 'master' into configure-manifest-dir
2013-12-10 09:08:11 +01:00
Mitchell Hashimoto
956f49f439
provisioner/puppet-masterless: check for hiera config path [GH-656]
2013-12-06 19:30:06 -08:00
Jan Brauer
1a191044e7
Return targetPath
2013-11-25 22:32:14 +01:00
Jan Brauer
8beaae0d0e
#450 - allow configuration of manifest dir
2013-11-25 08:52:41 +01:00
Mitchell Hashimoto
7472507962
provisioner/chef-solo: test for encrypted data bag secret path config
...
/cc @matheeeny - Tests :)
2013-11-18 15:48:13 -08:00
Mitchell Hashimoto
d56eec8852
provisioner/chef-solo: naming nitpick
...
/cc @matheeeny - I prefer to be more explicit and say this is the path,
rather than the secret value itself.
2013-11-18 15:46:37 -08:00
Andrew Matheny
6dfcf2b347
Add support for passing encrypted data bag secret to chef-solo
...
Adds additional option to chef-solo provisioner for an encrypted data bag
secret file. Local file is copied up and referenced in solo.rb
2013-11-13 13:39:29 -05:00
Mitchell Hashimoto
457b99db3f
provisioner/chef-solo: Say using Chef-solo
2013-11-09 18:47:20 -08:00
Mitchell Hashimoto
d94cff93da
Merge pull request #475 from kelseyhightower/ansible-provisioner
...
provisioner/ansible-local: Add support for provisioning with Ansible
2013-10-20 17:46:36 -07:00
Mitchell Hashimoto
d1c497676a
Merge pull request #514 from rgarcia/salt-masterless-uploaddir
...
provisioner/salt-masterless: use communicator.UploadDir
2013-10-20 17:42:38 -07:00
Mitchell Hashimoto
75bdba7f97
Merge pull request #513 from rgarcia/salt-masterless-mv-bug
...
provisioner/salt-masterless: move states to /srv/salt, not /srv/salt/states
2013-10-20 17:40:27 -07:00
Mitchell Hashimoto
528ae09c37
provisioner/shell: comment on why we return right away if advance == 0
...
/cc @mwhooker
2013-10-15 09:48:12 -10:00
Mitchell Hashimoto
f673ca52ba
provisoiner/shell: append only needs to add a byte for UnixReader
2013-10-15 09:40:47 -10:00
Matthew Hooker
104f5049a7
provisioner/shell: fix EOF detection
...
Fixes #507
The scanUnixLine function was erroneously returning empty lines when EOF
was reached.
This commit adds a test for the problem and changes the scanUnixLine
function to elide the trailing \n if no content was read.
2013-10-15 05:56:10 -07:00
Rafael Garcia
32b9a305a1
provisioner/salt-masterless: use communicator.UploadDir
2013-10-09 18:51:30 -07:00
Rafael Garcia
76393ba285
provisioner/salt-masterless: move states to /srv/salt, not /srv/salt/states
...
Latest version copies local state tree to {tmp}/states and then executes `mv {tmp}/states /srv/salt/`. This creates a `/srv/salt/states` instead of the correct `/srv/salt` directory.
2013-10-09 13:49:30 -07:00
Mitchell Hashimoto
ff970483c4
provisioner/shell: add more tests for UnixReader
2013-10-04 10:47:28 -07:00
Mitchell Hashimoto
5dfe27b40f
provisioner/chef-solo: unused var
2013-10-02 08:29:12 -07:00
Mitchell Hashimoto
543a1a21e8
provisioner/chef-solo: alphabetize tests and such
...
/cc @netshade
2013-10-02 08:28:51 -07:00
Chris
fd6415ddf5
formatting
2013-10-01 11:21:16 -04:00
Chris
bc8e5d2c41
add environments_path and chef_environment support to chef provisioner
2013-10-01 11:20:36 -04:00
Matthew Hooker
0d1b936f69
Fix UnixReader panic on empty lines.
...
Added a test for the failure.
Most of the scanner code looks like it's a modified version of
bufio.ScanLines, so I changed it to use that but always add a line feed.
2013-10-01 09:06:01 +00:00
Jason A. Beranek
b3d76b7945
provisioner/shell: fix provisioner to use UnixReader [GH-477]
...
Packer was using the original file reader when uploading, instead of the UnixReader /cc @mitchellh
2013-09-30 23:54:54 -05:00
Mitchell Hashimoto
89d165aae7
provisioner/shell: add another UnixReader test for sanity
2013-09-30 11:39:24 -07:00
Kelsey Hightower
e7b7d71f16
Add tests for ansible provisioner default settings
2013-09-29 15:44:21 -07:00
Kelsey Hightower
4d241b96c1
Define the default staging dir using a const var
2013-09-29 15:42:42 -07:00
Kelsey Hightower
365f356a0b
Add tests for ansible-local provisioner
2013-09-29 14:54:49 -07:00
Kelsey Hightower
ea3677387e
Add ansible-local provisioner
2013-09-29 13:38:37 -07:00
Kirill Kazakov
be80edb28e
provisioner/chef-solo: fix .RolesPath and .DataBagsPath in the config template
2013-09-27 19:13:55 +04:00
Mitchell Hashimoto
25924a2d2b
provisioner/puppet-masterless: user variables in puppet vars [GH-448]
2013-09-21 18:28:14 -07:00
Mitchell Hashimoto
abbac36796
provisioner/shell: convert windows line endings to Unix [GH-277]
2013-09-20 10:22:43 -07:00
Mitchell Hashimoto
677f2989b9
provisioner/chef-solo: template doesn't support comp [GH-442]
2013-09-19 11:54:24 -07:00
Mitchell Hashimoto
1b1b535ee5
provisioner/chef-solo: one test per test
...
/cc @jerryclinesmith
2013-09-18 14:19:50 -07:00
Mitchell Hashimoto
ba9d85c744
provisioner/chef-solo: template process roles/data bags path
...
/cc @jerryclinesmith
2013-09-18 14:17:54 -07:00
Mitchell Hashimoto
7034f69f2c
provisioner/chef-solo: move quoting to template
...
/cc @jerryclinesmith - I want the quoting to go into the template. I
realize the cookbooks path doesn't do this and you were following that.
That one is just weird because it is an array and Go templates kind of
suck.
2013-09-18 14:17:07 -07:00
Mitchell Hashimoto
b2d5b15155
fmt
2013-09-18 14:14:18 -07:00
Mitchell Hashimoto
129f1290c1
Merge pull request #411 from jerryclinesmith/issue_348
...
provisioners/chef-solo: add support for roles and data_bags
2013-09-18 14:13:41 -07:00
Mitchell Hashimoto
dc0232975d
provisioner/chef-solo: ability to specify custom chef template
2013-09-15 23:29:29 -07:00
Jack Pearkes
8f5a185818
provisioner/puppet-masterless: remove duplicate manifest upload message
2013-09-13 14:54:28 +02:00
Justin Clayton
cd2280f3bf
facter vars no longer smush up against puppet command when prevent_sudo is true
2013-09-12 16:52:25 -07:00
Jerry Clinesmith
fa2f277c67
#348 : chef-solo provisioner: add support for data_bags and roles
2013-09-10 22:00:29 -05:00
Mitchell Hashimoto
8e44971b3d
provisioner/puppet-masterless: proper exit code check
2013-09-09 15:04:13 -07:00
Mitchell Hashimoto
a14a3fe3f1
provisioner/puppet-masterless: detailed exit codes
2013-09-09 15:04:13 -07:00
Mitchell Hashimoto
c83fbc0b42
provisioner/puppet-masterless: better messaging
2013-09-09 14:03:40 -07:00
Mitchell Hashimoto
adbb490189
provisioner/file: support uploading directories [GH-251]
2013-09-09 14:00:06 -07:00
Mitchell Hashimoto
fd0df9ff58
provisioners/puppet-masterless: support hiera configs
2013-09-09 13:24:17 -07:00
Mitchell Hashimoto
41b70aae99
provisioner/puppet-masterless: support custom facts
2013-09-08 23:00:11 -07:00
Mitchell Hashimoto
b92aed5577
provisioner/puppet-masterless: more sane messaging
2013-09-07 23:43:06 -07:00
Mitchell Hashimoto
023678fe7b
provisioner/puppet-masterless: more validation and tests
2013-09-07 23:31:28 -07:00
Mitchell Hashimoto
d854b08642
provisioner/puppet-masterless: rework internals, use SCP
2013-09-07 23:08:56 -07:00
Mitchell Hashimoto
5079fd4f0b
Rename puppet provisioner to puppet-masterless
2013-09-07 22:27:25 -07:00
James Turnbull
d37f287f8c
Added basic Puppet provisioner
2013-09-03 08:39:49 -04:00
Mitchell Hashimoto
28bf6122bd
provisioner/*: implement Cancel
2013-08-30 23:23:36 -07:00
Mitchell Hashimoto
55b0b586d3
provisioner/chef-solo: code re-org
2013-08-30 16:35:57 -07:00
Mitchell Hashimoto
662e74d070
provisioner/chef-solo: properly escape user vars for JSON
...
/cc @mwhooker - I moved the processing up into Prepare so that any
errors will be shown during a validate pass. Also, I escape some stuff
in keys. Tests moved as well.
2013-08-30 16:05:04 -07:00
Mitchell Hashimoto
6914baa473
Merge pull request #364 from mwhooker/362
...
provisioner/chef-solo: template expansion of `json`
2013-08-30 15:26:39 -07:00
Mitchell Hashimoto
404ae53a4a
provisioner/salt-masterless: join paths properly
2013-08-30 14:26:29 -07:00
Matthew Hooker
9537f085ae
clean up and retab.
2013-08-28 17:35:43 -07:00
Matthew Hooker
4b76b2d9e3
template expansion of `json` in chef-solo
...
Fixes #362
2013-08-28 17:27:22 -07:00
Mitchell Hashimoto
b4b68bce00
Merge branch 'fix-minion-config-with-non-tmp-dir' of https://github.com/rach/packer into rach-fix-minion-config-with-non-tmp-dir
...
Conflicts:
provisioner/salt-masterless/provisioner.go
2013-08-27 20:21:02 -07:00
Mitchell Hashimoto
64fe98c465
provisioner/chef-solo: template process the configuration
2013-08-27 17:41:49 -07:00
Mitchell Hashimoto
c9ef66651b
fmt
2013-08-27 17:37:29 -07:00
Mitchell Hashimoto
a8694fdda8
Merge pull request #353 from rach/add-setting-for-pillar-folder
...
provisioner/salt-masterless: Add setting for pillar folder
2013-08-27 17:36:28 -07:00
Rachid Belaid
a755be49fa
Add doc and change pillar tree in roots to respect salt vocabulary
2013-08-28 01:01:37 +01:00
Rachid Belaid
7bdb5f9cfb
Add setting for pillar folder to respect saltstack structure
2013-08-28 00:38:36 +01:00
Rachid Belaid
40af1e681a
Fix minion config with non tmp dir
2013-08-27 23:49:04 +01:00
Mitchell Hashimoto
3b097f9805
provisioner/chef-solo: use proper exceute command
2013-08-27 14:35:11 -07:00
Mitchell Hashimoto
87dde46413
provisioner/chef-solo: remove unused constants and variables
2013-08-27 13:32:59 -07:00
Mitchell Hashimoto
e72c06a740
provisioner/chef-solo: upload cookbooks
2013-08-27 13:27:20 -07:00
Mitchell Hashimoto
607372f75a
provisioner/chef-solo: massive refactor and style nitpick
2013-08-27 13:27:20 -07:00
Mitchell Hashimoto
4a5a8c6006
provisioner/chef-solo: installChef fixed up to use tpl and StartWithUi
2013-08-27 13:27:20 -07:00
Mitchell Hashimoto
585cee9b4c
Merge branch 'provisioner-chef-solo' of https://github.com/jvandyke/packer into jvandyke-provisioner-chef-solo
...
Conflicts:
config.go
2013-08-25 20:49:53 -07:00
Mitchell Hashimoto
095631107a
communicator/ssh: UploadDir works properly
2013-08-25 20:30:56 -07:00
Mitchell Hashimoto
80e36f11b9
provisioner/salt-masterless: fix the build
2013-08-23 15:58:30 -07:00
Rachid Belaid
3cb3a7cd30
Fix #264 to upload local minion config
...
Conflicts:
provisioner/salt-masterless/provisioner.go
website/source/docs/provisioners/salt.html.markdown
2013-08-23 15:41:11 -07:00
Mitchell Hashimoto
a46c7afcf7
provisioner/shell: retry the upload if command fails as well
...
This improves reboot handling robustness
2013-08-23 11:21:20 -07:00
Mitchell Hashimoto
717746ce4f
provisioner/shell: retry uploads if reboot [GH-282]
2013-08-19 23:02:06 -07:00
Mitchell Hashimoto
64d87bfaf3
*: switch to packer ConfigTemplate
2013-08-15 19:17:23 -07:00
Mitchell Hashimoto
3ea4c720b1
provisioner/salt-masterless: switch replace to that prior replace works
...
/cc @markpeek
2013-08-12 17:10:50 -07:00
Mitchell Hashimoto
d60b769217
provisioner/salt-masterless: replace windows slash with linux [GH-276]
2013-08-12 16:26:46 -07:00
Mitchell Hashimoto
21f92715c0
provisioner/shell: start_retry_timeout for reboot handling [GH-260]
2013-08-12 15:49:55 -07:00
Mitchell Hashimoto
769c349def
provisioner/salt-masterless: nice error even if bad exit status
...
/cc @rgarcia
2013-08-12 09:19:11 -07:00
Mitchell Hashimoto
fb6d2754da
packer: Add Machine func to Ui
2013-08-11 18:16:00 -07:00
Mitchell Hashimoto
ffa7dff585
fmt
2013-08-11 16:17:59 -07:00
Rach Belaid
23b856332e
#269 Make local_state_tree option not mandatory
...
Update and rename salt.html.markdown to salt-masterless.html.markdown
salt.html.markdown had a better history and formatting
And remove local_state_tree from required option from code and docs
2013-08-10 16:18:57 +01:00
Mitchell Hashimoto
adfb6caa2b
provisioner/salt-masterless: error if any commands exit with non-zero
...
[GH-266]
/cc @rgarcia
2013-08-09 17:35:57 -07:00
Mitchell Hashimoto
72a7a5e69c
provisioner/salt-masterless: don't delete states [GH-265]
2013-08-09 17:01:39 -07:00
Mitchell Hashimoto
55ad0058bc
provisioner/salt-masterless: convert to new template stuff + user vars
2013-08-09 15:57:08 -07:00
Mitchell Hashimoto
332bdf6edc
builder/*, provisioner/*: set user vars
2013-08-09 15:57:08 -07:00
Mitchell Hashimoto
3f1af409e2
provisioner/shell: tests passing and compiling
2013-08-08 17:25:26 -07:00
Mitchell Hashimoto
f4b0e2248f
provisioner/shell: convert to latest template stuff
2013-08-08 17:25:26 -07:00
Mitchell Hashimoto
bf67c6c36e
provisioner/file: use the template processing stuff
2013-08-08 17:25:26 -07:00
Rafael Garcia
ec556044cd
provisioner/file: state of the art config decoding
2013-08-06 15:30:49 -07:00
Rafael Garcia
25af1c8bd4
provisioner/shell: state of the art config decoding
2013-08-06 15:30:36 -07:00
Mitchell Hashimoto
5b7d8fbc74
rename builder/common to common since it is generally useful
2013-08-01 12:11:54 -07:00
Mitchell Hashimoto
25183e7702
provisioner/salt-masterless: remove Ui
...
/cc @rgarcia Should just pass it in as a param
2013-08-01 10:06:38 -07:00
Mitchell Hashimoto
f7cbdf4112
provisioner/salt-masterless: verify local_state_tree exists
...
/cc @rgarcia
2013-07-31 23:11:08 -07:00
Mitchell Hashimoto
104fe91b48
provisioner/salt-masterless: use Messages for minor steps
...
/cc @rgarcia - "Message" in Ui is the non-bold colored messages and
are meant for sub-messages or steps part of a larger message. "Say"
is used for the bold stuff. This is more in line wit how Packer works.
2013-07-31 23:07:15 -07:00
Mitchell Hashimoto
f3331afb1c
provisioner/salt-masterless: don't capitalize Ui
...
/cc @rgarcia - Not sure why this was capitalized to begin with
2013-07-31 23:06:22 -07:00
Mitchell Hashimoto
7e5c64ca7f
provisioner/salt-masterless: use common lib for config decoding
...
/cc @rgarcia - Since you opened the pull request, common config
decoding stuff has been pulled out into the common Package. This
simplifies a lot of code.
2013-07-31 23:05:15 -07:00
Mitchell Hashimoto
aacca7d066
provisoner/salt-masterless: lowercase package name
...
/cc @rgarcia - I don't know of any Go packages that follow this naming
convention so I just lowercased it.
2013-07-31 23:01:03 -07:00
Rafael Garcia
29993b30e4
provisioner/salt-masterless: rename
2013-07-28 23:30:03 -07:00
Rafael Garcia
7019281ad6
provisioner/salt: use cmd.StartWithUi
2013-07-27 18:12:18 -07:00
Rafael Garcia
5feadedba2
provisioner/salt: simple tests
2013-07-27 00:14:32 -07:00
Rafael Garcia
9c25bb5cd7
provisioner/salt: put state tree temporarily in /tmp/salt by default
2013-07-27 00:14:32 -07:00
Rafael Garcia
8f0d4890d9
provisioner/salt: copy local state tree to remote, run highstate
2013-07-27 00:14:32 -07:00