freighthop 0.0.6 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Puppetfile +1 -0
- data/Puppetfile.lock +3 -0
- data/Vagrantfile +1 -1
- data/bin/fh +2 -78
- data/lib/freighthop/cli/help.rb +69 -0
- data/lib/freighthop/cli/ssh.rb +46 -0
- data/lib/freighthop/cli/vagrant.rb +26 -0
- data/lib/freighthop/cli.rb +40 -0
- data/lib/freighthop/config.rb +4 -0
- data/lib/freighthop/vagrant_env.rb +24 -0
- data/lib/freighthop/version.rb +1 -1
- data/lib/freighthop.rb +7 -4
- data/local_modules/freighthop/manifests/database/mysql.pp +20 -0
- data/local_modules/freighthop/manifests/database/postgres.pp +6 -6
- data/local_modules/freighthop/manifests/database.pp +6 -8
- data/local_modules/freighthop/manifests/init.pp +1 -8
- data/local_modules/freighthop/manifests/params.pp +0 -3
- data/modules/apt/CHANGELOG +12 -2
- data/modules/apt/Gemfile +6 -5
- data/modules/apt/Gemfile.lock +40 -5
- data/modules/apt/Modulefile +1 -1
- data/modules/apt/README.md +2 -1
- data/modules/apt/Rakefile +1 -0
- data/modules/apt/manifests/init.pp +4 -1
- data/modules/apt/manifests/ppa.pp +1 -1
- data/modules/apt/manifests/update.pp +1 -0
- data/modules/apt/metadata.json +21 -13
- data/modules/apt/spec/defines/ppa_spec.rb +3 -3
- data/modules/apt/spec/defines/source_spec.rb +2 -2
- data/modules/apt/spec/spec_helper_system.rb +30 -0
- data/modules/apt/spec/system/apt_builddep_spec.rb +38 -0
- data/modules/apt/spec/system/apt_key_spec.rb +53 -0
- data/modules/apt/spec/system/apt_ppa_spec.rb +59 -0
- data/modules/apt/spec/system/apt_source_spec.rb +51 -0
- data/modules/apt/spec/system/basic_spec.rb +10 -0
- data/modules/apt/spec/system/class_spec.rb +20 -0
- data/modules/apt/templates/source.list.erb +2 -2
- data/modules/freighthop/manifests/database/mysql.pp +20 -0
- data/modules/freighthop/manifests/database/postgres.pp +6 -6
- data/modules/freighthop/manifests/database.pp +6 -8
- data/modules/freighthop/manifests/init.pp +1 -8
- data/modules/freighthop/manifests/params.pp +0 -3
- data/modules/mysql/CHANGELOG +403 -0
- data/modules/mysql/Gemfile +24 -0
- data/modules/mysql/Gemfile.lock +129 -0
- data/modules/mysql/LICENSE +201 -0
- data/modules/mysql/Modulefile +9 -0
- data/modules/mysql/README.md +492 -0
- data/modules/mysql/Rakefile +2 -0
- data/modules/mysql/TODO +8 -0
- data/modules/mysql/files/mysqltuner.pl +966 -0
- data/modules/mysql/lib/puppet/parser/functions/mysql_deepmerge.rb +52 -0
- data/modules/mysql/lib/puppet/parser/functions/mysql_password.rb +15 -0
- data/modules/mysql/lib/puppet/parser/functions/mysql_strip_hash.rb +21 -0
- data/modules/mysql/lib/puppet/provider/database/mysql.rb +52 -0
- data/modules/mysql/lib/puppet/provider/database_grant/mysql.rb +210 -0
- data/modules/mysql/lib/puppet/provider/database_user/mysql.rb +76 -0
- data/modules/mysql/lib/puppet/provider/mysql.rb +67 -0
- data/modules/mysql/lib/puppet/provider/mysql_database/mysql.rb +68 -0
- data/modules/mysql/lib/puppet/provider/mysql_grant/mysql.rb +115 -0
- data/modules/mysql/lib/puppet/provider/mysql_user/mysql.rb +115 -0
- data/modules/mysql/lib/puppet/type/database.rb +21 -0
- data/modules/mysql/lib/puppet/type/database_grant.rb +79 -0
- data/modules/mysql/lib/puppet/type/database_user.rb +31 -0
- data/modules/mysql/lib/puppet/type/mysql_database.rb +22 -0
- data/modules/mysql/lib/puppet/type/mysql_grant.rb +72 -0
- data/modules/mysql/lib/puppet/type/mysql_user.rb +45 -0
- data/modules/mysql/manifests/backup.pp +31 -0
- data/modules/mysql/manifests/bindings/java.pp +10 -0
- data/modules/mysql/manifests/bindings/perl.pp +10 -0
- data/modules/mysql/manifests/bindings/php.pp +10 -0
- data/modules/mysql/manifests/bindings/python.pp +10 -0
- data/modules/mysql/manifests/bindings/ruby.pp +10 -0
- data/modules/mysql/manifests/bindings.pp +33 -0
- data/modules/mysql/manifests/client/install.pp +8 -0
- data/modules/mysql/manifests/client.pp +27 -0
- data/modules/mysql/manifests/db.pp +59 -0
- data/modules/mysql/manifests/init.pp +100 -0
- data/modules/mysql/manifests/params.pp +230 -0
- data/modules/mysql/manifests/server/account_security.pp +22 -0
- data/modules/mysql/manifests/server/backup.pp +56 -0
- data/modules/mysql/manifests/server/config.pp +31 -0
- data/modules/mysql/manifests/server/install.pp +9 -0
- data/modules/mysql/manifests/server/monitor.pp +24 -0
- data/modules/mysql/manifests/server/mysqltuner.pp +9 -0
- data/modules/mysql/manifests/server/providers.pp +8 -0
- data/modules/mysql/manifests/server/root_password.pp +21 -0
- data/modules/mysql/manifests/server/service.pp +19 -0
- data/modules/mysql/manifests/server.pp +69 -0
- data/modules/mysql/metadata.json +289 -0
- data/modules/mysql/spec/classes/mysql_bindings_spec.rb +58 -0
- data/modules/mysql/spec/classes/mysql_client_spec.rb +16 -0
- data/modules/mysql/spec/classes/mysql_server_account_security_spec.rb +41 -0
- data/modules/mysql/spec/classes/mysql_server_backup_spec.rb +112 -0
- data/modules/mysql/spec/classes/mysql_server_monitor_spec.rb +31 -0
- data/modules/mysql/spec/classes/mysql_server_mysqltuner_spec.rb +5 -0
- data/modules/mysql/spec/classes/mysql_server_spec.rb +162 -0
- data/modules/mysql/spec/defines/mysql_db_spec.rb +51 -0
- data/modules/mysql/spec/spec.opts +6 -0
- data/modules/mysql/spec/spec_helper.rb +5 -0
- data/modules/mysql/spec/spec_helper_system.rb +28 -0
- data/modules/mysql/spec/system/mysql_account_delete_spec.rb +35 -0
- data/modules/mysql/spec/system/mysql_backup_spec.rb +77 -0
- data/modules/mysql/spec/system/mysql_bindings_spec.rb +90 -0
- data/modules/mysql/spec/system/mysql_db_spec.rb +61 -0
- data/modules/mysql/spec/system/mysql_server_monitor_spec.rb +30 -0
- data/modules/mysql/spec/system/mysql_server_root_password_spec.rb +71 -0
- data/modules/mysql/spec/system/mysql_server_spec.rb +85 -0
- data/modules/mysql/spec/system/types/mysql_grant_spec.rb +314 -0
- data/modules/mysql/spec/system/types/mysql_user_spec.rb +35 -0
- data/modules/mysql/spec/unit/mysql_password_spec.rb +27 -0
- data/modules/mysql/spec/unit/puppet/functions/mysql_deepmerge_spec.rb +77 -0
- data/modules/mysql/spec/unit/puppet/provider/database/mysql_spec.rb +86 -0
- data/modules/mysql/spec/unit/puppet/provider/database_grant/mysql_spec.rb +95 -0
- data/modules/mysql/spec/unit/puppet/provider/database_user/mysql_spec.rb +119 -0
- data/modules/mysql/spec/unit/puppet/provider/mysql_database/mysql_spec.rb +118 -0
- data/modules/mysql/spec/unit/puppet/provider/mysql_user/mysql_spec.rb +130 -0
- data/modules/mysql/spec/unit/puppet/type/mysql_database_spec.rb +29 -0
- data/modules/mysql/spec/unit/puppet/type/mysql_user_spec.rb +30 -0
- data/modules/mysql/templates/my.cnf.erb +17 -0
- data/modules/mysql/templates/my.cnf.pass.erb +7 -0
- data/modules/mysql/templates/my.conf.cnf.erb +17 -0
- data/modules/mysql/templates/mysqlbackup.sh.erb +57 -0
- data/modules/mysql/tests/backup.pp +8 -0
- data/modules/mysql/tests/bindings.pp +3 -0
- data/modules/mysql/tests/init.pp +1 -0
- data/modules/mysql/tests/java.pp +1 -0
- data/modules/mysql/tests/mysql_database.pp +12 -0
- data/modules/mysql/tests/mysql_grant.pp +5 -0
- data/modules/mysql/tests/mysql_user.pp +23 -0
- data/modules/mysql/tests/perl.pp +1 -0
- data/modules/mysql/tests/python.pp +1 -0
- data/modules/mysql/tests/ruby.pp +1 -0
- data/modules/mysql/tests/server/account_security.pp +4 -0
- data/modules/mysql/tests/server/config.pp +11 -0
- data/modules/mysql/tests/server.pp +3 -0
- data/modules/postgresql/Changelog +191 -0
- data/modules/postgresql/Gemfile +1 -0
- data/modules/postgresql/Gemfile.lock +9 -0
- data/modules/postgresql/LICENSE +198 -12
- data/modules/postgresql/Modulefile +2 -2
- data/modules/postgresql/NOTICE +14 -0
- data/modules/postgresql/README.md +435 -184
- data/modules/postgresql/files/validate_postgresql_connection.sh +31 -0
- data/modules/postgresql/lib/puppet/provider/postgresql_conf/parsed.rb +37 -0
- data/modules/postgresql/lib/puppet/provider/postgresql_psql/ruby.rb +4 -0
- data/modules/postgresql/lib/puppet/type/postgresql_conf.rb +31 -0
- data/modules/postgresql/lib/puppet/type/postgresql_psql.rb +4 -0
- data/modules/postgresql/manifests/client.pp +17 -16
- data/modules/postgresql/manifests/globals.pp +95 -0
- data/modules/postgresql/manifests/lib/devel.pp +15 -0
- data/modules/postgresql/manifests/lib/java.pp +15 -0
- data/modules/postgresql/manifests/lib/python.pp +13 -0
- data/modules/postgresql/manifests/params.pp +127 -222
- data/modules/postgresql/manifests/repo/apt_postgresql_org.pp +30 -0
- data/modules/postgresql/manifests/repo/yum_postgresql_org.pp +38 -0
- data/modules/postgresql/manifests/repo.pp +22 -0
- data/modules/postgresql/manifests/server/config.pp +113 -0
- data/modules/postgresql/manifests/server/config_entry.pp +43 -0
- data/modules/postgresql/manifests/server/contrib.pp +27 -0
- data/modules/postgresql/manifests/server/database.pp +75 -0
- data/modules/postgresql/manifests/server/database_grant.pp +18 -0
- data/modules/postgresql/manifests/server/db.pp +36 -0
- data/modules/postgresql/manifests/server/firewall.pp +21 -0
- data/modules/postgresql/manifests/server/grant.pp +81 -0
- data/modules/postgresql/manifests/server/initdb.pp +52 -0
- data/modules/postgresql/manifests/server/install.pp +49 -0
- data/modules/postgresql/manifests/server/passwd.pp +34 -0
- data/modules/postgresql/manifests/server/pg_hba_rule.pp +54 -0
- data/modules/postgresql/manifests/server/plperl.pp +27 -0
- data/modules/postgresql/manifests/server/reload.pp +15 -0
- data/modules/postgresql/manifests/{role.pp → server/role.pp} +19 -33
- data/modules/postgresql/manifests/server/service.pp +40 -0
- data/modules/postgresql/manifests/{table_grant.pp → server/table_grant.pp} +4 -4
- data/modules/postgresql/manifests/server/tablespace.pp +42 -0
- data/modules/postgresql/manifests/server.pp +61 -83
- data/modules/postgresql/manifests/validate_db_connection.pp +49 -50
- data/modules/postgresql/metadata.json +123 -73
- data/modules/postgresql/spec/spec_helper_system.rb +13 -1
- data/modules/postgresql/spec/system/client_spec.rb +22 -0
- data/modules/postgresql/spec/system/common_patterns_spec.rb +53 -0
- data/modules/postgresql/spec/system/contrib_spec.rb +33 -0
- data/modules/postgresql/spec/system/lib/devel_spec.rb +22 -0
- data/modules/postgresql/spec/system/lib/java_spec.rb +25 -0
- data/modules/postgresql/spec/system/lib/python_spec.rb +24 -0
- data/modules/postgresql/spec/system/postgresql_psql_spec.rb +51 -0
- data/modules/postgresql/spec/system/server/config_entry_spec.rb +32 -0
- data/modules/postgresql/spec/system/server/database_grant_spec.rb +54 -0
- data/modules/postgresql/spec/system/server/database_spec.rb +35 -0
- data/modules/postgresql/spec/system/server/db_spec.rb +143 -0
- data/modules/postgresql/spec/system/server/grant_spec.rb +55 -0
- data/modules/postgresql/spec/system/server/pg_hba_rule_spec.rb +85 -0
- data/modules/postgresql/spec/system/server/plperl_spec.rb +29 -0
- data/modules/postgresql/spec/system/server/role_spec.rb +103 -0
- data/modules/postgresql/spec/system/server/table_grant_spec.rb +72 -0
- data/modules/postgresql/spec/system/server/tablespace_spec.rb +74 -0
- data/modules/postgresql/spec/system/server_spec.rb +217 -0
- data/modules/postgresql/spec/system/validate_db_connection_spec.rb +91 -0
- data/modules/postgresql/spec/unit/classes/client_spec.rb +27 -2
- data/modules/postgresql/spec/unit/classes/globals_spec.rb +28 -0
- data/modules/postgresql/spec/unit/classes/lib/devel_spec.rb +12 -0
- data/modules/postgresql/spec/unit/classes/{postgresql_java_spec.rb → lib/java_spec.rb} +9 -19
- data/modules/postgresql/spec/unit/classes/lib/python_spec.rb +31 -0
- data/modules/postgresql/spec/unit/classes/params_spec.rb +2 -1
- data/modules/postgresql/spec/unit/classes/repo_spec.rb +17 -0
- data/modules/postgresql/spec/unit/classes/server/contrib_spec.rb +42 -0
- data/modules/postgresql/spec/unit/classes/server/initdb_spec.rb +28 -0
- data/modules/postgresql/spec/unit/classes/server/plperl_spec.rb +45 -0
- data/modules/postgresql/spec/unit/classes/server_spec.rb +83 -2
- data/modules/postgresql/spec/unit/defines/server/config_entry_spec.rb +23 -0
- data/modules/postgresql/spec/unit/defines/server/database_grant_spec.rb +26 -0
- data/modules/postgresql/spec/unit/defines/server/database_spec.rb +16 -0
- data/modules/postgresql/spec/unit/defines/server/db_spec.rb +28 -0
- data/modules/postgresql/spec/unit/defines/{database_grant_spec.rb → server/grant_spec.rb} +7 -4
- data/modules/postgresql/spec/unit/defines/{pg_hba_rule_spec.rb → server/pg_hba_rule_spec.rb} +59 -2
- data/modules/postgresql/spec/unit/defines/server/role_spec.rb +23 -0
- data/modules/postgresql/spec/unit/defines/server/table_grant_spec.rb +27 -0
- data/modules/postgresql/spec/unit/defines/server/tablespace_spec.rb +23 -0
- data/modules/postgresql/spec/unit/defines/validate_db_connection_spec.rb +22 -9
- data/modules/postgresql/spec/unit/provider/postgresql_conf/parsed_spec.rb +112 -0
- data/modules/postgresql/spec/unit/puppet/provider/postgresql_psql/ruby_spec.rb +29 -0
- data/modules/postgresql/spec/unit/puppet/type/postgresql_psql_spec.rb +1 -0
- data/modules/postgresql/spec/unit/type/postgresql_conf_spec.rb +50 -0
- metadata +177 -53
- data/modules/postgresql/examples/init.pp +0 -1
- data/modules/postgresql/examples/official-postgresql-repos.pp +0 -19
- data/modules/postgresql/examples/postgresql_database.pp +0 -22
- data/modules/postgresql/examples/postgresql_db.pp +0 -30
- data/modules/postgresql/examples/postgresql_grant.pp +0 -14
- data/modules/postgresql/examples/postgresql_pg_hba_rule.pp +0 -18
- data/modules/postgresql/examples/postgresql_pgconf_extras.pp +0 -19
- data/modules/postgresql/examples/postgresql_tablespace.pp +0 -73
- data/modules/postgresql/examples/postgresql_user.pp +0 -28
- data/modules/postgresql/examples/server.pp +0 -10
- data/modules/postgresql/lib/facter/postgres_default_version.rb +0 -69
- data/modules/postgresql/manifests/config/afterservice.pp +0 -47
- data/modules/postgresql/manifests/config/beforeservice.pp +0 -171
- data/modules/postgresql/manifests/config.pp +0 -74
- data/modules/postgresql/manifests/contrib.pp +0 -29
- data/modules/postgresql/manifests/database.pp +0 -85
- data/modules/postgresql/manifests/database_grant.pp +0 -35
- data/modules/postgresql/manifests/database_user.pp +0 -60
- data/modules/postgresql/manifests/db.pp +0 -77
- data/modules/postgresql/manifests/devel.pp +0 -27
- data/modules/postgresql/manifests/grant.pp +0 -77
- data/modules/postgresql/manifests/init.pp +0 -145
- data/modules/postgresql/manifests/initdb.pp +0 -52
- data/modules/postgresql/manifests/java.pp +0 -29
- data/modules/postgresql/manifests/package_source/apt_postgresql_org.pp +0 -21
- data/modules/postgresql/manifests/package_source/yum_postgresql_org.pp +0 -30
- data/modules/postgresql/manifests/pg_hba.pp +0 -19
- data/modules/postgresql/manifests/pg_hba_rule.pp +0 -41
- data/modules/postgresql/manifests/plperl.pp +0 -24
- data/modules/postgresql/manifests/psql.pp +0 -56
- data/modules/postgresql/manifests/python.pp +0 -18
- data/modules/postgresql/manifests/tablespace.pp +0 -59
- data/modules/postgresql/spec/system/install_spec.rb +0 -707
- data/modules/postgresql/spec/system/non_defaults_spec.rb +0 -114
- data/modules/postgresql/spec/unit/classes/contrib_spec.rb +0 -11
- data/modules/postgresql/spec/unit/classes/devel_spec.rb +0 -11
- data/modules/postgresql/spec/unit/classes/init_spec.rb +0 -71
- data/modules/postgresql/spec/unit/classes/postgresql_python_spec.rb +0 -53
- data/modules/postgresql/spec/unit/defines/database_spec.rb +0 -14
- data/modules/postgresql/spec/unit/defines/database_user_spec.rb +0 -19
- data/modules/postgresql/spec/unit/defines/db_spec.rb +0 -20
- data/modules/postgresql/spec/unit/defines/pg_hba_spec.rb +0 -20
- data/modules/postgresql/spec/unit/defines/psql_spec.rb +0 -20
- data/modules/postgresql/spec/unit/defines/role_spec.rb +0 -14
- data/modules/postgresql/spec/unit/defines/tablespace_spec.rb +0 -19
- data/modules/postgresql/spec/unit/facts/postgres_default_version_spec.rb +0 -14
data/Puppetfile
CHANGED
data/Puppetfile.lock
CHANGED
|
@@ -5,6 +5,8 @@ FORGE
|
|
|
5
5
|
puppetlabs/apt (1.2.0)
|
|
6
6
|
puppetlabs/stdlib (>= 2.2.1)
|
|
7
7
|
puppetlabs/firewall (0.4.2)
|
|
8
|
+
puppetlabs/mysql (2.0.1)
|
|
9
|
+
puppetlabs/stdlib (>= 2.2.1)
|
|
8
10
|
puppetlabs/postgresql (2.5.0)
|
|
9
11
|
puppetlabs/apt (< 2.0.0, >= 1.1.0)
|
|
10
12
|
puppetlabs/firewall (>= 0.0.4)
|
|
@@ -32,6 +34,7 @@ DEPENDENCIES
|
|
|
32
34
|
gdsoperations/rbenv (>= 0)
|
|
33
35
|
nginx (>= 0)
|
|
34
36
|
puppetlabs/apt (>= 0)
|
|
37
|
+
puppetlabs/mysql (>= 0)
|
|
35
38
|
puppetlabs/postgresql (>= 0)
|
|
36
39
|
puppetlabs/stdlib (= 4.1.0)
|
|
37
40
|
|
data/Vagrantfile
CHANGED
data/bin/fh
CHANGED
|
@@ -1,80 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
unless File.directory?(FREIGHTHOP_VAGRANT_DOTFILE_PATH)
|
|
7
|
-
require 'fileutils'
|
|
8
|
-
FileUtils.mkdir_p(FREIGHTHOP_VAGRANT_DOTFILE_PATH)
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
ENV['VAGRANT_DOTFILE_PATH'] = FREIGHTHOP_VAGRANT_DOTFILE_PATH
|
|
12
|
-
ENV['VAGRANT_CWD'] = FREIGHTHOP_VAGRANT_CWD
|
|
13
|
-
|
|
14
|
-
PROJECT_NAME = File.basename(Dir.pwd)
|
|
15
|
-
PROJECT_DIR = "/srv/#{PROJECT_NAME}"
|
|
16
|
-
|
|
17
|
-
def print_usage
|
|
18
|
-
puts <<USAGETEXT
|
|
19
|
-
NAME
|
|
20
|
-
fh - freighthop's friendly helper
|
|
21
|
-
|
|
22
|
-
DESCRIPTION
|
|
23
|
-
The fh command is used to interact with a freighthop-managed vm from the root
|
|
24
|
-
of your project directory.
|
|
25
|
-
|
|
26
|
-
SYNOPSIS
|
|
27
|
-
fh <COMMAND> [args...]
|
|
28
|
-
|
|
29
|
-
COMMANDS
|
|
30
|
-
up - boot freighthop vm
|
|
31
|
-
halt - shutdown freighthop vm
|
|
32
|
-
destroy - shutdown and delete vm
|
|
33
|
-
provision - rerun provisioning on a booted freighthop vm
|
|
34
|
-
reload - restart freighthop vm (picks up new config changes)
|
|
35
|
-
status - check the current status of the freighthop vm
|
|
36
|
-
ssh - opens a root shell inside the project dir of the freighthop vm
|
|
37
|
-
(other) - see below
|
|
38
|
-
help - this help
|
|
39
|
-
|
|
40
|
-
PASSTHROUGH TO VM
|
|
41
|
-
Anything that does not match the above list will be passed through to the
|
|
42
|
-
freighthop vm.
|
|
43
|
-
|
|
44
|
-
The command will be run in a bash shell, as root, from inside the shared
|
|
45
|
-
project directory.
|
|
46
|
-
|
|
47
|
-
This allows you to specify relative commands like ./script/server and expect
|
|
48
|
-
them to behave properly.
|
|
49
|
-
|
|
50
|
-
EXAMPLES
|
|
51
|
-
Install gem dependencies:
|
|
52
|
-
fh bundle install
|
|
53
|
-
|
|
54
|
-
Start a Rails 4 server:
|
|
55
|
-
fh ./bin/rails server
|
|
56
|
-
|
|
57
|
-
Run a ruby test:
|
|
58
|
-
fh ruby -Itest test/unit/object_test.rb
|
|
59
|
-
|
|
60
|
-
Install leiningen dependencies:
|
|
61
|
-
fh lein deps
|
|
62
|
-
|
|
63
|
-
Run a ring server:
|
|
64
|
-
fh lein ring server-headless
|
|
65
|
-
USAGETEXT
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
subcommand, *rest = ARGV
|
|
69
|
-
case subcommand
|
|
70
|
-
when 'help' then
|
|
71
|
-
print_usage
|
|
72
|
-
when 'up', 'halt', 'destroy', 'provision', 'reload', 'status' then
|
|
73
|
-
exec %Q(vagrant #{subcommand} #{rest.join(' ')})
|
|
74
|
-
when 'ssh' then
|
|
75
|
-
`vagrant ssh-config > /tmp/freighthop.ssh-config`
|
|
76
|
-
exec %Q(ssh -t -F /tmp/freighthop.ssh-config #{PROJECT_NAME} 'cd #{PROJECT_DIR}; sudo /bin/bash -l -i')
|
|
77
|
-
else
|
|
78
|
-
`vagrant ssh-config > /tmp/freighthop.ssh-config`
|
|
79
|
-
exec %Q(ssh -t -F /tmp/freighthop.ssh-config #{PROJECT_NAME} 'cd #{PROJECT_DIR}; sudo /bin/bash -l -c "#{rest.unshift(subcommand).join(' ')}"')
|
|
80
|
-
end
|
|
3
|
+
require 'freighthop'
|
|
4
|
+
Freighthop::CLI.new(*ARGV).run
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
class Freighthop::CLI::Help
|
|
2
|
+
TOPICS = []
|
|
3
|
+
|
|
4
|
+
def self.match?(*args)
|
|
5
|
+
args.first == 'help' || args.empty?
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def initialize(*args)
|
|
9
|
+
_, @topic, *_ = args
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def run
|
|
13
|
+
if TOPICS.include?(@topic)
|
|
14
|
+
else
|
|
15
|
+
usage
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def usage
|
|
20
|
+
puts <<USAGETEXT
|
|
21
|
+
NAME
|
|
22
|
+
fh - freighthop's friendly helper
|
|
23
|
+
|
|
24
|
+
DESCRIPTION
|
|
25
|
+
The fh command is used to interact with a freighthop-managed vm from the root
|
|
26
|
+
of your project directory.
|
|
27
|
+
|
|
28
|
+
SYNOPSIS
|
|
29
|
+
fh <COMMAND> [args...]
|
|
30
|
+
|
|
31
|
+
BUILT-IN COMMANDS
|
|
32
|
+
up - boot freighthop vm
|
|
33
|
+
halt - shutdown freighthop vm
|
|
34
|
+
destroy - shutdown and delete vm
|
|
35
|
+
provision - rerun provisioning on a booted freighthop vm
|
|
36
|
+
reload - restart freighthop vm (picks up new config changes)
|
|
37
|
+
status - check the current status of the freighthop vm
|
|
38
|
+
ssh - opens a root shell inside the project dir of the freighthop vm
|
|
39
|
+
(other) - see PASSTHROUGH TO VM below
|
|
40
|
+
help - this help
|
|
41
|
+
|
|
42
|
+
PASSTHROUGH TO VM
|
|
43
|
+
Anything that does not match the above list will be passed through to the
|
|
44
|
+
freighthop vm.
|
|
45
|
+
|
|
46
|
+
The command will be run in a bash shell, as root, from inside the shared
|
|
47
|
+
project directory.
|
|
48
|
+
|
|
49
|
+
This allows you to specify relative commands like ./script/server and expect
|
|
50
|
+
them to behave properly.
|
|
51
|
+
|
|
52
|
+
EXAMPLES
|
|
53
|
+
Install gem dependencies:
|
|
54
|
+
fh bundle install
|
|
55
|
+
|
|
56
|
+
Start a Rails 4 server:
|
|
57
|
+
fh ./bin/rails server
|
|
58
|
+
|
|
59
|
+
Run a ruby test:
|
|
60
|
+
fh ruby -Itest test/unit/object_test.rb
|
|
61
|
+
|
|
62
|
+
Install leiningen dependencies:
|
|
63
|
+
fh lein deps
|
|
64
|
+
|
|
65
|
+
Run a ring server:
|
|
66
|
+
fh lein ring server-headless
|
|
67
|
+
USAGETEXT
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
class Freighthop::CLI::SSH
|
|
2
|
+
def self.match?(*args)
|
|
3
|
+
!args.empty? # we handle guest passthrough
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def initialize(*args)
|
|
7
|
+
@args = args
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def run
|
|
11
|
+
if shell?
|
|
12
|
+
ssh('-i')
|
|
13
|
+
else
|
|
14
|
+
ssh(%Q(-c "#{@args.join(' ')}"))
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def shell?
|
|
19
|
+
@args.first == 'ssh'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def ssh(cmd)
|
|
23
|
+
exec %Q(ssh -t -F #{config} #{app_name} 'cd #{guest_root}; sudo /bin/bash -l #{cmd}')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def config
|
|
27
|
+
config_path.tap do |conf|
|
|
28
|
+
if !conf.exist? || (Time.now - conf.mtime) > 86400
|
|
29
|
+
`vagrant ssh-config > #{conf}`
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def config_path
|
|
35
|
+
Pathname("/tmp/freighthop.#{app_name}.ssh-config")
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def app_name
|
|
39
|
+
Freighthop.app_name
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def guest_root
|
|
43
|
+
Freighthop.guest_root
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
class Freighthop::CLI::Vagrant
|
|
2
|
+
COMMANDS = %w[
|
|
3
|
+
up
|
|
4
|
+
halt
|
|
5
|
+
destroy
|
|
6
|
+
provision
|
|
7
|
+
reload
|
|
8
|
+
status
|
|
9
|
+
]
|
|
10
|
+
|
|
11
|
+
def self.match?(*args)
|
|
12
|
+
COMMANDS.include?(args.first)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def initialize(*args)
|
|
16
|
+
@subcommand, @rest = args
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def args
|
|
20
|
+
([*@rest] || []).join(' ')
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def run
|
|
24
|
+
exec %Q(vagrant #{@subcommand} #{args})
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
class Freighthop::CLI; end
|
|
2
|
+
|
|
3
|
+
require_relative 'cli/help'
|
|
4
|
+
require_relative 'cli/ssh'
|
|
5
|
+
require_relative 'cli/vagrant'
|
|
6
|
+
|
|
7
|
+
class Freighthop::CLI
|
|
8
|
+
COMMANDS = [
|
|
9
|
+
Freighthop::CLI::Help,
|
|
10
|
+
Freighthop::CLI::Vagrant,
|
|
11
|
+
Freighthop::CLI::SSH,
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
def initialize(*args)
|
|
15
|
+
@args = args
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def run
|
|
19
|
+
sanity_check
|
|
20
|
+
Freighthop::VagrantEnv.activate!
|
|
21
|
+
|
|
22
|
+
command = COMMANDS.detect(lambda{self.help}) { |c| c.match?(*@args) }
|
|
23
|
+
command.new(*@args).run
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def help
|
|
27
|
+
Freighthop::CLI::Help
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def sanity_check
|
|
31
|
+
return if help.match?(*@args)
|
|
32
|
+
unless Freighthop::Config.exist?
|
|
33
|
+
puts <<-NO_CONFIG
|
|
34
|
+
ERROR: No freighthop config file (.freighthop.json) found in current path.
|
|
35
|
+
You probably want to check out the README and/or `fh help`.
|
|
36
|
+
NO_CONFIG
|
|
37
|
+
exit 1
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
data/lib/freighthop/config.rb
CHANGED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
class Freighthop::VagrantEnv
|
|
2
|
+
def self.env
|
|
3
|
+
{
|
|
4
|
+
'VAGRANT_DOTFILE_PATH' => vagrant_dotfile_path,
|
|
5
|
+
'VAGRANT_CWD' => vagrant_cwd
|
|
6
|
+
}
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def self.activate!
|
|
10
|
+
env.each do |key, val|
|
|
11
|
+
ENV[key] = val.to_s
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.vagrant_cwd
|
|
16
|
+
Freighthop.freighthop_root
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.vagrant_dotfile_path
|
|
20
|
+
Pathname('~/.freighthop.d/vagrant').expand_path.tap do |path|
|
|
21
|
+
path.mkpath unless path.directory?
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
data/lib/freighthop/version.rb
CHANGED
data/lib/freighthop.rb
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
require 'pathname'
|
|
2
|
+
|
|
2
3
|
require_relative 'freighthop/version'
|
|
3
4
|
require_relative 'freighthop/config'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
raise "i expect to be required from a Vagrantfile"
|
|
7
|
-
end
|
|
5
|
+
require_relative 'freighthop/cli'
|
|
6
|
+
require_relative 'freighthop/vagrant_env'
|
|
8
7
|
|
|
9
8
|
module Freighthop
|
|
10
9
|
class << self
|
|
@@ -20,6 +19,10 @@ module Freighthop
|
|
|
20
19
|
Pathname("/srv/#{app_name}")
|
|
21
20
|
end
|
|
22
21
|
|
|
22
|
+
def freighthop_root
|
|
23
|
+
Pathname(File.dirname(__FILE__)).join('..').expand_path
|
|
24
|
+
end
|
|
25
|
+
|
|
23
26
|
def app_name
|
|
24
27
|
@app_name ||= host_root.basename.to_s
|
|
25
28
|
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
class freighthop::database::mysql(
|
|
2
|
+
$db_names,
|
|
3
|
+
$users,
|
|
4
|
+
) {
|
|
5
|
+
include mysql::server
|
|
6
|
+
|
|
7
|
+
mysql::db{$db_names:
|
|
8
|
+
user => "notorious",
|
|
9
|
+
password => "notorious",
|
|
10
|
+
host => "localhost",
|
|
11
|
+
grant => ['All']
|
|
12
|
+
}
|
|
13
|
+
mysql_grant { $users:
|
|
14
|
+
ensure => 'present',
|
|
15
|
+
options => ['GRANT'],
|
|
16
|
+
privileges => ['ALL'],
|
|
17
|
+
table => '*.*',
|
|
18
|
+
user => 'notorious@%',
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
class freighthop::database::postgres(
|
|
2
|
-
$
|
|
3
|
-
$
|
|
2
|
+
$db_names,
|
|
3
|
+
$users,
|
|
4
4
|
) {
|
|
5
5
|
include postgresql::server
|
|
6
6
|
|
|
7
|
-
postgresql::pg_hba_rule { 'local-users-get-everything':
|
|
7
|
+
postgresql::server::pg_hba_rule { 'local-users-get-everything':
|
|
8
8
|
type => 'local',
|
|
9
9
|
database => 'all',
|
|
10
10
|
user => 'all',
|
|
11
11
|
auth_method => 'trust',
|
|
12
12
|
order => '0001',
|
|
13
13
|
}
|
|
14
|
-
postgresql::pg_hba_rule { 'local-host-connections-get-everything':
|
|
14
|
+
postgresql::server::pg_hba_rule { 'local-host-connections-get-everything':
|
|
15
15
|
type => 'host',
|
|
16
16
|
database => 'all',
|
|
17
17
|
user => 'all',
|
|
@@ -19,8 +19,8 @@ class freighthop::database::postgres(
|
|
|
19
19
|
auth_method => 'trust',
|
|
20
20
|
order => '0001',
|
|
21
21
|
}
|
|
22
|
-
postgresql::database { $
|
|
23
|
-
postgresql::
|
|
22
|
+
postgresql::server::database { $db_names: }
|
|
23
|
+
postgresql::server::role { $users:
|
|
24
24
|
superuser => true,
|
|
25
25
|
createdb => true,
|
|
26
26
|
createrole => true,
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
class freighthop::database(
|
|
2
|
-
$
|
|
3
|
-
$databases,
|
|
4
|
-
$database_users
|
|
2
|
+
$flavors
|
|
5
3
|
) {
|
|
6
|
-
if (member($
|
|
7
|
-
class { 'freighthop::database::postgres':
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
4
|
+
if (member($flavors, 'postgres')) {
|
|
5
|
+
class { 'freighthop::database::postgres':}
|
|
6
|
+
}
|
|
7
|
+
if (member($flavors, 'mysql')) {
|
|
8
|
+
class { 'freighthop::database::mysql':}
|
|
11
9
|
}
|
|
12
10
|
}
|
|
@@ -2,9 +2,6 @@ class freighthop(
|
|
|
2
2
|
$ppas = $freighthop::params::ppas,
|
|
3
3
|
$packages = $freighthop::params::packages,
|
|
4
4
|
$languages = $freighthop::params::languages,
|
|
5
|
-
$database_flavors = $freighthop::params::database_flavors,
|
|
6
|
-
$databases = $freighthop::params::databases,
|
|
7
|
-
$database_users = $freighthop::params::database_users,
|
|
8
5
|
$ruby_version = $freighthop::params::ruby_version,
|
|
9
6
|
$app_name = $freighthop::params::app_name,
|
|
10
7
|
$app_root = $freighthop::params::app_root,
|
|
@@ -34,9 +31,5 @@ class freighthop(
|
|
|
34
31
|
ssl_key_path => $ssl_key_path,
|
|
35
32
|
} ->
|
|
36
33
|
|
|
37
|
-
class { 'freighthop::database':
|
|
38
|
-
database_flavors => $database_flavors,
|
|
39
|
-
databases => $databases,
|
|
40
|
-
database_users => $database_users,
|
|
41
|
-
}
|
|
34
|
+
class { 'freighthop::database':}
|
|
42
35
|
}
|
data/modules/apt/CHANGELOG
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
2013-10-08 1.4.0
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Summary:
|
|
4
|
+
|
|
5
|
+
Minor bugfix and allow the timeout to be adjusted.
|
|
6
|
+
|
|
7
|
+
Features:
|
|
8
|
+
- Add an `updates_timeout` to apt::params
|
|
9
|
+
|
|
10
|
+
Fixes:
|
|
11
|
+
- Ensure apt::ppa can readd a ppa removed by hand.
|
|
12
|
+
|
|
13
|
+
Summary
|
|
4
14
|
|
|
5
15
|
1.3.0
|
|
6
16
|
=====
|
data/modules/apt/Gemfile
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
3
|
group :development, :test do
|
|
4
|
-
gem 'rake',
|
|
5
|
-
gem 'rspec-puppet',
|
|
6
|
-
gem 'puppetlabs_spec_helper',
|
|
4
|
+
gem 'rake', :require => false
|
|
5
|
+
gem 'rspec-puppet', :require => false
|
|
6
|
+
gem 'puppetlabs_spec_helper', :require => false
|
|
7
|
+
gem 'rspec-system', :require => false
|
|
8
|
+
gem 'rspec-system-puppet', :require => false
|
|
9
|
+
gem 'rspec-system-serverspec', :require => false
|
|
7
10
|
end
|
|
8
11
|
|
|
9
12
|
if puppetversion = ENV['PUPPET_GEM_VERSION']
|
|
@@ -11,5 +14,3 @@ if puppetversion = ENV['PUPPET_GEM_VERSION']
|
|
|
11
14
|
else
|
|
12
15
|
gem 'puppet', :require => false
|
|
13
16
|
end
|
|
14
|
-
|
|
15
|
-
# vim:ft=ruby
|
data/modules/apt/Gemfile.lock
CHANGED
|
@@ -1,35 +1,70 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: https://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
+
builder (3.2.2)
|
|
4
5
|
diff-lcs (1.2.4)
|
|
5
|
-
facter (1.
|
|
6
|
+
facter (1.6.18)
|
|
7
|
+
hiera (1.0.0)
|
|
8
|
+
highline (1.6.19)
|
|
9
|
+
kwalify (0.7.2)
|
|
6
10
|
metaclass (0.0.1)
|
|
7
11
|
mocha (0.14.0)
|
|
8
12
|
metaclass (~> 0.0.1)
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
net-scp (1.1.2)
|
|
14
|
+
net-ssh (>= 2.6.5)
|
|
15
|
+
net-ssh (2.7.0)
|
|
16
|
+
nokogiri (1.5.10)
|
|
17
|
+
puppet (3.0.2)
|
|
18
|
+
facter (~> 1.6.11)
|
|
19
|
+
hiera (~> 1.0.0)
|
|
11
20
|
puppetlabs_spec_helper (0.4.1)
|
|
12
21
|
mocha (>= 0.10.5)
|
|
13
22
|
rake
|
|
14
23
|
rspec (>= 2.9.0)
|
|
15
24
|
rspec-puppet (>= 0.1.1)
|
|
16
25
|
rake (10.1.0)
|
|
26
|
+
rbvmomi (1.6.0)
|
|
27
|
+
builder
|
|
28
|
+
nokogiri (>= 1.4.1)
|
|
29
|
+
trollop
|
|
17
30
|
rspec (2.14.1)
|
|
18
31
|
rspec-core (~> 2.14.0)
|
|
19
32
|
rspec-expectations (~> 2.14.0)
|
|
20
33
|
rspec-mocks (~> 2.14.0)
|
|
21
34
|
rspec-core (2.14.5)
|
|
22
|
-
rspec-expectations (2.14.
|
|
35
|
+
rspec-expectations (2.14.3)
|
|
23
36
|
diff-lcs (>= 1.1.3, < 2.0)
|
|
24
37
|
rspec-mocks (2.14.3)
|
|
25
38
|
rspec-puppet (0.1.6)
|
|
26
39
|
rspec
|
|
40
|
+
rspec-system (2.3.0)
|
|
41
|
+
kwalify (~> 0.7.2)
|
|
42
|
+
net-scp (~> 1.1)
|
|
43
|
+
net-ssh (~> 2.6)
|
|
44
|
+
nokogiri (~> 1.5.9)
|
|
45
|
+
rbvmomi (~> 1.6)
|
|
46
|
+
rspec (~> 2.13)
|
|
47
|
+
systemu (~> 2.5)
|
|
48
|
+
rspec-system-puppet (2.2.0)
|
|
49
|
+
rspec-system (~> 2.0)
|
|
50
|
+
rspec-system-serverspec (1.0.1)
|
|
51
|
+
rspec-system (~> 2.0)
|
|
52
|
+
serverspec (~> 0.0)
|
|
53
|
+
serverspec (0.10.5)
|
|
54
|
+
highline
|
|
55
|
+
net-ssh
|
|
56
|
+
rspec (>= 2.13.0)
|
|
57
|
+
systemu (2.5.2)
|
|
58
|
+
trollop (2.0)
|
|
27
59
|
|
|
28
60
|
PLATFORMS
|
|
29
61
|
ruby
|
|
30
62
|
|
|
31
63
|
DEPENDENCIES
|
|
32
|
-
puppet (~>
|
|
64
|
+
puppet (~> 3.0.0)
|
|
33
65
|
puppetlabs_spec_helper
|
|
34
66
|
rake
|
|
35
67
|
rspec-puppet
|
|
68
|
+
rspec-system
|
|
69
|
+
rspec-system-puppet
|
|
70
|
+
rspec-system-serverspec
|
data/modules/apt/Modulefile
CHANGED
data/modules/apt/README.md
CHANGED
|
@@ -54,7 +54,8 @@ The parameters for `apt` are not required in general and are predominantly for d
|
|
|
54
54
|
proxy_port => '8080',
|
|
55
55
|
purge_sources_list => false,
|
|
56
56
|
purge_sources_list_d => false,
|
|
57
|
-
purge_preferences_d => false
|
|
57
|
+
purge_preferences_d => false,
|
|
58
|
+
update_timeout => undef
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
Puppet will manage your system's `sources.list` file and `sources.list.d` directory but will do its best to respect existing content.
|
data/modules/apt/Rakefile
CHANGED
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
# true, Puppet will purge all unmanaged entries from sources.list
|
|
13
13
|
# purge_sources_list_d - Accepts true or false. Defaults to false. If set
|
|
14
14
|
# to true, Puppet will purge all unmanaged entries from sources.list.d
|
|
15
|
+
# update_timeout - Overrides the exec timeout in seconds for apt-get update.
|
|
16
|
+
# If not set defaults to Exec's default (300)
|
|
15
17
|
#
|
|
16
18
|
# Actions:
|
|
17
19
|
#
|
|
@@ -27,7 +29,8 @@ class apt(
|
|
|
27
29
|
$proxy_port = '8080',
|
|
28
30
|
$purge_sources_list = false,
|
|
29
31
|
$purge_sources_list_d = false,
|
|
30
|
-
$purge_preferences_d = false
|
|
32
|
+
$purge_preferences_d = false,
|
|
33
|
+
$update_timeout = undef
|
|
31
34
|
) {
|
|
32
35
|
|
|
33
36
|
include apt::params
|
|
@@ -42,7 +42,7 @@ define apt::ppa(
|
|
|
42
42
|
exec { "add-apt-repository-${name}":
|
|
43
43
|
environment => $proxy_env,
|
|
44
44
|
command => "/usr/bin/add-apt-repository ${options} ${name}",
|
|
45
|
-
|
|
45
|
+
unless => "/usr/bin/test -s ${sources_list_d}/${sources_list_d_filename}",
|
|
46
46
|
logoutput => 'on_failure',
|
|
47
47
|
notify => Exec['apt_update'],
|
|
48
48
|
require => [
|