poolparty 0.2.69 → 0.2.84
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/Capfile +1 -0
- data/History.txt +6 -0
- data/Manifest.txt +140 -143
- data/PostInstall.txt +1 -1
- data/README.txt +2 -0
- data/bin/cloud-configure +5 -2
- data/bin/cloud-handle-load +3 -3
- data/bin/cloud-maintain +3 -3
- data/bin/cloud-provision +6 -5
- data/bin/cloud-rsync +28 -0
- data/bin/cloud-setup-dev +25 -0
- data/bin/cloud-spec +40 -0
- data/bin/cloud-start +5 -3
- data/bin/server-clean-cert-for +15 -0
- data/bin/server-rerun +0 -1
- data/bin/server-start-client +1 -1
- data/bin/server-start-master +1 -1
- data/bin/server-start-node +1 -1
- data/bin/server-update-hosts +4 -3
- data/bin/server-write-new-nodes +26 -0
- data/generators/poolspec/USAGE +2 -2
- data/generators/poolspec/poolspec_generator.rb +1 -1
- data/lib/erlang/messenger/Makefile +15 -0
- data/lib/erlang/messenger/ebin/client_app.beam +0 -0
- data/lib/erlang/messenger/ebin/client_server.beam +0 -0
- data/lib/erlang/messenger/ebin/erl_crash.dump +10326 -0
- data/lib/erlang/messenger/ebin/master_app.beam +0 -0
- data/lib/erlang/messenger/ebin/node_app.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_client_old.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_client_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_event_manager.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master_event_handler.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_spawner.beam +0 -0
- data/lib/erlang/messenger/ebin/pm_strings.beam +0 -0
- data/lib/erlang/messenger/ebin/utils.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/Makefile +28 -0
- data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
- data/lib/erlang/messenger/lib/eunit/src/Makefile +46 -0
- data/lib/erlang/messenger/src/pm_master.erl +5 -0
- data/lib/erlang/messenger/src/pm_node.erl +2 -3
- data/lib/erlang/messenger/src/pm_spawner.erl +213 -0
- data/lib/poolparty/base_packages/heartbeat.rb +57 -43
- data/lib/poolparty/base_packages/poolparty.rb +18 -15
- data/lib/poolparty/capistrano.rb +18 -0
- data/lib/poolparty/core/class.rb +24 -0
- data/lib/poolparty/core/kernel.rb +7 -0
- data/lib/poolparty/core/module.rb +2 -2
- data/lib/poolparty/core/string.rb +1 -1
- data/lib/poolparty/dependency_resolutions/puppet.rb +10 -2
- data/lib/poolparty/exceptions/ProvisionerException.rb +5 -0
- data/lib/poolparty/extra/deployments.rb +31 -0
- data/lib/poolparty/helpers/binary.rb +14 -2
- data/lib/poolparty/helpers/optioner.rb +61 -22
- data/lib/poolparty/helpers/ruberl.rb +33 -0
- data/lib/poolparty/modules/cloud_dsl.rb +2 -1
- data/lib/poolparty/modules/cloud_resourcer.rb +30 -6
- data/lib/poolparty/modules/configurable.rb +2 -0
- data/lib/poolparty/modules/file_writer.rb +4 -4
- data/lib/poolparty/modules/resourcing_dsl.rb +5 -5
- data/lib/poolparty/monitors/base_monitor.rb +1 -1
- data/lib/poolparty/monitors/monitors/cpu_monitor.rb +2 -2
- data/lib/poolparty/net/messenger.rb +1 -1
- data/lib/poolparty/net/remote.rb +2 -2
- data/lib/poolparty/net/remote_bases/ec2.rb +51 -11
- data/lib/poolparty/net/remote_instance.rb +7 -3
- data/lib/poolparty/net/remoter.rb +72 -24
- data/lib/poolparty/net/remoter_base.rb +10 -0
- data/lib/poolparty/plugins/deploydirectory.rb +10 -5
- data/lib/poolparty/plugins/git.rb +51 -0
- data/lib/poolparty/{pool → poolparty}/base.rb +4 -2
- data/lib/poolparty/{pool → poolparty}/cloud.rb +32 -10
- data/lib/poolparty/{pool → poolparty}/plugin_model.rb +4 -4
- data/lib/poolparty/{pool → poolparty}/pool.rb +2 -2
- data/lib/poolparty/{pool → poolparty}/resource.rb +33 -15
- data/lib/poolparty/{pool → poolparty}/resources/class_package.rb +3 -3
- data/lib/poolparty/{pool → poolparty}/resources/directory.rb +6 -3
- data/lib/poolparty/{pool → poolparty}/resources/exec.rb +2 -5
- data/lib/poolparty/{pool → poolparty}/resources/file.rb +3 -3
- data/lib/poolparty/{pool → poolparty}/resources/package.rb +1 -1
- data/lib/poolparty/{pool → poolparty}/resources/remote_file.rb +1 -1
- data/lib/poolparty/poolparty/resources/remote_user.rb +17 -0
- data/lib/poolparty/{pool → poolparty}/resources/sshkey.rb +5 -1
- data/lib/poolparty/{pool → poolparty}/script.rb +1 -1
- data/lib/poolparty/provisioners/capistrano/capistrano.rb +127 -0
- data/lib/poolparty/provisioners/capistrano/capistrano_configurer.rb +58 -0
- data/lib/poolparty/provisioners/capistrano/recipies/base.rb +104 -0
- data/lib/poolparty/provisioners/capistrano/recipies/master.rb +121 -0
- data/lib/poolparty/provisioners/capistrano/recipies/slave.rb +12 -0
- data/lib/poolparty/provisioners/provisioner_base.rb +204 -0
- data/lib/poolparty/spec/core/string.rb +16 -0
- data/lib/poolparty/spec/matchers/a_spec_extensions_base.rb +26 -0
- data/lib/poolparty/spec/matchers/have_cron.rb +28 -0
- data/lib/poolparty/spec/matchers/have_deploydirectory.rb +15 -0
- data/lib/poolparty/spec/matchers/have_directory.rb +31 -0
- data/lib/poolparty/spec/matchers/have_exec.rb +28 -0
- data/lib/poolparty/spec/matchers/have_file.rb +28 -0
- data/lib/poolparty/spec/matchers/have_gempackage.rb +28 -0
- data/lib/poolparty/spec/matchers/have_git.rb +28 -0
- data/lib/poolparty/spec/matchers/have_host.rb +28 -0
- data/lib/poolparty/spec/matchers/have_mount.rb +28 -0
- data/lib/poolparty/spec/matchers/have_package.rb +28 -0
- data/lib/poolparty/spec/matchers/have_remotefile.rb +28 -0
- data/lib/poolparty/spec/matchers/have_rsyncmirror.rb +28 -0
- data/lib/poolparty/spec/matchers/have_service.rb +28 -0
- data/lib/poolparty/spec/matchers/have_sshkey.rb +28 -0
- data/lib/poolparty/spec/matchers/have_symlink.rb +28 -0
- data/lib/poolparty/spec/matchers/have_variable.rb +32 -0
- data/lib/poolparty/spec/spec/dynamic_matchers.rb +63 -0
- data/lib/poolparty/spec/spec/ensure_matchers_exist.rb +7 -0
- data/lib/poolparty/spec/templates/have_base.rb +28 -0
- data/lib/poolparty/templates/authkeys +1 -1
- data/lib/poolparty/templates/gem +12 -10
- data/lib/poolparty/templates/ha.cf +9 -11
- data/lib/poolparty/templates/haresources +1 -1
- data/lib/poolparty/templates/logd.cf +42 -0
- data/lib/poolparty/templates/puppet.conf +18 -8
- data/lib/poolparty/templates/puppetcleaner +9 -3
- data/lib/poolparty/templates/puppetrerun +16 -3
- data/lib/poolparty/templates/puppetrunner +1 -1
- data/lib/poolparty/version.rb +1 -1
- data/lib/poolparty.rb +12 -8
- data/lib/poolpartyspec.rb +34 -0
- data/poolparty.gemspec +151 -149
- data/spec/poolparty/aska/aska_spec.rb +0 -5
- data/spec/poolparty/bin/console_spec.rb +3 -0
- data/spec/poolparty/extra/deployments_spec.rb +64 -0
- data/spec/poolparty/helpers/binary_spec.rb +1 -1
- data/spec/poolparty/helpers/optioner_spec.rb +17 -4
- data/spec/poolparty/modules/cloud_resourcer_spec.rb +19 -2
- data/spec/poolparty/modules/configurable_spec.rb +2 -2
- data/spec/poolparty/net/remote_bases/ec2_spec.rb +5 -2
- data/spec/poolparty/net/remote_instance_spec.rb +5 -0
- data/spec/poolparty/net/remote_spec.rb +24 -31
- data/spec/poolparty/net/remoter_base_spec.rb +11 -6
- data/spec/poolparty/net/remoter_spec.rb +55 -27
- data/spec/poolparty/plugins/deploydirectory_spec.rb +1 -0
- data/spec/poolparty/plugins/git_spec.rb +45 -0
- data/spec/poolparty/{pool → poolparty}/cloud_spec.rb +41 -0
- data/spec/poolparty/{pool → poolparty}/plugin_spec.rb +1 -1
- data/spec/poolparty/{pool → poolparty}/pool_spec.rb +1 -1
- data/spec/poolparty/{pool → poolparty}/resource_spec.rb +15 -2
- data/spec/poolparty/poolparty/resources/user_spec.rb +38 -0
- data/spec/poolparty/poolparty/test_plugins/virtual_host_template.erb +0 -0
- data/spec/poolparty/poolparty_spec.rb +1 -1
- data/spec/poolparty/provisioners/capistrano/capistrano_spec.rb +27 -0
- data/spec/poolparty/provisioners/provisioner_base_spec.rb +120 -0
- data/spec/poolparty/spec/core/string_spec.rb +57 -0
- data/spec/poolparty/spec_helper.rb +48 -6
- data/tasks/deployment.rake +3 -5
- data/tasks/spec.rake +2 -3
- data/website/index.html +2 -2
- metadata +150 -148
- data/lib/erlang/messenger/lib/eunit/.svn/all-wcprops +0 -53
- data/lib/erlang/messenger/lib/eunit/.svn/entries +0 -140
- data/lib/erlang/messenger/lib/eunit/.svn/format +0 -1
- data/lib/erlang/messenger/lib/eunit/.svn/prop-base/NOTES.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/.svn/text-base/AUTHORS.svn-base +0 -2
- data/lib/erlang/messenger/lib/eunit/.svn/text-base/CHANGELOG.svn-base +0 -14
- data/lib/erlang/messenger/lib/eunit/.svn/text-base/COPYING.svn-base +0 -504
- data/lib/erlang/messenger/lib/eunit/.svn/text-base/NOTES.svn-base +0 -276
- data/lib/erlang/messenger/lib/eunit/.svn/text-base/README.svn-base +0 -3
- data/lib/erlang/messenger/lib/eunit/.svn/text-base/sys.config.svn-base +0 -9
- data/lib/erlang/messenger/lib/eunit/.svn/text-base/vsn.mk.svn-base +0 -1
- data/lib/erlang/messenger/lib/eunit/doc/.svn/all-wcprops +0 -59
- data/lib/erlang/messenger/lib/eunit/doc/.svn/entries +0 -142
- data/lib/erlang/messenger/lib/eunit/doc/.svn/format +0 -1
- data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/erlang.png.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/eunit.html.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/index.html.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/modules-frame.html.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/overview-summary.html.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/doc/.svn/prop-base/packages-frame.html.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/edoc-info.svn-base +0 -3
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/erlang.png.svn-base +0 -0
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/eunit.html.svn-base +0 -172
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/index.html.svn-base +0 -17
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/modules-frame.html.svn-base +0 -12
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/overview-summary.html.svn-base +0 -984
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/overview.edoc.svn-base +0 -980
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/packages-frame.html.svn-base +0 -11
- data/lib/erlang/messenger/lib/eunit/doc/.svn/text-base/stylesheet.css.svn-base +0 -55
- data/lib/erlang/messenger/lib/eunit/ebin/.svn/all-wcprops +0 -5
- data/lib/erlang/messenger/lib/eunit/ebin/.svn/dir-prop-base +0 -8
- data/lib/erlang/messenger/lib/eunit/ebin/.svn/entries +0 -28
- data/lib/erlang/messenger/lib/eunit/ebin/.svn/format +0 -1
- data/lib/erlang/messenger/lib/eunit/examples/.svn/all-wcprops +0 -23
- data/lib/erlang/messenger/lib/eunit/examples/.svn/entries +0 -66
- data/lib/erlang/messenger/lib/eunit/examples/.svn/format +0 -1
- data/lib/erlang/messenger/lib/eunit/examples/.svn/prop-base/eunit_examples.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/examples/.svn/prop-base/fib.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/examples/.svn/text-base/eunit_examples.erl.svn-base +0 -339
- data/lib/erlang/messenger/lib/eunit/examples/.svn/text-base/fib.erl.svn-base +0 -19
- data/lib/erlang/messenger/lib/eunit/examples/.svn/text-base/tests.txt.svn-base +0 -1
- data/lib/erlang/messenger/lib/eunit/include/.svn/all-wcprops +0 -11
- data/lib/erlang/messenger/lib/eunit/include/.svn/entries +0 -41
- data/lib/erlang/messenger/lib/eunit/include/.svn/format +0 -1
- data/lib/erlang/messenger/lib/eunit/include/.svn/prop-base/eunit.hrl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/include/.svn/text-base/eunit.hrl.svn-base +0 -313
- data/lib/erlang/messenger/lib/eunit/src/.svn/all-wcprops +0 -113
- data/lib/erlang/messenger/lib/eunit/src/.svn/entries +0 -259
- data/lib/erlang/messenger/lib/eunit/src/.svn/format +0 -1
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/autoload.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/code_monitor.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_autoexport.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_data.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_internal.hrl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_lib.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_proc.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_serial.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_server.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_striptests.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_test.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_tests.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/eunit_tty.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/prop-base/file_monitor.erl.svn-base +0 -5
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/autoload.erl.svn-base +0 -388
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/code_monitor.erl.svn-base +0 -243
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit.app.src.svn-base +0 -21
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit.appup.src.svn-base +0 -1
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit.erl.svn-base +0 -196
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_autoexport.erl.svn-base +0 -102
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_data.erl.svn-base +0 -798
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_internal.hrl.svn-base +0 -48
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_lib.erl.svn-base +0 -682
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_proc.erl.svn-base +0 -552
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_serial.erl.svn-base +0 -157
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_server.erl.svn-base +0 -340
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_striptests.erl.svn-base +0 -64
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_test.erl.svn-base +0 -334
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_tests.erl.svn-base +0 -45
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/eunit_tty.erl.svn-base +0 -272
- data/lib/erlang/messenger/lib/eunit/src/.svn/text-base/file_monitor.erl.svn-base +0 -409
- data/lib/erlang/messenger/src/pm_client_old.erl +0 -52
- data/lib/poolparty/helpers/provisioner_base.rb +0 -346
- data/lib/poolparty/helpers/provisioners/master.rb +0 -205
- data/lib/poolparty/helpers/provisioners/slave.rb +0 -64
- data/spec/poolparty/helpers/provisioner_base_spec.rb +0 -134
- data/spec/poolparty/helpers/provisioners/master_spec.rb +0 -54
- data/spec/poolparty/helpers/provisioners/slave_spec.rb +0 -28
- /data/lib/poolparty/{pool → poolparty}/custom_resource.rb +0 -0
- /data/lib/poolparty/{pool → poolparty}/loggable.rb +0 -0
- /data/lib/poolparty/{pool → poolparty}/plugin.rb +0 -0
- /data/lib/poolparty/{pool → poolparty}/resources/conditional.rb +0 -0
- /data/lib/poolparty/{pool → poolparty}/resources/cron.rb +0 -0
- /data/lib/poolparty/{pool → poolparty}/resources/custom_service.rb +0 -0
- /data/lib/poolparty/{pool → poolparty}/resources/gem_package.rb +0 -0
- /data/lib/poolparty/{pool → poolparty}/resources/host.rb +0 -0
- /data/lib/poolparty/{pool → poolparty}/resources/mount.rb +0 -0
- /data/lib/poolparty/{pool → poolparty}/resources/service.rb +0 -0
- /data/lib/poolparty/{pool → poolparty}/resources/symlink.rb +0 -0
- /data/lib/poolparty/{pool → poolparty}/resources/variable.rb +0 -0
- /data/log/{pool.logs → pool.log} +0 -0
- /data/spec/poolparty/{pool/test_plugins/virtual_host_template.erb → net/log/pool.log} +0 -0
- /data/spec/poolparty/{pool → poolparty}/base_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/configurers/files/ruby_basic.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/configurers/files/ruby_plugins.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/configurers/ruby_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/custom_resource_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/example_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/plugin_model_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/resources/class_package_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/resources/conditional_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/resources/cron_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/resources/directory_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/resources/exec_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/resources/file_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/resources/gem_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/resources/host_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/resources/package_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/resources/remote_file_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/resources/service_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/resources/sshkey_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/resources/symlink_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/resources/variable_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/script_spec.rb +0 -0
- /data/spec/poolparty/{pool → poolparty}/test_plugins/sshkey_test +0 -0
- /data/spec/poolparty/{pool → poolparty}/test_plugins/webserver.rb +0 -0
|
@@ -1,346 +0,0 @@
|
|
|
1
|
-
=begin rdoc
|
|
2
|
-
The Provisioner is responsible for provisioning REMOTE servers
|
|
3
|
-
This class only comes in to play when calling the setup commands on
|
|
4
|
-
the development machine
|
|
5
|
-
=end
|
|
6
|
-
module PoolParty
|
|
7
|
-
module Provisioner
|
|
8
|
-
|
|
9
|
-
# Provision master
|
|
10
|
-
# Convenience method to clean
|
|
11
|
-
def self.provision_master(cloud, testing=false)
|
|
12
|
-
Provisioner::Master.new(cloud).process_install!(testing)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def self.configure_master(cloud, testing=false)
|
|
16
|
-
Provisioner::Master.new(cloud).process_configure!(testing)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def self.reconfigure_master(cloud, testing=false)
|
|
20
|
-
Provisioner::Master.new(cloud).process_reconfigure!(testing)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def self.provision_slaves(cloud, testing=false)
|
|
24
|
-
cloud.nonmaster_nonterminated_instances.each do |sl|
|
|
25
|
-
provision_slave(sl, cloud, testing)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def self.configure_slaves(cloud, testing=false)
|
|
30
|
-
cloud.nonmaster_nonterminated_instances.each do |sl|
|
|
31
|
-
configure_slave(sl, cloud, testing)
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def self.provision_slave(instance, cloud, testing=false)
|
|
36
|
-
Provisioner::Slave.new(instance, cloud).process_install!(testing)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def self.configure_slave(instance, cloud, testing=false)
|
|
40
|
-
Provisioner::Slave.new(instance, cloud).process_configure!(testing)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def self.process_clean_reconfigure_for!(instance, cloud, testing=false)
|
|
44
|
-
Provisioner::Master.new(cloud).process_clean_reconfigure_for!(instance, testing)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def self.clear_master_ssl_certs(cloud, testing=false)
|
|
48
|
-
Provisioner::Master.new(cloud).clear_master_ssl_certs
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
class ProvisionerBase
|
|
52
|
-
|
|
53
|
-
include Configurable
|
|
54
|
-
include CloudResourcer
|
|
55
|
-
include FileWriter
|
|
56
|
-
|
|
57
|
-
def initialize(instance,cld=self, os=:ubuntu)
|
|
58
|
-
@instance = instance
|
|
59
|
-
@cloud = cld
|
|
60
|
-
|
|
61
|
-
options(cloud.options) if cloud && cloud.respond_to?(:options)
|
|
62
|
-
set_vars_from_options(instance.options) unless instance.nil? || !instance.options || !instance.options.empty?
|
|
63
|
-
options(instance.options) if instance.respond_to?(:options)
|
|
64
|
-
|
|
65
|
-
@os = os.to_s.downcase.to_sym
|
|
66
|
-
loaded
|
|
67
|
-
end
|
|
68
|
-
# Callback after initialized
|
|
69
|
-
def loaded(opts={}, parent=self)
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
### Installation tasks
|
|
73
|
-
|
|
74
|
-
# This is the actual runner for the installation
|
|
75
|
-
def install
|
|
76
|
-
valid? ? install_string : error
|
|
77
|
-
end
|
|
78
|
-
# Write the installation tasks to a file in the storage directory
|
|
79
|
-
def write_install_file
|
|
80
|
-
error unless valid?
|
|
81
|
-
::FileUtils.mkdir_p Base.storage_directory unless ::File.exists?(Base.storage_directory)
|
|
82
|
-
provisioner_file = ::File.join(Base.storage_directory, "install_#{name}.sh")
|
|
83
|
-
::File.open(provisioner_file, "w+") {|f| f << install }
|
|
84
|
-
end
|
|
85
|
-
def name
|
|
86
|
-
@instance.name
|
|
87
|
-
end
|
|
88
|
-
# TODO: Clean up this method
|
|
89
|
-
def process_install!(testing=false)
|
|
90
|
-
error unless valid?
|
|
91
|
-
write_install_file
|
|
92
|
-
setup_runner
|
|
93
|
-
|
|
94
|
-
unless testing
|
|
95
|
-
vputs "Logging on to #{@instance.ip} (#{@instance.name})"
|
|
96
|
-
@cloud.rsync_storage_files_to(@instance)
|
|
97
|
-
vputs "Preparing configuration on the master"
|
|
98
|
-
|
|
99
|
-
before_install(@instance)
|
|
100
|
-
|
|
101
|
-
process_clean_reconfigure_for!(@instance, testing)
|
|
102
|
-
|
|
103
|
-
vputs "Logging in and running provisioning on #{@instance.name}"
|
|
104
|
-
cmd = "cd #{Base.remote_storage_path} && /bin/chmod +x install_#{name}.sh && /bin/sh install_#{name}.sh; /bin/rm install_#{name}.sh"
|
|
105
|
-
verbose ? @cloud.run_command_on(cmd, @instance) : hide_output {@cloud.run_command_on(cmd, @instance)}
|
|
106
|
-
|
|
107
|
-
process_clean_reconfigure_for!(@instance, testing)
|
|
108
|
-
|
|
109
|
-
after_install(@instance)
|
|
110
|
-
end
|
|
111
|
-
end
|
|
112
|
-
# Install callbacks
|
|
113
|
-
# Before installation callback
|
|
114
|
-
def before_install(instance)
|
|
115
|
-
end
|
|
116
|
-
def after_install(instance)
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
### Configuraton tasks
|
|
120
|
-
|
|
121
|
-
def configure
|
|
122
|
-
valid? ? configure_string : error
|
|
123
|
-
end
|
|
124
|
-
def write_configure_file
|
|
125
|
-
error unless valid?
|
|
126
|
-
provisioner_file = ::File.join(Base.storage_directory, "configure_#{name}.sh")
|
|
127
|
-
::File.open(provisioner_file, "w+") {|f| f << configure }
|
|
128
|
-
end
|
|
129
|
-
def process_configure!(testing=false)
|
|
130
|
-
error unless valid?
|
|
131
|
-
write_configure_file
|
|
132
|
-
setup_runner
|
|
133
|
-
|
|
134
|
-
unless testing
|
|
135
|
-
vputs "Logging on to #{@instance.ip}"
|
|
136
|
-
@cloud.rsync_storage_files_to(@instance)
|
|
137
|
-
|
|
138
|
-
cmd = "cd #{Base.remote_storage_path} && /bin/chmod +x configure_#{name}.sh && /bin/sh configure_#{name}.sh && /bin/rm configure_#{name}.sh"
|
|
139
|
-
verbose ? @cloud.run_command_on(cmd, @instance) : hide_output {@cloud.run_command_on(cmd, @instance)}
|
|
140
|
-
end
|
|
141
|
-
end
|
|
142
|
-
def process_clean_reconfigure_for!(instance, testing=false)
|
|
143
|
-
if instance.is_a?(String)
|
|
144
|
-
name = instance
|
|
145
|
-
instance = MyOpenStruct.new(:name => name)
|
|
146
|
-
end
|
|
147
|
-
vputs "Cleaning certs from master: #{instance.name}"
|
|
148
|
-
# puppetca --clean #{instance.name}.compute-1.internal; puppetca --clean #{instance.name}.ec2.internal
|
|
149
|
-
# find /etc/puppet/ssl -type f -exec rm {} \;
|
|
150
|
-
unless testing
|
|
151
|
-
# @cloud.run_command_on("rm -rf /etc/puppet/ssl", instance) unless instance.master?
|
|
152
|
-
str = returning String.new do |s|
|
|
153
|
-
s << "puppetca --clean #{instance.name}.compute-1.internal 2>&1 > /dev/null;"
|
|
154
|
-
s << "puppetca --clean #{instance.name}.ec2.internal 2>&1 > /dev/null"
|
|
155
|
-
end
|
|
156
|
-
@cloud.run_command_on(str, @cloud.master)
|
|
157
|
-
end
|
|
158
|
-
end
|
|
159
|
-
def clear_master_ssl_certs
|
|
160
|
-
str = returning String.new do |s|
|
|
161
|
-
s << "puppetca --clean master.compute-1.internal 2>&1 > /dev/null;"
|
|
162
|
-
s << "puppetca --clean master.ec2.internal 2>&1 > /dev/null"
|
|
163
|
-
end
|
|
164
|
-
@cloud.run_command_on("if [ -f '/usr/bin/puppetcleaner' ]; then /usr/bin/env puppetcleaner; else #{str}; fi", @cloud.master)
|
|
165
|
-
end
|
|
166
|
-
def process_reconfigure!(testing=false)
|
|
167
|
-
@cloud.run_command_on(PoolParty::Remote::RemoteInstance.puppet_runner_command, @instance) unless testing
|
|
168
|
-
end
|
|
169
|
-
# Tasks that need to be performed everytime we do any
|
|
170
|
-
# remote ssh'ing into any instance
|
|
171
|
-
def setup_runner(force=false)
|
|
172
|
-
@cloud.prepare_for_configuration
|
|
173
|
-
@cloud.build_and_store_new_config_file(force)
|
|
174
|
-
end
|
|
175
|
-
def valid?
|
|
176
|
-
true
|
|
177
|
-
end
|
|
178
|
-
def error
|
|
179
|
-
"Error in installation"
|
|
180
|
-
end
|
|
181
|
-
# Gather all the tasks into one string
|
|
182
|
-
def install_string
|
|
183
|
-
[default_install_tasks, last_install_tasks].flatten.each do |task|
|
|
184
|
-
case task.class
|
|
185
|
-
when String
|
|
186
|
-
task
|
|
187
|
-
when Method
|
|
188
|
-
self.send(task.to_sym)
|
|
189
|
-
end
|
|
190
|
-
end.nice_runnable
|
|
191
|
-
end
|
|
192
|
-
def last_install_tasks
|
|
193
|
-
[]
|
|
194
|
-
end
|
|
195
|
-
def configure_string
|
|
196
|
-
[default_configure_tasks, last_configure_tasks].flatten.each do |task|
|
|
197
|
-
case task.class
|
|
198
|
-
when String
|
|
199
|
-
task
|
|
200
|
-
when Method
|
|
201
|
-
self.send(task.to_sym)
|
|
202
|
-
end
|
|
203
|
-
end.nice_runnable
|
|
204
|
-
end
|
|
205
|
-
def last_configure_tasks
|
|
206
|
-
[]
|
|
207
|
-
end
|
|
208
|
-
# Tasks with default tasks
|
|
209
|
-
# These are run on all the provisioners, master or slave
|
|
210
|
-
def default_install_tasks
|
|
211
|
-
[
|
|
212
|
-
"#!/usr/bin/env sh",
|
|
213
|
-
upgrade_system,
|
|
214
|
-
fix_rubygems,
|
|
215
|
-
make_logger_directory,
|
|
216
|
-
install_puppet,
|
|
217
|
-
custom_install_tasks
|
|
218
|
-
] << install_tasks
|
|
219
|
-
end
|
|
220
|
-
# Tasks with default configuration tasks
|
|
221
|
-
# This is run on the provisioner, regardless
|
|
222
|
-
def default_configure_tasks
|
|
223
|
-
[
|
|
224
|
-
custom_configure_tasks
|
|
225
|
-
] << configure_tasks
|
|
226
|
-
end
|
|
227
|
-
# Build a list of the tasks to run on the instance
|
|
228
|
-
def install_tasks(a=[])
|
|
229
|
-
@install_task ||= a
|
|
230
|
-
end
|
|
231
|
-
def configure_tasks(a=[])
|
|
232
|
-
@configure_tasks ||= a
|
|
233
|
-
end
|
|
234
|
-
# Custom installation tasks
|
|
235
|
-
# Allow the remoter bases to attach their own tasks on the
|
|
236
|
-
# installation process
|
|
237
|
-
def custom_install_tasks
|
|
238
|
-
@cloud.custom_install_tasks_for(@instance) || []
|
|
239
|
-
end
|
|
240
|
-
# Custom configure tasks
|
|
241
|
-
# Allows the remoter bases to attach their own
|
|
242
|
-
# custom configuration tasks to the configuration process
|
|
243
|
-
def custom_configure_tasks
|
|
244
|
-
@cloud.custom_configure_tasks_for(@instance) || []
|
|
245
|
-
end
|
|
246
|
-
|
|
247
|
-
# Get the packages associated with each os
|
|
248
|
-
def puppet_packages
|
|
249
|
-
case @os
|
|
250
|
-
when :fedora
|
|
251
|
-
"puppet-server puppet factor"
|
|
252
|
-
else
|
|
253
|
-
"puppet puppetmaster"
|
|
254
|
-
end
|
|
255
|
-
end
|
|
256
|
-
# Package installers for general *nix operating systems
|
|
257
|
-
def self.installers
|
|
258
|
-
@installers ||= {
|
|
259
|
-
:ubuntu => "aptitude install -y",
|
|
260
|
-
:fedora => "yum install",
|
|
261
|
-
:gentoo => "emerge"
|
|
262
|
-
}
|
|
263
|
-
end
|
|
264
|
-
# Convenience method to grab the installer
|
|
265
|
-
def installer_for(names=[])
|
|
266
|
-
packages = names.is_a?(Array) ? names.join(" ") : names
|
|
267
|
-
"#{self.class.installers[@os]} #{packages}"
|
|
268
|
-
end
|
|
269
|
-
|
|
270
|
-
# Install from the class-level
|
|
271
|
-
def self.install(instance, cl=self)
|
|
272
|
-
new(instance, cl).install
|
|
273
|
-
end
|
|
274
|
-
|
|
275
|
-
def self.configure(instance, cl=self)
|
|
276
|
-
new(instance, cl).configure
|
|
277
|
-
end
|
|
278
|
-
|
|
279
|
-
# Template directory from the provisioner base
|
|
280
|
-
def template_directory
|
|
281
|
-
File.join(File.dirname(__FILE__), "..", "templates")
|
|
282
|
-
end
|
|
283
|
-
|
|
284
|
-
def fix_rubygems
|
|
285
|
-
<<-EOE
|
|
286
|
-
#{installer_for("ruby rubygems")}
|
|
287
|
-
gem update --system # Force rubygems update
|
|
288
|
-
echo '#{open(::File.join(template_directory, "gem")).read}' > /usr/bin/gem
|
|
289
|
-
EOE
|
|
290
|
-
end
|
|
291
|
-
|
|
292
|
-
def create_local_node
|
|
293
|
-
str = <<-EOS
|
|
294
|
-
node default {
|
|
295
|
-
include poolparty
|
|
296
|
-
}
|
|
297
|
-
EOS
|
|
298
|
-
@cloud.list_of_running_instances.each do |ri|
|
|
299
|
-
str << <<-EOS
|
|
300
|
-
node "#{ri.name}" {}
|
|
301
|
-
EOS
|
|
302
|
-
end
|
|
303
|
-
"echo '#{str}' > /etc/puppet/manifests/nodes/nodes.pp"
|
|
304
|
-
end
|
|
305
|
-
|
|
306
|
-
def upgrade_system
|
|
307
|
-
case @os
|
|
308
|
-
when :ubuntu
|
|
309
|
-
"
|
|
310
|
-
if grep -q 'http://mirrors.kernel.org/ubuntu hardy main universe' /etc/apt/sources.list
|
|
311
|
-
then
|
|
312
|
-
echo 'Updated already'
|
|
313
|
-
else
|
|
314
|
-
touch /etc/apt/sources.list
|
|
315
|
-
echo 'deb http://mirrors.kernel.org/ubuntu hardy main universe' >> /etc/apt/sources.list
|
|
316
|
-
aptitude update -y #{unix_hide_string} <<heredoc
|
|
317
|
-
Y
|
|
318
|
-
|
|
319
|
-
heredoc
|
|
320
|
-
fi
|
|
321
|
-
"
|
|
322
|
-
else
|
|
323
|
-
"# No system upgrade needed"
|
|
324
|
-
end
|
|
325
|
-
end
|
|
326
|
-
|
|
327
|
-
def install_puppet
|
|
328
|
-
"#{installer_for( puppet_packages )}"
|
|
329
|
-
end
|
|
330
|
-
|
|
331
|
-
def make_logger_directory
|
|
332
|
-
"mkdir -p /var/log/poolparty"
|
|
333
|
-
end
|
|
334
|
-
|
|
335
|
-
def create_poolparty_manifest
|
|
336
|
-
<<-EOS
|
|
337
|
-
cp #{Base.remote_storage_path}/poolparty.pp /etc/puppet/manifests/classes
|
|
338
|
-
EOS
|
|
339
|
-
end
|
|
340
|
-
end
|
|
341
|
-
end
|
|
342
|
-
end
|
|
343
|
-
## Load the provisioners
|
|
344
|
-
Dir[File.dirname(__FILE__) + "/provisioners/*.rb"].each do |file|
|
|
345
|
-
require file
|
|
346
|
-
end
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
module PoolParty
|
|
2
|
-
module Provisioner
|
|
3
|
-
class Master < ProvisionerBase
|
|
4
|
-
|
|
5
|
-
def initialize(cl=self, os=:ubuntu)
|
|
6
|
-
raise MasterException.new(:no_ip) unless cl.master && cl.master.ip
|
|
7
|
-
super(cl.master, cl, os)
|
|
8
|
-
@master_ip = cl.master.ip
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def valid?
|
|
12
|
-
!(@cloud.nil? || @cloud.master.nil?)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def error
|
|
16
|
-
raise RemoteException.new(:could_not_install, "Your cloud does not have a master")
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def install_tasks
|
|
20
|
-
[
|
|
21
|
-
create_local_hosts_entry,
|
|
22
|
-
setup_basic_structure,
|
|
23
|
-
setup_configs,
|
|
24
|
-
setup_fileserver,
|
|
25
|
-
setup_autosigning,
|
|
26
|
-
install_poolparty,
|
|
27
|
-
setup_poolparty,
|
|
28
|
-
restart_puppetmaster,
|
|
29
|
-
run_first_time,
|
|
30
|
-
create_local_node,
|
|
31
|
-
] << configure_tasks
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def configure_tasks
|
|
35
|
-
[
|
|
36
|
-
create_local_node,
|
|
37
|
-
move_templates,
|
|
38
|
-
create_poolparty_manifest,
|
|
39
|
-
restart_puppetd
|
|
40
|
-
]
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# If the master is not in the hosts file, then add it to the hosts file
|
|
44
|
-
def create_local_hosts_entry
|
|
45
|
-
<<-EOS
|
|
46
|
-
echo "Creating local host entry"
|
|
47
|
-
if [ -z \"$(grep -v '#' /etc/hosts | grep 'puppet')" ]; then echo '#{@master_ip} puppet master localhost' >> /etc/hosts; fi
|
|
48
|
-
hostname master
|
|
49
|
-
EOS
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def setup_basic_structure
|
|
53
|
-
<<-EOS
|
|
54
|
-
echo "Creating basic structure for poolparty"
|
|
55
|
-
mkdir -p /etc/puppet/manifests/nodes
|
|
56
|
-
mkdir -p /etc/puppet/manifests/classes
|
|
57
|
-
echo "import 'nodes/*.pp'" > /etc/puppet/manifests/site.pp
|
|
58
|
-
echo "import 'classes/*.pp'" >> /etc/puppet/manifests/site.pp
|
|
59
|
-
cp #{Base.remote_storage_path}/namespaceauth.conf /etc/puppet/namespaceauth.conf
|
|
60
|
-
EOS
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def setup_configs
|
|
64
|
-
<<-EOS
|
|
65
|
-
echo "Setting up configuration"
|
|
66
|
-
echo "#{open(File.join(template_directory, "puppet.conf")).read}" > /etc/puppet/puppet.conf
|
|
67
|
-
EOS
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
def setup_fileserver
|
|
71
|
-
<<-EOS
|
|
72
|
-
echo "Setting up the master fileserver"
|
|
73
|
-
echo "
|
|
74
|
-
[files]
|
|
75
|
-
path #{Base.remote_storage_path}
|
|
76
|
-
allow *" > /etc/puppet/fileserver.conf
|
|
77
|
-
mkdir -p /var/poolparty/facts
|
|
78
|
-
mkdir -p /var/poolparty/files
|
|
79
|
-
mkdir -p /etc/poolparty
|
|
80
|
-
EOS
|
|
81
|
-
end
|
|
82
|
-
# Change this eventually for better security supportsetup_fileserver
|
|
83
|
-
def setup_autosigning
|
|
84
|
-
<<-EOS
|
|
85
|
-
echo "Creating accessibility for the nodes"
|
|
86
|
-
echo "*" > /etc/puppet/autosign.conf
|
|
87
|
-
EOS
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
def setup_poolparty
|
|
91
|
-
<<-EOS
|
|
92
|
-
echo "Setting the poolparty configuration"
|
|
93
|
-
cp #{Base.remote_storage_path}/#{Base.key_file_locations.first} "#{Base.base_config_directory}/.ppkeys"
|
|
94
|
-
cp #{Base.remote_storage_path}/#{Base.default_specfile_name} #{Base.base_config_directory}/#{Base.default_specfile_name}
|
|
95
|
-
EOS
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
def copy_ssh_app
|
|
99
|
-
"cp #{Base.remote_storage_path}/#{@cloud.full_keypair_name} #{@cloud.remote_keypair_path}" if @cloud.remote_keypair_path != "#{Base.remote_storage_path}/#{@cloud.full_keypair_name}"
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def install_poolparty
|
|
103
|
-
<<-EOE
|
|
104
|
-
echo "Installing poolparty"
|
|
105
|
-
cd /var/poolparty
|
|
106
|
-
wget http://rubyforge.org/frs/download.php/44731/logging-0.9.4.gem -O logging.gem 2>&1
|
|
107
|
-
wget http://rubyforge.org/frs/download.php/45581/ZenTest-3.11.0.gem -O ZenTest.gem 2>&1
|
|
108
|
-
wget http://rubyforge.org/frs/download.php/45600/ParseTree-3.0.1.gem -O ParseTree.gem 2>&1
|
|
109
|
-
wget http://rubyforge.org/frs/download.php/45587/ruby2ruby-1.2.0.gem -O ruby2ruby.gem 2>&1
|
|
110
|
-
wget http://rubyforge.org/frs/download.php/45627/activesupport-2.1.2.gem -O activesupport.gem 2>&1
|
|
111
|
-
wget http://rubyforge.org/frs/download.php/18366/xml-simple-1.0.11.gem -O xml-simple.gem 2>&1
|
|
112
|
-
wget http://rubyforge.org/frs/download.php/45683/RubyInline-3.8.1.gem -O RubyInline.gem 2>&1
|
|
113
|
-
wget http://rubyforge.org/frs/download.php/42580/flexmock-0.8.3.gem -O flexmock.gem 2>&1
|
|
114
|
-
wget http://rubyforge.org/frs/download.php/45685/hoe-1.8.2.gem -O hoe.gem 2>&1
|
|
115
|
-
wget http://rubyforge.org/frs/download.php/18698/lockfile-1.4.3.gem -O lockfile.gem 2>&1
|
|
116
|
-
wget http://rubyforge.org/frs/download.php/45546/rubyforge-1.0.1.gem -O rubyforge.gem 2>&1
|
|
117
|
-
wget http://rubyforge.org/frs/download.php/43954/rake-0.8.3.gem -O rake.gem 2>&1
|
|
118
|
-
wget http://rubyforge.org/frs/download.php/45589/sexp_processor-3.0.0.gem -O sexp_processor.gem 2>&1
|
|
119
|
-
wget http://github.com/auser/poolparty/tree/master%2Fpkg%2Fpoolparty.gem?raw=true -O poolparty.gem 2>&1
|
|
120
|
-
# wget http://rubyforge.org/frs/download.php/43666/amazon-ec2-0.3.1.gem -O amazon-ec2.gem 2>&1
|
|
121
|
-
|
|
122
|
-
#{
|
|
123
|
-
%w(rake lockfile rubyforge hoe ZenTest sexp_processor flexmock logging activesupport
|
|
124
|
-
RubyInline ParseTree ruby2ruby xml-simple poolparty).map do |dep|
|
|
125
|
-
"gem install --ignore-dependencies -y --no-ri --no-rdoc #{dep}.gem #{unix_hide_string}"
|
|
126
|
-
end.join("\n")
|
|
127
|
-
}
|
|
128
|
-
EOE
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
# ps aux | grep puppetmasterd | awk '{print $2}' | xargs kill
|
|
132
|
-
# /etc/init.d/puppetmaster stop; rm -rf /etc/puppet/ssl; /etc/init.d/puppetmaster start
|
|
133
|
-
def restart_puppetmaster
|
|
134
|
-
<<-EOS
|
|
135
|
-
echo "(Re)starting poolparty"
|
|
136
|
-
. /etc/profile
|
|
137
|
-
# /etc/init.d/puppetmaster stop #{unix_hide_string}
|
|
138
|
-
ps aux | grep puppetmaster | awk '{print $2}' | xargs kill;rm -rf /etc/puppet/ssl;puppetmasterd --verbose;/etc/init.d/puppetmaster start
|
|
139
|
-
EOS
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
def run_first_time
|
|
143
|
-
<<-EOE
|
|
144
|
-
echo "Running first time run"
|
|
145
|
-
cp #{Base.remote_storage_path}/#{Base.template_directory}/puppetrerun /usr/bin/puppetrerun
|
|
146
|
-
cp #{Base.remote_storage_path}/#{Base.template_directory}/puppetrunner /usr/bin/puppetrunner
|
|
147
|
-
chmod +x /usr/bin/puppetrerun
|
|
148
|
-
chmod +x /usr/bin/puppetrunner
|
|
149
|
-
EOE
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
# TODO:
|
|
153
|
-
# Consider this method in the manifest
|
|
154
|
-
def create_local_node
|
|
155
|
-
str = <<-EOS
|
|
156
|
-
node default {
|
|
157
|
-
include poolparty
|
|
158
|
-
}
|
|
159
|
-
EOS
|
|
160
|
-
@cloud.list_of_running_instances.each do |ri|
|
|
161
|
-
str << <<-EOS
|
|
162
|
-
node "#{ri.name}" inherits default {}
|
|
163
|
-
EOS
|
|
164
|
-
end
|
|
165
|
-
"echo '#{str}' > #{Base.manifest_path}/nodes/nodes.pp"
|
|
166
|
-
end
|
|
167
|
-
|
|
168
|
-
def move_templates
|
|
169
|
-
<<-EOS
|
|
170
|
-
echo "Moving templates into place"
|
|
171
|
-
mkdir -p #{Base.template_path}
|
|
172
|
-
cp -R #{Base.remote_storage_path}/#{Base.template_directory}/* #{Base.template_path}
|
|
173
|
-
EOS
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
def create_poolparty_manifest
|
|
177
|
-
<<-EOS
|
|
178
|
-
echo "Creating the manifest"
|
|
179
|
-
cp #{Base.remote_storage_path}/poolparty.pp /etc/puppet/manifests/classes/poolparty.pp
|
|
180
|
-
#{copy_ssh_app}
|
|
181
|
-
EOS
|
|
182
|
-
end
|
|
183
|
-
|
|
184
|
-
def clean_master_certs
|
|
185
|
-
str = returning Array.new do |s|
|
|
186
|
-
s << "puppetca --clean master.compute-1.internal 2>&1 > /dev/null"
|
|
187
|
-
s << "puppetca --clean master.ec2.internal 2>&1 > /dev/null"
|
|
188
|
-
end.join(";")
|
|
189
|
-
"if [ -f '/usr/bin/puppetcleaner' ]; then /usr/bin/env puppetcleaner; else #{str}; fi"
|
|
190
|
-
end
|
|
191
|
-
|
|
192
|
-
def restart_puppetd
|
|
193
|
-
<<-EOS
|
|
194
|
-
echo "Running puppet manifest"
|
|
195
|
-
/usr/bin/puppetrunner
|
|
196
|
-
EOS
|
|
197
|
-
end
|
|
198
|
-
def last_install_tasks
|
|
199
|
-
[
|
|
200
|
-
"/usr/bin/puppetrerun"
|
|
201
|
-
]
|
|
202
|
-
end
|
|
203
|
-
end
|
|
204
|
-
end
|
|
205
|
-
end
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
module PoolParty
|
|
2
|
-
module Provisioner
|
|
3
|
-
class Slave < ProvisionerBase
|
|
4
|
-
|
|
5
|
-
def install_tasks
|
|
6
|
-
[
|
|
7
|
-
setup_poolparty,
|
|
8
|
-
setup_puppet,
|
|
9
|
-
setup_configs,
|
|
10
|
-
] << configure_tasks
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def configure_tasks
|
|
14
|
-
[
|
|
15
|
-
start_puppet
|
|
16
|
-
]
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def setup_poolparty
|
|
20
|
-
<<-EOE
|
|
21
|
-
echo "Running first time run"
|
|
22
|
-
cp #{Base.remote_storage_path}/#{Base.template_directory}/puppetrunner /usr/bin/puppetrunner
|
|
23
|
-
chmod +x /usr/bin/puppetrunner
|
|
24
|
-
EOE
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def setup_puppet
|
|
28
|
-
<<-EOE
|
|
29
|
-
if [ -z "$(grep -v '#' /etc/hosts | grep 'master')" ]; then echo "#{master_ip} puppet master" >> /etc/hosts; else echo "host already set"; fi
|
|
30
|
-
cp #{Base.remote_storage_path}/namespaceauth.conf /etc/puppet/namespaceauth.conf
|
|
31
|
-
EOE
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def setup_configs
|
|
35
|
-
<<-EOS
|
|
36
|
-
echo "#{open(File.join(template_directory, "puppet.conf")).read}" > /etc/puppet/puppet.conf
|
|
37
|
-
/etc/init.d/puppetmaster stop #{unix_hide_string}
|
|
38
|
-
rm -rf /etc/puppet/ssl
|
|
39
|
-
# /usr/bin/puppetrerun
|
|
40
|
-
EOS
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# /etc/init.d/puppetmasterd stop
|
|
44
|
-
# puppetd --listen --fqdn #{@instance.name}
|
|
45
|
-
def start_puppet
|
|
46
|
-
<<-EOS
|
|
47
|
-
/bin/sh /usr/bin/puppetrunner
|
|
48
|
-
EOS
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def last_install_tasks
|
|
52
|
-
[
|
|
53
|
-
"rm -rf /etc/puppet/ssl",
|
|
54
|
-
"/usr/bin/puppetrerun"
|
|
55
|
-
]
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def master_ip
|
|
59
|
-
@cloud.master.ip
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
end
|