lobot 2.0.0pre → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +7 -10
- data/.gitmodules +1 -1
- data/.pairs +15 -0
- data/.rvmrc +1 -1
- data/.travis.yml +5 -0
- data/Gemfile +2 -2
- data/LICENSE.txt +1 -1
- data/README.md +67 -29
- data/Rakefile +11 -6
- data/Vagrantfile +8 -5
- data/bin/lobot +2 -4
- data/chef/cookbooks/pivotal_ci/attributes/jenkins.rb +1 -0
- data/chef/cookbooks/pivotal_ci/files/default/tests/minitest/default_test.rb +40 -2
- data/chef/cookbooks/pivotal_ci/recipes/id_rsa.rb +5 -0
- data/chef/cookbooks/pivotal_ci/recipes/jenkins_config.rb +5 -2
- data/chef/cookbooks/pivotal_ci/recipes/limited_travis_ci_environment.rb +4 -0
- data/chef/cookbooks/pivotal_ci/templates/default/jenkins-job-config.xml.erb +8 -6
- data/chef/cookbooks/pivotal_ci/test/kitchen/cookbooks/pivotal_ci_test/attributes/default.rb +0 -1
- data/chef/cookbooks/pivotal_ci/test/kitchen/cookbooks/pivotal_ci_test/recipes/bootstrap.rb +41 -0
- data/chef/cookbooks/pivotal_ci/test/kitchen/cookbooks/pivotal_ci_test/recipes/default.rb +1 -41
- data/chef/travis-cookbooks/ci_environment/apt/recipes/default.rb +8 -7
- data/chef/travis-cookbooks/ci_environment/bazaar/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/cassandra/attributes/default.rb +6 -3
- data/chef/travis-cookbooks/ci_environment/cassandra/recipes/datastax.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/cassandra/recipes/package.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/cassandra/recipes/tarball.rb +6 -2
- data/chef/travis-cookbooks/ci_environment/cassandra/templates/default/cassandra.init.erb +58 -131
- data/chef/travis-cookbooks/ci_environment/chromium/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/clang/attributes/tarball.rb +2 -7
- data/chef/travis-cookbooks/ci_environment/clang/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/clang/recipes/tarball.rb +2 -4
- data/chef/travis-cookbooks/ci_environment/couchdb/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/couchdb/recipes/ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/couchdb/recipes/ubuntu-12.04.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/couchdb/recipes/ubuntu1110_ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/couchdb/recipes/ubuntu1204_ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/doxygen/recipes/default.rb +24 -0
- data/chef/travis-cookbooks/ci_environment/elasticsearch/attributes/default.rb +4 -1
- data/chef/travis-cookbooks/ci_environment/elasticsearch/recipes/default.rb +8 -5
- data/chef/travis-cookbooks/ci_environment/emacs/recipes/nox.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/firefox/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/git/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/git/recipes/ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/golang/attributes/default.rb +3 -3
- data/chef/travis-cookbooks/ci_environment/gradle/attributes/tarball.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/haskell/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/haskell/recipes/ghc_package.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/haskell/recipes/ghc_source.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/haskell/recipes/platform_package.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/haskell/recipes/platform_ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/haskell/recipes/platform_source.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/haskell/recipes/source.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/hbase/recipes/cdh4.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/java/attributes/default.rb +4 -2
- data/chef/travis-cookbooks/ci_environment/java/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/java/recipes/oraclejdk7.rb +6 -1
- data/chef/travis-cookbooks/ci_environment/kerl/attributes/source.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/kerl/files/default/erlang.cookie +1 -0
- data/chef/travis-cookbooks/ci_environment/kerl/recipes/source.rb +8 -0
- data/chef/travis-cookbooks/ci_environment/kestrel/recipes/tarball.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/leiningen/attributes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/leiningen/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/leiningen/recipes/lein1x.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/leiningen/recipes/lein2x.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libffi/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libgdbm/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libncurses/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libossp-uuid/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libreadline/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libssl/recipes/098.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libssl/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libxml/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/lighttpd/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/maven3/recipes/default.rb +5 -2
- data/chef/travis-cookbooks/ci_environment/maven3/recipes/package.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/maven3/recipes/ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/maven3/recipes/tarball.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/memcached/attributes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/memcached/attributes/ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/memcached/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/memcached/recipes/ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/mercurial/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/mercurial/recipes/ppa.rb +36 -0
- data/chef/travis-cookbooks/ci_environment/mongodb/attributes/mongodb.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/mongodb/files/default/mongodb.sysvinit.sh +1 -1
- data/chef/travis-cookbooks/ci_environment/mongodb/recipes/apt.rb +5 -5
- data/chef/travis-cookbooks/ci_environment/mongodb/recipes/server.rb +5 -2
- data/chef/travis-cookbooks/ci_environment/mysql/attributes/default.rb +1 -3
- data/chef/travis-cookbooks/ci_environment/mysql/recipes/server_on_ramfs.rb +6 -1
- data/chef/travis-cookbooks/ci_environment/mysql/templates/default/my.cnf.erb +0 -2
- data/chef/travis-cookbooks/ci_environment/mysql/templates/default/ramfs/my.cnf.erb +0 -2
- data/chef/travis-cookbooks/ci_environment/neo4j-server/attributes/tarball.rb +13 -2
- data/chef/travis-cookbooks/ci_environment/neo4j-server/recipes/tarball.rb +26 -2
- data/chef/travis-cookbooks/ci_environment/networking_basic/recipes/default.rb +4 -1
- data/chef/travis-cookbooks/ci_environment/nodejs/attributes/multi.rb +3 -3
- data/chef/travis-cookbooks/ci_environment/nodejs/recipes/multi.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/openssh/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/perlbrew/attributes/multi.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/phantomjs/attributes/default.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/phantomjs/metadata.rb +3 -0
- data/chef/travis-cookbooks/ci_environment/phantomjs/recipes/default.rb +3 -1
- data/chef/travis-cookbooks/ci_environment/phantomjs/recipes/tarball.rb +3 -2
- data/chef/travis-cookbooks/ci_environment/php/attributes/default.rb +40 -2
- data/chef/travis-cookbooks/ci_environment/php/providers/pecl.rb +73 -0
- data/chef/travis-cookbooks/ci_environment/php/recipes/extensions.rb +25 -0
- data/chef/travis-cookbooks/ci_environment/php/recipes/multi.rb +5 -4
- data/chef/travis-cookbooks/ci_environment/php/resources/pecl.rb +10 -0
- data/chef/travis-cookbooks/ci_environment/phpbuild/attributes/default.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/phpbuild/files/default/after-install.d/phpunit.sh +58 -0
- data/chef/travis-cookbooks/ci_environment/phpbuild/files/default/definitions/5.2.17 +3 -1
- data/chef/travis-cookbooks/ci_environment/phpbuild/files/default/definitions/5.3.3 +2 -1
- data/chef/travis-cookbooks/ci_environment/phpbuild/providers/build.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/phpbuild/recipes/default.rb +8 -10
- data/chef/travis-cookbooks/ci_environment/phpbuild/templates/default/default_configure_options.erb +4 -0
- data/chef/travis-cookbooks/ci_environment/phpenv/attributes/default.rb +6 -0
- data/chef/travis-cookbooks/ci_environment/phpenv/recipes/default.rb +11 -7
- data/chef/travis-cookbooks/ci_environment/postgresql/recipes/server_on_ramfs.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/python/attributes/default.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/python/recipes/multi.rb +10 -3
- data/chef/travis-cookbooks/ci_environment/rabbitmq/attributes/default.rb +3 -0
- data/chef/travis-cookbooks/ci_environment/rabbitmq/recipes/default.rb +6 -2
- data/chef/travis-cookbooks/ci_environment/ragel/recipes/custom.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/ragel/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/redis/attributes/default.rb +3 -0
- data/chef/travis-cookbooks/ci_environment/redis/recipes/default.rb +6 -3
- data/chef/travis-cookbooks/ci_environment/redis/recipes/ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/riak/attributes/default.rb +1 -0
- data/chef/travis-cookbooks/ci_environment/riak/attributes/package.rb +3 -3
- data/chef/travis-cookbooks/{messaging_broker/openssl/recipes/default.rb → ci_environment/riak/attributes/service.rb} +4 -3
- data/chef/travis-cookbooks/ci_environment/riak/recipes/config.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/riak/recipes/default.rb +12 -5
- data/chef/travis-cookbooks/ci_environment/rvm/attributes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/rvm/attributes/multi.rb +2 -0
- data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/global.gems +1 -1
- data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/jruby/global.gems +1 -1
- data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/ruby/2.0.0/global.gems +2 -0
- data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/ruby/head/global.gems +2 -0
- data/chef/travis-cookbooks/ci_environment/rvm/recipes/default.rb +23 -1
- data/chef/travis-cookbooks/ci_environment/rvm/recipes/multi.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/rvm/templates/default/bundler_config.yml.erb +2 -0
- data/chef/travis-cookbooks/ci_environment/sbt/CHANGELOG.md +20 -0
- data/chef/travis-cookbooks/ci_environment/sbt/LICENSE +201 -0
- data/chef/travis-cookbooks/ci_environment/sbt/README.md +78 -2
- data/chef/travis-cookbooks/ci_environment/sbt/attributes/default.rb +36 -10
- data/chef/travis-cookbooks/ci_environment/sbt/metadata.json +27 -17
- data/chef/travis-cookbooks/ci_environment/sbt/metadata.rb +13 -6
- data/chef/travis-cookbooks/ci_environment/sbt/recipes/default.rb +101 -51
- data/chef/travis-cookbooks/ci_environment/sbt/templates/default/jvmopts.erb +7 -0
- data/chef/travis-cookbooks/ci_environment/sbt/templates/default/sbtopts.erb +54 -0
- data/chef/travis-cookbooks/ci_environment/sphinx/attributes/default.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/sphinx/metadata.rb +4 -4
- data/chef/travis-cookbooks/ci_environment/sphinx/recipes/all.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/sphinx/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/{messaging_broker/build-essential/recipes/default.rb → ci_environment/sqlite/recipes/ppa.rb} +13 -24
- data/chef/travis-cookbooks/ci_environment/subversion/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/sweeper/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/travis_build_environment/attributes/default.rb +2 -0
- data/chef/travis-cookbooks/ci_environment/travis_build_environment/recipes/ci_user.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/travis_build_environment/recipes/default.rb +1 -3
- data/chef/travis-cookbooks/ci_environment/travis_build_environment/recipes/root.rb +5 -1
- data/chef/travis-cookbooks/ci_environment/travis_build_environment/templates/default/ci_user/{dot_bashrc.sh → dot_bashrc.sh.erb} +0 -4
- data/chef/travis-cookbooks/ci_environment/unarchivers/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/xserver/metadata.rb +3 -0
- data/chef/travis-cookbooks/ci_environment/xserver/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/zeromq/recipes/default.rb +6 -23
- data/chef/travis-cookbooks/ci_environment/zeromq/recipes/{20x.rb → ppa.rb} +14 -14
- data/chef/travis-cookbooks/ci_environment/zookeeper/recipes/cdh4.rb +1 -1
- data/chef/travis-cookbooks/worker_host/java/metadata.rb +1 -1
- data/chef/travis-cookbooks/worker_host/java/recipes/openjdk.rb +6 -0
- data/chef/travis-cookbooks/worker_host/jruby/attributes/default.rb +1 -1
- data/chef/travis-cookbooks/worker_host/jruby/metadata.rb +1 -1
- data/chef/travis-cookbooks/worker_host/jruby/recipes/default.rb +1 -0
- data/chef/travis-cookbooks/worker_host/monit/recipes/default.rb +21 -17
- data/chef/travis-cookbooks/worker_host/networking_basic/metadata.rb +1 -1
- data/chef/travis-cookbooks/worker_host/networking_basic/recipes/default.rb +0 -6
- data/chef/travis-cookbooks/worker_host/ntp/.gitignore +1 -0
- data/chef/travis-cookbooks/worker_host/ntp/.travis.yml +6 -0
- data/chef/travis-cookbooks/worker_host/ntp/CHANGELOG.md +35 -0
- data/chef/travis-cookbooks/worker_host/ntp/CONTRIBUTING +29 -0
- data/chef/travis-cookbooks/worker_host/ntp/LICENSE +201 -0
- data/chef/travis-cookbooks/worker_host/ntp/README.md +163 -0
- data/chef/travis-cookbooks/worker_host/ntp/Rakefile +19 -0
- data/chef/travis-cookbooks/worker_host/ntp/TESTING.md +213 -0
- data/chef/travis-cookbooks/worker_host/ntp/attributes/default.rb +54 -0
- data/chef/travis-cookbooks/{messaging_broker/rabbitmq/resources/vhost.rb → worker_host/ntp/attributes/ntpdate.rb} +6 -7
- data/chef/travis-cookbooks/worker_host/ntp/chefignore +19 -0
- data/chef/travis-cookbooks/worker_host/ntp/files/default/ntp.leapseconds +222 -0
- data/chef/travis-cookbooks/worker_host/ntp/metadata.json +117 -0
- data/chef/travis-cookbooks/worker_host/ntp/metadata.rb +45 -0
- data/chef/travis-cookbooks/worker_host/ntp/recipes/default.rb +50 -0
- data/chef/travis-cookbooks/worker_host/ntp/recipes/disable.rb +22 -0
- data/chef/travis-cookbooks/worker_host/ntp/recipes/ntpdate.rb +36 -0
- data/chef/travis-cookbooks/{messaging_broker/openssl/libraries/secure_password.rb → worker_host/ntp/recipes/undo.rb} +17 -18
- data/chef/travis-cookbooks/worker_host/ntp/templates/default/ntp.conf.erb +55 -0
- data/chef/travis-cookbooks/worker_host/ntp/templates/default/ntpdate.erb +14 -0
- data/chef/travis-cookbooks/worker_host/rvm/recipes/multi.rb +1 -1
- data/chef/travis-cookbooks/worker_host/travis_worker/attributes/default.rb +10 -3
- data/chef/travis-cookbooks/worker_host/travis_worker/files/default/signal_wrapper.rb +22 -0
- data/chef/travis-cookbooks/worker_host/travis_worker/metadata.rb +2 -2
- data/chef/travis-cookbooks/worker_host/travis_worker/recipes/bluebox.rb +97 -0
- data/chef/travis-cookbooks/worker_host/travis_worker/recipes/default.rb +25 -15
- data/chef/travis-cookbooks/worker_host/travis_worker/templates/default/sv-travis-worker-run.erb +1 -1
- data/chef/travis-cookbooks/worker_host/travis_worker/templates/default/worker-bluebox.yml.erb +21 -0
- data/chef/travis-cookbooks/worker_host/travis_worker/templates/default/worker.yml.erb +0 -4
- data/chef/travis-cookbooks/worker_host/travis_worker_collectd/metadata.rb +1 -0
- data/chef/travis-cookbooks/worker_host/travis_worker_collectd/recipes/bluebox.rb +15 -0
- data/chef/travis-cookbooks/worker_host/travis_worker_collectd/recipes/default.rb +1 -0
- data/chef/travis-cookbooks/worker_host/users/recipes/default.rb +5 -0
- data/cookbooks/.gitkeep +3 -0
- data/lib/lobot.rb +8 -4
- data/lib/lobot/amazon.rb +33 -19
- data/lib/lobot/cli.rb +70 -46
- data/lib/lobot/config.rb +151 -19
- data/lib/lobot/configuration_wizard.rb +117 -0
- data/lib/lobot/keychain.rb +36 -0
- data/lib/lobot/password.rb +13 -0
- data/lib/lobot/sobo.rb +57 -13
- data/lib/lobot/templates/default_rails_build_script.sh +13 -0
- data/lib/lobot/version.rb +2 -2
- data/lobot.gemspec +4 -5
- data/script/bootstrap_server.sh +1 -1
- data/script/ci_build.sh +13 -0
- data/spec/assets/test_cert.crt +18 -0
- data/spec/fixtures/ssh_keys/vagrant_test_key +27 -0
- data/spec/fixtures/ssh_keys/vagrant_test_key.pub +1 -0
- data/spec/lib/lobot/amazon_spec.rb +80 -39
- data/spec/lib/lobot/cli_spec.rb +223 -154
- data/spec/lib/lobot/config_spec.rb +207 -5
- data/spec/lib/lobot/configuration_wizard_spec.rb +347 -0
- data/spec/lib/lobot/keychain_spec.rb +33 -0
- data/spec/lib/lobot/password_spec.rb +15 -0
- data/spec/spec_helper.rb +19 -1
- data/templates/Gemfile-remote +4 -0
- metadata +83 -100
- data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/ruby/1.8.6/global.gems +0 -2
- data/chef/travis-cookbooks/ci_environment/travis_build_environment/files/default/root/dot_bashrc.sh +0 -86
- data/chef/travis-cookbooks/ci_environment/zeromq/attributes/default.rb +0 -7
- data/chef/travis-cookbooks/messaging_broker/build-essential/README.md +0 -24
- data/chef/travis-cookbooks/messaging_broker/build-essential/metadata.rb +0 -10
- data/chef/travis-cookbooks/messaging_broker/emacs/metadata.rb +0 -11
- data/chef/travis-cookbooks/messaging_broker/emacs/recipes/default.rb +0 -21
- data/chef/travis-cookbooks/messaging_broker/erlang/attributes/default.rb +0 -1
- data/chef/travis-cookbooks/messaging_broker/erlang/metadata.rb +0 -11
- data/chef/travis-cookbooks/messaging_broker/erlang/recipes/default.rb +0 -27
- data/chef/travis-cookbooks/messaging_broker/git/README.rdoc +0 -37
- data/chef/travis-cookbooks/messaging_broker/git/metadata.rb +0 -16
- data/chef/travis-cookbooks/messaging_broker/git/recipes/default.rb +0 -24
- data/chef/travis-cookbooks/messaging_broker/git/recipes/server.rb +0 -34
- data/chef/travis-cookbooks/messaging_broker/git/templates/default/sv-git-daemon-log-run.erb +0 -2
- data/chef/travis-cookbooks/messaging_broker/git/templates/default/sv-git-daemon-run.erb +0 -3
- data/chef/travis-cookbooks/messaging_broker/haproxy/README.md +0 -79
- data/chef/travis-cookbooks/messaging_broker/haproxy/attributes/default.rb +0 -22
- data/chef/travis-cookbooks/messaging_broker/haproxy/metadata.rb +0 -13
- data/chef/travis-cookbooks/messaging_broker/haproxy/recipes/app_lb.rb +0 -50
- data/chef/travis-cookbooks/messaging_broker/haproxy/recipes/default.rb +0 -42
- data/chef/travis-cookbooks/messaging_broker/haproxy/templates/default/haproxy-app_lb.cfg.erb +0 -34
- data/chef/travis-cookbooks/messaging_broker/haproxy/templates/default/haproxy-default.erb +0 -4
- data/chef/travis-cookbooks/messaging_broker/haproxy/templates/default/haproxy.cfg.erb +0 -27
- data/chef/travis-cookbooks/messaging_broker/iptables/definitions/iptables_rule.rb +0 -35
- data/chef/travis-cookbooks/messaging_broker/iptables/files/default/rebuild-iptables +0 -284
- data/chef/travis-cookbooks/messaging_broker/iptables/metadata.rb +0 -10
- data/chef/travis-cookbooks/messaging_broker/iptables/recipes/default.rb +0 -50
- data/chef/travis-cookbooks/messaging_broker/iptables/templates/default/all_established.erb +0 -2
- data/chef/travis-cookbooks/messaging_broker/iptables/templates/default/all_icmp.erb +0 -2
- data/chef/travis-cookbooks/messaging_broker/iptables/templates/default/iptables_load.erb +0 -3
- data/chef/travis-cookbooks/messaging_broker/openssl/README.md +0 -37
- data/chef/travis-cookbooks/messaging_broker/openssl/metadata.rb +0 -8
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/README.md +0 -86
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/attributes/default.rb +0 -10
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/metadata.rb +0 -63
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/providers/user.rb +0 -66
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/providers/vhost.rb +0 -34
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/recipes/cluster.rb +0 -35
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/recipes/default.rb +0 -51
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/resources/user.rb +0 -25
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/templates/default/doterlang.cookie.erb +0 -1
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/templates/default/rabbitmq-env.conf.erb +0 -10
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/templates/default/rabbitmq_cluster.config.erb +0 -5
- data/ci_build.sh +0 -20
- data/docs/ci_yml.md +0 -39
- data/features/ci.feature +0 -29
- data/features/config/secrets.yml.example +0 -4
- data/features/step_definitions/ci_steps.rb +0 -137
- data/features/support/env.rb +0 -12
- data/lib/generators/lobot/USAGE +0 -15
- data/lib/generators/lobot/config_generator.rb +0 -141
- data/lib/generators/lobot/install_generator.rb +0 -25
- data/lib/generators/lobot/templates/Capfile +0 -6
- data/lib/generators/lobot/templates/ci.yml +0 -22
- data/lib/generators/lobot/templates/ci_build.sh +0 -22
- data/lib/generators/lobot/templates/deploy-ci.rb +0 -7
- data/lib/generators/lobot/templates/soloistrc +0 -23
- data/lib/lobot/jenkins.rb +0 -17
- data/lib/lobot/railtie.rb +0 -20
- data/lib/lobot/recipes/ci.rb +0 -78
- data/lib/lobot/tasks/ci.rake +0 -93
- data/spec/lib/lobot/jenkins_spec.rb +0 -14
@@ -1,25 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Cookbook Name:: rabbitmq
|
3
|
-
# Resource:: user
|
4
|
-
#
|
5
|
-
# Copyright 2011, Opscode, Inc.
|
6
|
-
#
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
# you may not use this file except in compliance with the License.
|
9
|
-
# You may obtain a copy of the License at
|
10
|
-
#
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
# See the License for the specific language governing permissions and
|
17
|
-
# limitations under the License.
|
18
|
-
#
|
19
|
-
|
20
|
-
actions :add, :delete, :set_permissions, :clear_permissions
|
21
|
-
|
22
|
-
attribute :user, :kind_of => String, :name_attribute => true
|
23
|
-
attribute :password, :kind_of => String
|
24
|
-
attribute :vhost, :kind_of => String
|
25
|
-
attribute :permissions, :kind_of => String
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= node[:rabbitmq][:erlang_cookie] %>
|
data/chef/travis-cookbooks/messaging_broker/rabbitmq/templates/default/rabbitmq-env.conf.erb
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
###
|
2
|
-
# Generated by Chef for <%= node[:fqdn] %>
|
3
|
-
###
|
4
|
-
|
5
|
-
NODENAME=<%= node[:rabbitmq][:nodename] %>
|
6
|
-
<% if node[:rabbitmq][:address] %>NODE_IP_ADDRESS=<%= node[:rabbitmq][:address] %><% end %>
|
7
|
-
<% if node[:rabbitmq][:port] %>NODE_PORT=<%= node[:rabbitmq][:port] %><% end %>
|
8
|
-
<% if node[:rabbitmq][:config] %>CONFIG_FILE=<%= node[:rabbitmq][:config] %><% end %>
|
9
|
-
<% if node[:rabbitmq][:logdir] %>LOG_BASE=<%= node[:rabbitmq][:logdir] %><% end %>
|
10
|
-
<% if node[:rabbitmq][:mnesiadir] %>MNESIA_BASE=<%= node[:rabbitmq][:mnesiadir] %><% end %>
|
data/ci_build.sh
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
|
3
|
-
source $HOME/.rvm/scripts/rvm && source .rvmrc
|
4
|
-
|
5
|
-
# install bundler if necessary
|
6
|
-
gem list --local bundler | grep bundler || gem install bundler || exit 1
|
7
|
-
|
8
|
-
# debugging info
|
9
|
-
echo USER=$USER && ruby --version && which ruby && which bundle
|
10
|
-
|
11
|
-
# conditionally install project gems from Gemfile
|
12
|
-
bundle check || bundle install || exit 1
|
13
|
-
|
14
|
-
# remove known_hosts2 - ec2 recycles ips
|
15
|
-
# known_hosts is owned by root and trusts github
|
16
|
-
rm ~/.ssh/known_hosts2
|
17
|
-
|
18
|
-
cp ~/secrets.yml features/config/
|
19
|
-
|
20
|
-
bundle exec rake default --trace
|
data/docs/ci_yml.md
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
# app_name
|
2
|
-
A short name for your application. This will be used as the name of the build in jenkins.
|
3
|
-
|
4
|
-
# git_location
|
5
|
-
The location of your remote git repository which Jenkins will poll and pull from on changes. If it's a public project, use the http://github.com/user/project.git url. If it's a private project, use the ssh form, git@github.com:user/project.git.
|
6
|
-
|
7
|
-
# basic_auth:
|
8
|
-
- username: # The username you will use to access the Jenkins web interface
|
9
|
-
password: # The password you will use to access the Jenkins web interface
|
10
|
-
The basic auth field is an array of hashes containing the usernames and passwords you would like to be able to access jenkins.
|
11
|
-
|
12
|
-
# credentials:
|
13
|
-
Currently Lobot only supports managing EC2 servers. To start a new instance, the rake task needs to be able to connect to ec2 and ask it to launch a server.
|
14
|
-
## aws_access_key_id:
|
15
|
-
The Access Key for your Amazon AWS account. You can obtain it by visiting
|
16
|
-
https://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=access-key
|
17
|
-
## aws_secret_access_key: The Secret Access Key for your Amazon AWS account
|
18
|
-
This will be available at the same URL.
|
19
|
-
## provider: AWS
|
20
|
-
This tells Lobot to use Amazon web services. Currently AWS is the only valid value.
|
21
|
-
|
22
|
-
# server:
|
23
|
-
The server section is where Lobot keeps track of the instance that it launches when you run rake ci:server_start
|
24
|
-
## name:
|
25
|
-
The name is the server's machine name - either ip address or DNS name. Usually you'll just run ci:server_start to populate it.
|
26
|
-
# instance_id:
|
27
|
-
The instance_id is also saved, in order to facilitate stopping and starting instances. Stopping" is AWS's term for shutting down an instance temporarily - when it is started, it will use the same EBS volume and continue where it left off. However, it will receive a new ip address and DNS name.
|
28
|
-
|
29
|
-
# build_command: ./script/ci_build.sh
|
30
|
-
The build command is the shell script that Jenkins will execute to run your build. While you could put this script is the Jenkins configuration, it's clearer to have it in a script directly checked into your project.
|
31
|
-
|
32
|
-
# ec2_server_access:
|
33
|
-
key_pair_name: myapp_ci
|
34
|
-
id_rsa_path: ~/.ssh/id_rsa
|
35
|
-
|
36
|
-
The EC2 server access section is perhaps the most confusing field in the ci.yml file. This section tells Lobot what ssh keys to use to access the servers it spins up. When you run rake ci:sever_start, Lobot first looks in your ec2 account to see if they key pair name you specified exists - if it doesn't, it uploads the specified #{id_rsa_path}.pub to amazon, and names it #{key_pair_name}. It then launches the server, telling EC2 to use the key pair specified.
|
37
|
-
|
38
|
-
# github_private_ssh_key_path: ~/.ssh/id_github_current
|
39
|
-
This is the path to the ssh private key that jenkins will use when connecting to github.
|
data/features/ci.feature
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
Feature: CI
|
2
|
-
|
3
|
-
Background:
|
4
|
-
Given the temp directory is clean
|
5
|
-
And I am in the temp directory
|
6
|
-
|
7
|
-
Scenario: Installing Lobot on a rails3 project
|
8
|
-
When I create a new Rails project
|
9
|
-
And I vendor Lobot
|
10
|
-
And I put Lobot in the Gemfile
|
11
|
-
And I run bundle install
|
12
|
-
And I run the Lobot generator for "Jenkins"
|
13
|
-
Then rake reports ci tasks as being available
|
14
|
-
|
15
|
-
@aws
|
16
|
-
Scenario: Install Jenkins CI on Amazon AWS using new Rails template
|
17
|
-
When I create a new Rails project
|
18
|
-
And I vendor Lobot
|
19
|
-
And I put Lobot in the Gemfile
|
20
|
-
And I add a gem with an https://github.com source
|
21
|
-
And I run bundle install
|
22
|
-
And I run the Lobot generator for "Jenkins"
|
23
|
-
And I enter my info into the ci.yml file
|
24
|
-
And I make changes to be committed
|
25
|
-
And I push to git
|
26
|
-
And I start the server
|
27
|
-
And I bootstrap
|
28
|
-
And I deploy
|
29
|
-
Then CI is green
|
@@ -1,137 +0,0 @@
|
|
1
|
-
Given /^the temp directory is clean$/ do
|
2
|
-
system!("rm -rf /tmp/lobot-test")
|
3
|
-
system!("mkdir -p /tmp/lobot-test")
|
4
|
-
end
|
5
|
-
|
6
|
-
Given /^I am in the temp directory$/ do
|
7
|
-
Dir.chdir(LOBOT_TEMP_DIRECTORY)
|
8
|
-
end
|
9
|
-
|
10
|
-
When /^I create a new Rails project$/ do
|
11
|
-
system!("rvm ruby-1.9.3-p194 do rvm gemset create testapp")
|
12
|
-
system!("rails new testapp")
|
13
|
-
system!("cd testapp && echo 'rvm use ruby-1.9.3-p194@testapp' > .rvmrc")
|
14
|
-
end
|
15
|
-
|
16
|
-
When /^I vendor Lobot$/ do
|
17
|
-
lobot_dir = File.expand_path('../../', File.dirname(__FILE__))
|
18
|
-
system! "cd #{lobot_dir} && rake build"
|
19
|
-
system! "mkdir -p testapp/vendor/cache/"
|
20
|
-
system! "cp #{lobot_dir}/pkg/lobot-#{Lobot::VERSION}.gem testapp/vendor/cache/"
|
21
|
-
end
|
22
|
-
|
23
|
-
When /^I put Lobot in the Gemfile$/ do
|
24
|
-
lobot_path = File.expand_path('../../', File.dirname(__FILE__))
|
25
|
-
system!(%{echo "gem 'lobot'" >> testapp/Gemfile})
|
26
|
-
end
|
27
|
-
|
28
|
-
When /^I add a gem with an https:\/\/github.com source$/ do
|
29
|
-
system!(%{echo "gem 'greyhawkweather', :git => 'https://github.com/verdammelt/Greyhawk-Weather.git'" >> testapp/Gemfile})
|
30
|
-
system!("cd testapp && bundle install")
|
31
|
-
end
|
32
|
-
|
33
|
-
When /^I run bundle install$/ do
|
34
|
-
system("cd testapp && gem uninstall lobot")
|
35
|
-
system("cd testapp && gem install bundler")
|
36
|
-
system!("cd testapp && bundle install")
|
37
|
-
system!('cd testapp && bundle exec gem list | grep lobot')
|
38
|
-
end
|
39
|
-
|
40
|
-
When /^I run the Lobot generator for "([^"]*)"$/ do |build_server_name|
|
41
|
-
system!("cd testapp && rails generate lobot:install #{build_server_name}")
|
42
|
-
system!('ls testapp | grep -s soloistrc')
|
43
|
-
end
|
44
|
-
|
45
|
-
When /^I enter my info into the ci\.yml file$/ do
|
46
|
-
hostname = `hostname`.strip
|
47
|
-
secrets_file = File.expand_path('../config/secrets.yml', File.dirname(__FILE__))
|
48
|
-
raise "Missing #{secrets_file}, needed for AWS test." unless File.exist?(secrets_file)
|
49
|
-
secrets = YAML.load_file(secrets_file)
|
50
|
-
raise "Missing AWS secret access key" unless secrets["aws_secret_access_key"].to_s != ""
|
51
|
-
raise "Missing AWS access key id" unless secrets["aws_access_key_id"].to_s != ""
|
52
|
-
raise "Missing github private key path" unless secrets["github_private_ssh_key_path"].to_s != ""
|
53
|
-
|
54
|
-
raise "Missing private SSH key for AWS!" unless File.exist?(File.expand_path("~/.ssh/id_github_current"))
|
55
|
-
ci_conf_location = 'testapp/config/ci.yml'
|
56
|
-
ci_yml = YAML.load_file(ci_conf_location)
|
57
|
-
ci_yml.merge!(
|
58
|
-
'app_name' => 'testapp',
|
59
|
-
'git_location' => 'git@github.com:pivotalprivate/ci-smoke.git',
|
60
|
-
'basic_auth' => [{ 'username' => 'testapp', 'password' => 'testpass' }],
|
61
|
-
'credentials' => { 'aws_access_key_id' => secrets['aws_access_key_id'], 'aws_secret_access_key' => secrets['aws_secret_access_key'], 'provider' => 'AWS' },
|
62
|
-
'ec2_server_access' => {'key_pair_name' => "lobot_cucumber_key_pair_#{hostname}", 'id_rsa_path' => '~/.ssh/id_github_current'},
|
63
|
-
'github_private_ssh_key_path' => secrets["github_private_ssh_key_path"]
|
64
|
-
)
|
65
|
-
# ci_yml['server']['name'] = '' # This can be used to merge in a server which is already running if you want to skip the setup steps while iterating on a test
|
66
|
-
File.open(ci_conf_location, "w") do |f|
|
67
|
-
f << ci_yml.to_yaml
|
68
|
-
f << File.read(secrets_file)
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
When /^I make changes to be committed$/ do
|
73
|
-
lobot_dir = File.expand_path('../../', File.dirname(__FILE__))
|
74
|
-
system! "rm testapp/vendor/cache/*"
|
75
|
-
system! "cp #{lobot_dir}/pkg/lobot-#{Lobot::VERSION}.gem testapp/vendor/cache/"
|
76
|
-
system! "echo 'config/ci.yml' >> testapp/.gitignore"
|
77
|
-
["headless", "rspec-rails", "jasmine"].each do |gem|
|
78
|
-
system!(%{echo "gem '#{gem}'" >> testapp/Gemfile})
|
79
|
-
end
|
80
|
-
system!("cd testapp && bundle install")
|
81
|
-
system!("cd testapp && bundle exec rails g jasmine:install")
|
82
|
-
system!("cd testapp && bundle exec rails g jasmine:examples")
|
83
|
-
system!(%{cd testapp && echo "task :default => 'jasmine:ci'" >> Rakefile})
|
84
|
-
|
85
|
-
spec_contents = <<-RUBY
|
86
|
-
require 'rspec'
|
87
|
-
|
88
|
-
describe "The World" do
|
89
|
-
it "should be green and blue" do
|
90
|
-
the_world = ["green", "blue"]
|
91
|
-
the_world.should include("green")
|
92
|
-
the_world.should include("blue")
|
93
|
-
end
|
94
|
-
end
|
95
|
-
RUBY
|
96
|
-
|
97
|
-
File.open("testapp/spec/hello_world_spec.rb", "w") do |file|
|
98
|
-
file.write(spec_contents)
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
When /^I push to git$/ do
|
103
|
-
system! "cd testapp && git init"
|
104
|
-
system! "cd testapp && git add ."
|
105
|
-
system! "cd testapp && git commit -m'initial commit'"
|
106
|
-
system "cd testapp && git remote rm origin" # Ignore failures
|
107
|
-
system! "cd testapp && git remote add origin git@github.com:pivotalprivate/ci-smoke.git"
|
108
|
-
system! "cd testapp && git push --force -u origin master"
|
109
|
-
end
|
110
|
-
|
111
|
-
When /^I start the server$/ do
|
112
|
-
system! "cd testapp && bundle exec rake ci:create_server"
|
113
|
-
server_ip = YAML.load(File.read('testapp/config/ci.yml'))["server"]["elastic_ip"]
|
114
|
-
system! "cat ~/.ssh/known_hosts | grep -v #{server_ip} > /tmp/known_hosts"
|
115
|
-
system! "mv /tmp/known_hosts ~/.ssh/known_hosts"
|
116
|
-
end
|
117
|
-
|
118
|
-
When /^I bootstrap$/ do
|
119
|
-
system!("cd testapp && bundle install")
|
120
|
-
system! "cd testapp && bundle exec cap ci bootstrap"
|
121
|
-
end
|
122
|
-
|
123
|
-
When /^I deploy$/ do
|
124
|
-
system! "cd testapp && cap ci chef"
|
125
|
-
end
|
126
|
-
|
127
|
-
Then /^CI is green$/ do
|
128
|
-
Timeout::timeout(600) do
|
129
|
-
until system("cd testapp && bundle exec rake ci:status")
|
130
|
-
sleep 5
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
Then /^rake reports ci tasks as being available$/ do
|
136
|
-
`cd testapp && bundle exec rake -T`.should include("ci:start_server")
|
137
|
-
end
|
data/features/support/env.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
require "rubygems"
|
2
|
-
require File.expand_path('../../lib/lobot', File.dirname(__FILE__))
|
3
|
-
LOBOT_TEMP_DIRECTORY = "/tmp/lobot-test"
|
4
|
-
|
5
|
-
def system!(str)
|
6
|
-
system(str)
|
7
|
-
raise "Command Failed: #{str} with exit code #{$?.exitstatus}" unless $?.success?
|
8
|
-
end
|
9
|
-
|
10
|
-
After '@aws' do
|
11
|
-
system "cd #{LOBOT_TEMP_DIRECTORY}/testapp && rake ci:destroy_server" unless ENV["KEEP_INSTANCE"]
|
12
|
-
end
|
data/lib/generators/lobot/USAGE
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
Description:
|
2
|
-
Lobot is a gem that will help you spin-up, bootstrap, and install Jenkins for CI for your Rails app on Amazon EC2.
|
3
|
-
|
4
|
-
Example:
|
5
|
-
rails generate lobot:install
|
6
|
-
|
7
|
-
This will create:
|
8
|
-
chef/ - chef cookbooks in a subfolder
|
9
|
-
config/ci.yml - a configuration file for lobot
|
10
|
-
script/ci_build.sh - a build script you can use to run your CI build
|
11
|
-
config/capistrano/ci.rb - a set of lobot specific Capistrano tasks
|
12
|
-
|
13
|
-
rails generate lobot:config
|
14
|
-
|
15
|
-
This will configure config/ci.yml for you
|
@@ -1,141 +0,0 @@
|
|
1
|
-
module Lobot
|
2
|
-
class ConfigGenerator < Rails::Generators::Base
|
3
|
-
source_root File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
|
4
|
-
|
5
|
-
def generate_ci_config
|
6
|
-
default_git_location = nil
|
7
|
-
if File.exist?(Rails.root.join(".git/config"))
|
8
|
-
default_git_location = `cat .git/config | grep url`.strip.split.last
|
9
|
-
else
|
10
|
-
puts "nope"
|
11
|
-
end
|
12
|
-
default_app_name = File.basename(Rails.root)
|
13
|
-
config = {
|
14
|
-
'app_name' => default_app_name,
|
15
|
-
'git_location' => default_git_location,
|
16
|
-
'basic_auth' => [
|
17
|
-
{
|
18
|
-
'username' => "ci"
|
19
|
-
}
|
20
|
-
],
|
21
|
-
'credentials' => {
|
22
|
-
'provider' => "AWS"
|
23
|
-
},
|
24
|
-
'server' => {
|
25
|
-
'name' => nil,
|
26
|
-
'instance_id' => nil,
|
27
|
-
'flavor_id' => "c1.medium",
|
28
|
-
'security_group' => "ci_servers",
|
29
|
-
'ssh_port' => "22"
|
30
|
-
},
|
31
|
-
'build_command' => "./script/ci_build.sh",
|
32
|
-
'ec2_server_access' => {
|
33
|
-
"key_pair_name" => "#{default_app_name}_ci",
|
34
|
-
"id_rsa_path" => File.expand_path("~/.ssh/id_rsa")
|
35
|
-
},
|
36
|
-
"github_private_ssh_key_path" => File.expand_path("~/.ssh/id_rsa")
|
37
|
-
}
|
38
|
-
|
39
|
-
say "* The name of your application as it will appear in CI", :green
|
40
|
-
app_name = ask("Application Name [#{config['app_name']}]:", :bold)
|
41
|
-
config['app_name'] = app_name if app_name != ""
|
42
|
-
|
43
|
-
say "* The location of your remote git repository which CI will poll and pull from on changes", :green
|
44
|
-
git_location = ask("Git Repository Location [#{config['git_location']}]:", :bold)
|
45
|
-
config['git_location'] = git_location if git_location != ""
|
46
|
-
|
47
|
-
say "* The username you will use to access the CI web interface", :green
|
48
|
-
ci_username = ask("CI Username [#{config['basic_auth'][0]['username']}]:", :bold)
|
49
|
-
config['basic_auth'][0]['username'] = ci_username if ci_username != ""
|
50
|
-
|
51
|
-
say "* The password you will use to access the CI web interface", :green
|
52
|
-
while true do
|
53
|
-
ci_password = ask("Choose a CI password:", :bold)
|
54
|
-
config['basic_auth'][0]['password'] = ci_password
|
55
|
-
if ci_password == ""
|
56
|
-
say "Password cannot be blank", :red
|
57
|
-
else
|
58
|
-
break
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
say (<<-EOS).chop, :green
|
63
|
-
|
64
|
-
* See https://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=access-key
|
65
|
-
* for access key id and secret access key
|
66
|
-
EOS
|
67
|
-
while true do
|
68
|
-
aws_access_key_id = ask("AWS Access Key ID:", :bold)
|
69
|
-
config['credentials']['aws_access_key_id'] = aws_access_key_id
|
70
|
-
if aws_access_key_id == ""
|
71
|
-
say "AWS Access Key ID cannot be blank", :red
|
72
|
-
else
|
73
|
-
break
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
while true do
|
78
|
-
aws_secret_access_key = ask("AWS Secret Access Key:", :bold)
|
79
|
-
config['credentials']['aws_secret_access_key'] = aws_secret_access_key
|
80
|
-
if aws_secret_access_key == ""
|
81
|
-
say "AWS Secret Access Key cannot be blank", :red
|
82
|
-
else
|
83
|
-
break
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
build_command = ask("Build Command: [#{config['build_command']}]:", :bold)
|
88
|
-
config['build_command'] = build_command if build_command != ""
|
89
|
-
|
90
|
-
say (<<-EOS).chop, :green
|
91
|
-
|
92
|
-
* This should refer to an SSH key pair that you have already generated. You may wish to generate a new key
|
93
|
-
* separate from what you may already be using for github or other systems.
|
94
|
-
* For a tutorial on this see: http://open.bsdcow.org/histerical/tutorials/ssh_pubkey_auth#1.2
|
95
|
-
EOS
|
96
|
-
while true do
|
97
|
-
id_rsa_path = ask("SSH Private Key for EC2 Access [#{config['ec2_server_access']['id_rsa_path'].split('/').last}]:", :bold)
|
98
|
-
config['ec2_server_access']['id_rsa_path'] = id_rsa_path if id_rsa_path != ""
|
99
|
-
if config['ec2_server_access']['id_rsa_path'] != File.expand_path(config['ec2_server_access']['id_rsa_path'])
|
100
|
-
config['ec2_server_access']['id_rsa_path'] = File.expand_path(File.join(ENV['HOME'], '.ssh', config['ec2_server_access']['id_rsa_path']))
|
101
|
-
end
|
102
|
-
if File.exist?(config['ec2_server_access']['id_rsa_path']) && File.exist?("#{config['ec2_server_access']['id_rsa_path']}.pub")
|
103
|
-
break
|
104
|
-
else
|
105
|
-
say "Unable to find both #{config['ec2_server_access']['id_rsa_path']} and #{config['ec2_server_access']['id_rsa_path']}.pub", :red
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
say (<<-EOS).chop, :green
|
110
|
-
|
111
|
-
* This needs to refer to an SSH Private Key that has been associated an account that has access to the git
|
112
|
-
* repository you entered above. On github this will be listed here: https://github.com/settings/ssh
|
113
|
-
EOS
|
114
|
-
while true do
|
115
|
-
github_private_ssh_key_path = ask("SSH Private Key for Github [#{config['github_private_ssh_key_path'].split('/').last}]:", :bold)
|
116
|
-
config['github_private_ssh_key_path'] = github_private_ssh_key_path if github_private_ssh_key_path != ""
|
117
|
-
if config['github_private_ssh_key_path'] != File.expand_path(config['github_private_ssh_key_path'])
|
118
|
-
config['github_private_ssh_key_path'] = File.expand_path(File.join(ENV['HOME'], '.ssh', config['github_private_ssh_key_path']))
|
119
|
-
end
|
120
|
-
if File.exist?(config['github_private_ssh_key_path'])
|
121
|
-
break
|
122
|
-
else
|
123
|
-
say "Unable to find #{config['github_private_ssh_key_path']}", :red
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
config_ci = YAML.load_file(Rails.root.join("config/ci.yml")) rescue {}
|
128
|
-
config_ci.merge!(config)
|
129
|
-
|
130
|
-
File.open(Rails.root.join("config/ci.yml"), "w") do |f|
|
131
|
-
f << config_ci.to_yaml
|
132
|
-
end
|
133
|
-
|
134
|
-
say "\n\nconfig/ci.yml configured:\n#{File.read(Rails.root.join('config/ci.yml'))}\n"
|
135
|
-
say "You can edit this file to change any additional defaults."
|
136
|
-
say "Before continuing, be sure to push uncommitted changes to your git repository.", :green
|
137
|
-
say "For next steps, see the lobot README.md"
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|