From cd376cf9de6f11e65e6a3d1bab0a84c8bae264fc Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 18:01:19 -0500 Subject: [PATCH 01/59] #2932: restructure 'vagrant' puppet environment --- Vagrantfile | 101 +----------------- .../vagrant/manifests/compile_asset.pp | 47 -------- .../vagrant/manifests/configure_redis.pp | 9 -- .../vagrant/manifests/configure_system.pp | 6 -- .../vagrant/manifests/install_packages.pp | 42 -------- .../vagrant/manifests/install_sklearn.pp | 18 ---- .../vagrant/manifests/setup_database.pp | 24 ----- puppet/environment/vagrant/manifests/site.pp | 12 +++ .../vagrant/manifests/start_webserver.pp | 13 --- .../vagrant/manifests/vagrant_mounted.pp | 11 -- .../modules/compiler/manifests/init.pp | 49 +++++++++ .../modules/database/manifests/init.pp | 26 +++++ .../vagrant/modules/package/manifests/init.pp | 44 ++++++++ .../vagrant/modules/redis/manifests/init.pp | 11 ++ .../vagrant/modules/sklearn/manifests/init.pp | 20 ++++ .../vagrant/modules/system/manifests/init.pp | 7 ++ .../vagrant/modules/vagrant/manifests/init.pp | 12 +++ .../modules/webserver/manifests/init.pp | 15 +++ 18 files changed, 197 insertions(+), 270 deletions(-) delete mode 100644 puppet/environment/vagrant/manifests/compile_asset.pp delete mode 100644 puppet/environment/vagrant/manifests/configure_redis.pp delete mode 100644 puppet/environment/vagrant/manifests/configure_system.pp delete mode 100644 puppet/environment/vagrant/manifests/install_packages.pp delete mode 100644 puppet/environment/vagrant/manifests/install_sklearn.pp delete mode 100644 puppet/environment/vagrant/manifests/setup_database.pp create mode 100644 puppet/environment/vagrant/manifests/site.pp delete mode 100644 puppet/environment/vagrant/manifests/start_webserver.pp delete mode 100644 puppet/environment/vagrant/manifests/vagrant_mounted.pp create mode 100644 puppet/environment/vagrant/modules/compiler/manifests/init.pp create mode 100644 puppet/environment/vagrant/modules/database/manifests/init.pp create mode 100644 puppet/environment/vagrant/modules/package/manifests/init.pp create mode 100644 puppet/environment/vagrant/modules/redis/manifests/init.pp create mode 100644 puppet/environment/vagrant/modules/sklearn/manifests/init.pp create mode 100644 puppet/environment/vagrant/modules/system/manifests/init.pp create mode 100644 puppet/environment/vagrant/modules/vagrant/manifests/init.pp create mode 100644 puppet/environment/vagrant/modules/webserver/manifests/init.pp diff --git a/Vagrantfile b/Vagrantfile index 8f6d3e339..3ed4d9636 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -74,106 +74,7 @@ Vagrant.configure(2) do |config| "puppet/environment/#{environment}/modules_contrib", "puppet/environment/#{environment}/modules", ] - puppet.manifest_file = 'install_packages.pp' - puppet.hiera_config_path = 'hiera.yaml' - end - - ## Custom Manifest: build scikit-learn - config.vm.provision 'puppet' do |puppet| - puppet.environment_path = 'puppet/environment' - puppet.environment = environment - puppet.manifests_path = "puppet/environment/#{environment}/manifests" - puppet.module_path = [ - "puppet/environment/#{environment}/modules_contrib", - "puppet/environment/#{environment}/modules", - ] - puppet.manifest_file = 'install_sklearn.pp' - puppet.hiera_config_path = 'hiera.yaml' - end - - ## Custom Manifest: ensure vagrant-mounted event - # - # Note: future parser allow heredoc syntax in the puppet manifest (since puppet 3.5) - config.vm.provision 'puppet' do |puppet| - puppet.environment_path = 'puppet/environment' - puppet.environment = environment - puppet.manifests_path = "puppet/environment/#{environment}/manifests" - puppet.module_path = [ - "puppet/environment/#{environment}/modules_contrib", - "puppet/environment/#{environment}/modules", - ] - puppet.manifest_file = 'vagrant_mounted.pp' - puppet.hiera_config_path = 'hiera.yaml' - end - - ## Custom Manifest: install redis client / server - # - # Note: future parser allow heredoc syntax in the puppet manifest (since puppet 3.5) - config.vm.provision 'puppet' do |puppet| - puppet.environment_path = 'puppet/environment' - puppet.environment = environment - puppet.manifests_path = "puppet/environment/#{environment}/manifests" - puppet.module_path = [ - "puppet/environment/#{environment}/modules_contrib", - "puppet/environment/#{environment}/modules", - ] - puppet.manifest_file = 'configure_redis.pp' - puppet.hiera_config_path = 'hiera.yaml' - end - - ## Custom Manifest: configure system (i.e. system timezone) - config.vm.provision 'puppet' do |puppet| - puppet.environment_path = 'puppet/environment' - puppet.environment = environment - puppet.manifests_path = "puppet/environment/#{environment}/manifests" - puppet.module_path = [ - "puppet/environment/#{environment}/modules_contrib", - "puppet/environment/#{environment}/modules", - ] - puppet.manifest_file = 'configure_system.pp' - end - - ## Custom Manifest: define webcompilers - # - # Note: future parser allow heredoc sytnax (since puppet 3.5), and allows - # array iteration in the puppet manifest. - config.vm.provision 'puppet' do |puppet| - puppet.environment_path = 'puppet/environment' - puppet.environment = environment - puppet.manifests_path = "puppet/environment/#{environment}/manifests" - puppet.module_path = [ - "puppet/environment/#{environment}/modules_contrib", - "puppet/environment/#{environment}/modules", - ] - puppet.manifest_file = 'compile_asset.pp' - puppet.hiera_config_path = 'hiera.yaml' - end - - ## Custom Manifest: install, and configure SQL database - config.vm.provision 'puppet' do |puppet| - puppet.environment_path = 'puppet/environment' - puppet.environment = environment - puppet.manifests_path = "puppet/environment/#{environment}/manifests" - puppet.module_path = [ - "puppet/environment/#{environment}/modules_contrib", - "puppet/environment/#{environment}/modules", - ] - puppet.manifest_file = 'setup_database.pp' - puppet.hiera_config_path = 'hiera.yaml' - end - - ## Custom Manifest: start webserver - # - # Note: future parser allow heredoc syntax in the puppet manifest (since puppet 3.5) - config.vm.provision 'puppet' do |puppet| - puppet.environment_path = 'puppet/environment' - puppet.environment = environment - puppet.manifests_path = "puppet/environment/#{environment}/manifests" - puppet.module_path = [ - "puppet/environment/#{environment}/modules_contrib", - "puppet/environment/#{environment}/modules", - ] - puppet.manifest_file = 'start_webserver.pp' + puppet.manifest_file = 'site.pp' puppet.hiera_config_path = 'hiera.yaml' end diff --git a/puppet/environment/vagrant/manifests/compile_asset.pp b/puppet/environment/vagrant/manifests/compile_asset.pp deleted file mode 100644 index 31a12fcef..000000000 --- a/puppet/environment/vagrant/manifests/compile_asset.pp +++ /dev/null @@ -1,47 +0,0 @@ -### -### compile_asset.pp: install, configure, and run initial compile against -### source files. -### - -## ensure log directory, package dependencies -class dependencies { - require system::log_directory - contain package::webcompilers -} - -## configure webcompilers -class configure { - ## set dependency - require dependencies - - ## configure webcompilers - require system::webcompiler_directory - contain compiler::webcompilers -} - -## start webcompilers -class start { - ## set dependency - require dependencies - require configure - - ## start compiler(s) - contain compiler::start_sass - contain compiler::start_uglifyjs - contain compiler::start_browserify - contain compiler::start_imagemin -} - -## initial compile -class initiate { - ## set dependency - require dependencies - require configure - require start - - ## initial compile - contain compiler::initial_compile -} - -## initiate -include initiate \ No newline at end of file diff --git a/puppet/environment/vagrant/manifests/configure_redis.pp b/puppet/environment/vagrant/manifests/configure_redis.pp deleted file mode 100644 index 0afc6f63a..000000000 --- a/puppet/environment/vagrant/manifests/configure_redis.pp +++ /dev/null @@ -1,9 +0,0 @@ -### -### configure_redis.pp: install redis client, and redis server. -### - -## install redis client -include package::redis_client - -## install redis-server -include package::redis_server \ No newline at end of file diff --git a/puppet/environment/vagrant/manifests/configure_system.pp b/puppet/environment/vagrant/manifests/configure_system.pp deleted file mode 100644 index 27121b1db..000000000 --- a/puppet/environment/vagrant/manifests/configure_system.pp +++ /dev/null @@ -1,6 +0,0 @@ -### -### configure_system.pp: configure system with general requirements. -### - -## define system timezone -include system::set_timezone \ No newline at end of file diff --git a/puppet/environment/vagrant/manifests/install_packages.pp b/puppet/environment/vagrant/manifests/install_packages.pp deleted file mode 100644 index ca70d0d33..000000000 --- a/puppet/environment/vagrant/manifests/install_packages.pp +++ /dev/null @@ -1,42 +0,0 @@ -### -### install_packages.pp: install general packages. -### - -## nodejs, with npm: this cannot be wrapped into a module, and included, as -## needed. Puppet will only allow one instance of this class, regardless of -## of its implementation. -class install_nodejs { - ## set dependency - require apt - - ## install nodejs, with npm - class { 'nodejs': - repo_url_suffix => '5.x', - } - contain nodejs -} - -## general packages -class general_packages { - ## set dependency - require apt - require install_nodejs - require system::webcompiler_directory - - ## install packages - contain package::inotify_tools - contain package::react_presets - contain package::jsonschema - contain package::xmltodict - contain package::six - contain package::fetch - contain package::pyyaml - contain package::flask_script - contain package::pytest_flask - contain package::python_dev - contain package::libssl_dev - contain package::scrypt -} - -## initiate -include general_packages diff --git a/puppet/environment/vagrant/manifests/install_sklearn.pp b/puppet/environment/vagrant/manifests/install_sklearn.pp deleted file mode 100644 index 750a8bc7f..000000000 --- a/puppet/environment/vagrant/manifests/install_sklearn.pp +++ /dev/null @@ -1,18 +0,0 @@ -### -### install_sklearn.pp: install sklearn, with all necessary dependencies. -### - -## create '/vagrant/build/' directory -include system::build_directory - -## install sklearn dependencies -include package::sklearn_dependencies - -## download scikit-learn -include package::sklearn - -## build scikit-learn -include sklearn::build_sklearn - -## install scikit-learn -include sklearn::install_sklearn \ No newline at end of file diff --git a/puppet/environment/vagrant/manifests/setup_database.pp b/puppet/environment/vagrant/manifests/setup_database.pp deleted file mode 100644 index 18fee0b6a..000000000 --- a/puppet/environment/vagrant/manifests/setup_database.pp +++ /dev/null @@ -1,24 +0,0 @@ -### -### setup_database.pp: install client, and initialize database tables. -### - -## install sql -class install_sql { - ## install mariadb - contain database::server - - ## install mariadb client - contain database::client - - ## install mariad bindings - contain database::bindings -} - -## create database tables -class create_db { - require install_sql - contain database::database -} - -## initiate -include create_db diff --git a/puppet/environment/vagrant/manifests/site.pp b/puppet/environment/vagrant/manifests/site.pp new file mode 100644 index 000000000..1939ddfc0 --- /dev/null +++ b/puppet/environment/vagrant/manifests/site.pp @@ -0,0 +1,12 @@ +### +### site.pp: load all necessary modules. +### + +include package +include sklearn +include vagrant +include redis +include system +include compiler +include database +include webserver \ No newline at end of file diff --git a/puppet/environment/vagrant/manifests/start_webserver.pp b/puppet/environment/vagrant/manifests/start_webserver.pp deleted file mode 100644 index d5b703d70..000000000 --- a/puppet/environment/vagrant/manifests/start_webserver.pp +++ /dev/null @@ -1,13 +0,0 @@ -### -### start_webserver.pp: start webserver. -### - -## ensure log directory -require system::log_directory - -## install webserver -include webserver::service - -## start webservers -include package::gunicorn -include webserver::start \ No newline at end of file diff --git a/puppet/environment/vagrant/manifests/vagrant_mounted.pp b/puppet/environment/vagrant/manifests/vagrant_mounted.pp deleted file mode 100644 index 85fef01f2..000000000 --- a/puppet/environment/vagrant/manifests/vagrant_mounted.pp +++ /dev/null @@ -1,11 +0,0 @@ -### -### vagrant_mounted.pp: ensure 'vagrant-mounted' event fires, when '/vagrant' -### shared directory, is mounted within the guest virtual -### machine. -### - -## configure service -include vagrant::service - -## start service -include vagrant::start \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/compiler/manifests/init.pp b/puppet/environment/vagrant/modules/compiler/manifests/init.pp new file mode 100644 index 000000000..6aeda4400 --- /dev/null +++ b/puppet/environment/vagrant/modules/compiler/manifests/init.pp @@ -0,0 +1,49 @@ +### +### init.pp: install, configure, and run initial compile against +### source files. +### + +class compiler { + ## ensure log directory, package dependencies + class dependencies { + require system::log_directory + contain package::webcompilers + } + + ## configure webcompilers + class configure { + ## set dependency + require dependencies + + ## configure webcompilers + require system::webcompiler_directory + contain compiler::webcompilers + } + + ## start webcompilers + class start { + ## set dependency + require dependencies + require configure + + ## start compiler(s) + contain compiler::start_sass + contain compiler::start_uglifyjs + contain compiler::start_browserify + contain compiler::start_imagemin + } + + ## initial compile + class initiate { + ## set dependency + require dependencies + require configure + require start + + ## initial compile + contain compiler::initial_compile + } + + ## initiate + include initiate +} \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/database/manifests/init.pp b/puppet/environment/vagrant/modules/database/manifests/init.pp new file mode 100644 index 000000000..bf9b7fbd9 --- /dev/null +++ b/puppet/environment/vagrant/modules/database/manifests/init.pp @@ -0,0 +1,26 @@ +### +### init.pp: install client, and initialize database tables. +### + +class database { + ## install sql + class install_sql { + ## install mariadb + contain database::server + + ## install mariadb client + contain database::client + + ## install mariad bindings + contain database::bindings + } + + ## create database tables + class create_db { + require install_sql + contain database::database + } + + ## initiate + include create_db +} \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/package/manifests/init.pp b/puppet/environment/vagrant/modules/package/manifests/init.pp new file mode 100644 index 000000000..ba91ed1b3 --- /dev/null +++ b/puppet/environment/vagrant/modules/package/manifests/init.pp @@ -0,0 +1,44 @@ +### +### init.pp: install general packages. +### + +class package { + ## nodejs, with npm: this cannot be wrapped into a module, and included, as + ## needed. Puppet will only allow one instance of this class, + ## regardless of its implementation. + class install_nodejs { + ## set dependency + require apt + + ## install nodejs, with npm + class { 'nodejs': + repo_url_suffix => '5.x', + } + contain nodejs + } + + ## general packages + class general_packages { + ## set dependency + require apt + require install_nodejs + require system::webcompiler_directory + + ## install packages + contain package::inotify_tools + contain package::react_presets + contain package::jsonschema + contain package::xmltodict + contain package::six + contain package::fetch + contain package::pyyaml + contain package::flask_script + contain package::pytest_flask + contain package::python_dev + contain package::libssl_dev + contain package::scrypt + } +} + +## initiate +include general_packages diff --git a/puppet/environment/vagrant/modules/redis/manifests/init.pp b/puppet/environment/vagrant/modules/redis/manifests/init.pp new file mode 100644 index 000000000..51f2ad8e3 --- /dev/null +++ b/puppet/environment/vagrant/modules/redis/manifests/init.pp @@ -0,0 +1,11 @@ +### +### init.pp: install redis client, and redis server. +### + +class redis { + ## install redis client + include package::redis_client + + ## install redis-server + include package::redis_server +} \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/sklearn/manifests/init.pp b/puppet/environment/vagrant/modules/sklearn/manifests/init.pp new file mode 100644 index 000000000..dbe4dc1c3 --- /dev/null +++ b/puppet/environment/vagrant/modules/sklearn/manifests/init.pp @@ -0,0 +1,20 @@ +### +### init.pp: install sklearn, with all necessary dependencies. +### + +class sklearn { + ## create '/vagrant/build/' directory + include system::build_directory + + ## install sklearn dependencies + include package::sklearn_dependencies + + ## download scikit-learn + include package::sklearn + + ## build scikit-learn + include sklearn::build_sklearn + + ## install scikit-learn + include sklearn::install_sklearn +} \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/system/manifests/init.pp b/puppet/environment/vagrant/modules/system/manifests/init.pp new file mode 100644 index 000000000..cb66f584f --- /dev/null +++ b/puppet/environment/vagrant/modules/system/manifests/init.pp @@ -0,0 +1,7 @@ +### +### init.pp: configure system with general requirements. +### + +class system { + include system::set_timezone +} \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/vagrant/manifests/init.pp b/puppet/environment/vagrant/modules/vagrant/manifests/init.pp new file mode 100644 index 000000000..c81f37eb9 --- /dev/null +++ b/puppet/environment/vagrant/modules/vagrant/manifests/init.pp @@ -0,0 +1,12 @@ +### +### init.pp: ensure 'vagrant-mounted' event fires, when '/vagrant' shared +### directory, is mounted within the guest virtual machine. +### + +class vagrant { + ## configure service + include vagrant::service + + ## start service + include vagrant::start +} \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/webserver/manifests/init.pp b/puppet/environment/vagrant/modules/webserver/manifests/init.pp new file mode 100644 index 000000000..e424dd6e4 --- /dev/null +++ b/puppet/environment/vagrant/modules/webserver/manifests/init.pp @@ -0,0 +1,15 @@ +### +### init.pp: start webserver. +### + +class webserver { + ## ensure log directory + require system::log_directory + + ## install webserver + include webserver::service + + ## start webservers + include package::gunicorn + include webserver::start +} \ No newline at end of file From addb6db30cbad14cc2b2eefa8f5a1ecc9e3c8429 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 18:03:25 -0500 Subject: [PATCH 02/59] #2932: Vagrantfile, standardize comments --- Vagrantfile | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index 3ed4d9636..c4e29c239 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,14 +1,14 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : +## -*- mode: ruby -*- +## vi: set ft=ruby : -# All Vagrant configuration is done below. The "2" in Vagrant.configure -# configures the configuration version (we support older styles for +## All Vagrant configuration is done below. The "2" in Vagrant.configure +## configures the configuration version (we support older styles for # backwards compatibility). Please don't change it unless you know what -# you're doing. +## you're doing. Vagrant.configure(2) do |config| - # The most common configuration options are documented and commented below. - # For a complete reference, please see the online documentation at - # https://docs.vagrantup.com. + ## The most common configuration options are documented and commented below. + ## For a complete reference, please see the online documentation at + ## https://docs.vagrantup.com. ## Variables (ruby syntax) atlas_repo = 'jeff1evesque' @@ -39,7 +39,7 @@ Vagrant.configure(2) do |config| end ## Every Vagrant development environment requires a box. You can search for - # boxes at https://atlas.hashicorp.com/search. + ## boxes at https://atlas.hashicorp.com/search. config.vm.box = "#{atlas_repo}/#{atlas_box}" config.vm.box_download_checksum = 'c26da6ba1c169bdc6e9168125ddb0525' config.vm.box_url = "https://atlas.hashicorp.com/#{atlas_repo}/boxes/#{atlas_box}/versions/#{box_version}/providers/virtualbox.box" @@ -49,8 +49,8 @@ Vagrant.configure(2) do |config| config.puppet_install.puppet_version = '4.9.3' ## Create a forwarded port mapping which allows access to a specific port - # within the machine from a port on the host machine. In the example below, - # accessing "localhost:8080" will access port 80 on the guest machine. + ## within the machine from a port on the host machine. In the example below, + ## accessing "localhost:8080" will access port 80 on the guest machine. config.vm.network 'forwarded_port', guest: 5000, host: 8080 config.vm.network 'forwarded_port', guest: 443, host: 8585 @@ -64,8 +64,9 @@ Vagrant.configure(2) do |config| config.r10k.puppetfile_path = "puppet/environment/#{environment}/Puppetfile" ## Custom Manifest: install needed packages - # - # Note: future parser allow array iteration in the puppet manifest + ## + ## Note: future parser allow array iteration in the puppet manifest + ## config.vm.provision 'puppet' do |puppet| puppet.environment_path = 'puppet/environment' puppet.environment = environment @@ -78,7 +79,7 @@ Vagrant.configure(2) do |config| puppet.hiera_config_path = 'hiera.yaml' end - # clean up files on the host after 'vagrant destroy' + ## clean up files on the host after 'vagrant destroy' config.trigger.after :destroy do run 'rm -Rf log/database' run 'rm -Rf log/application' From 3524929fae0558e9d436b39a93ed81535df0693a Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 18:21:59 -0500 Subject: [PATCH 03/59] #2932: init.pp, reduce docstring --- puppet/environment/vagrant/modules/compiler/manifests/init.pp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/puppet/environment/vagrant/modules/compiler/manifests/init.pp b/puppet/environment/vagrant/modules/compiler/manifests/init.pp index 6aeda4400..ebc0d14a0 100644 --- a/puppet/environment/vagrant/modules/compiler/manifests/init.pp +++ b/puppet/environment/vagrant/modules/compiler/manifests/init.pp @@ -1,6 +1,5 @@ ### -### init.pp: install, configure, and run initial compile against -### source files. +### init.pp: install, configure, and run initial compile against source files. ### class compiler { From 46caac7f97141aa0a8bbd16358987f6f5202470a Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 18:22:50 -0500 Subject: [PATCH 04/59] #2932: restructure 'docker' puppet environment --- database.dockerfile | 2 +- default.dockerfile | 13 ++--- .../docker/manifests/compile_asset.pp | 47 ------------------ .../docker/manifests/configure_redis.pp | 9 ---- .../docker/manifests/configure_system.pp | 9 ---- .../docker/manifests/install_packages.pp | 42 ---------------- .../docker/manifests/install_sklearn.pp | 18 ------- .../docker/manifests/setup_database.pp | 24 ---------- .../docker/manifests/start_webserver.pp | 15 ------ .../docker/modules/compiler/manifests/init.pp | 48 +++++++++++++++++++ .../docker/modules/database/manifests/init.pp | 26 ++++++++++ .../docker/modules/package/manifests/init.pp | 44 +++++++++++++++++ .../docker/modules/redis/manifests/init.pp | 8 ++++ .../docker/modules/sklearn/manifests/init.pp | 20 ++++++++ .../docker/modules/system/manifests/init.pp | 11 +++++ .../modules/webserver/manifests/init.pp | 17 +++++++ redis.dockerfile | 2 +- webserver.dockerfile | 2 +- 18 files changed, 184 insertions(+), 173 deletions(-) delete mode 100644 puppet/environment/docker/manifests/compile_asset.pp delete mode 100644 puppet/environment/docker/manifests/configure_redis.pp delete mode 100644 puppet/environment/docker/manifests/configure_system.pp delete mode 100644 puppet/environment/docker/manifests/install_packages.pp delete mode 100644 puppet/environment/docker/manifests/install_sklearn.pp delete mode 100644 puppet/environment/docker/manifests/setup_database.pp delete mode 100644 puppet/environment/docker/manifests/start_webserver.pp create mode 100644 puppet/environment/docker/modules/compiler/manifests/init.pp create mode 100644 puppet/environment/docker/modules/database/manifests/init.pp create mode 100644 puppet/environment/docker/modules/package/manifests/init.pp create mode 100644 puppet/environment/docker/modules/redis/manifests/init.pp create mode 100644 puppet/environment/docker/modules/sklearn/manifests/init.pp create mode 100644 puppet/environment/docker/modules/system/manifests/init.pp create mode 100644 puppet/environment/docker/modules/webserver/manifests/init.pp diff --git a/database.dockerfile b/database.dockerfile index 5ff6527f8..a83ae76fe 100644 --- a/database.dockerfile +++ b/database.dockerfile @@ -6,7 +6,7 @@ ENV ENVIRONMENT docker ENV ENVIRONMENT_DIR $ROOT_PROJECT/puppet/environment/$ENVIRONMENT ## provision with puppet -RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/manifests/setup_database.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test +RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/database/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test ## executed everytime container starts CMD ["mysqld"] \ No newline at end of file diff --git a/default.dockerfile b/default.dockerfile index 31cb7e79b..8ff8d432d 100644 --- a/default.dockerfile +++ b/default.dockerfile @@ -10,8 +10,9 @@ RUN mkdir /var/machine-learning COPY . /var/machine-learning ## install git, wget, pip -# -# Note: r10k requires 'git' installed +## +## Note: r10k requires 'git' installed +## RUN apt-get -y update RUN apt-get -y install git=1:1.9.1-1ubuntu0.3 RUN apt-get -y install wget=1.15-1ubuntu1.14.04.2 @@ -35,10 +36,10 @@ RUN mkdir -p $ENVIRONMENT_DIR/modules_contrib/ RUN PUPPETFILE=$ENVIRONMENT_DIR/Puppetfile PUPPETFILE_DIR=$ENVIRONMENT_DIR/modules_contrib/ r10k puppetfile install ## provision with puppet -RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/manifests/install_packages.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test -RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/manifests/install_sklearn.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test -RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/manifests/configure_system.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test -RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/manifests/compile_asset.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test --debug +RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/package/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test +RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/sklearn/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test +RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/system/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test +RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/compiler/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test --debug ## show directory RUN ls -l $ROOT_PROJECT/interface/static/js diff --git a/puppet/environment/docker/manifests/compile_asset.pp b/puppet/environment/docker/manifests/compile_asset.pp deleted file mode 100644 index 31a12fcef..000000000 --- a/puppet/environment/docker/manifests/compile_asset.pp +++ /dev/null @@ -1,47 +0,0 @@ -### -### compile_asset.pp: install, configure, and run initial compile against -### source files. -### - -## ensure log directory, package dependencies -class dependencies { - require system::log_directory - contain package::webcompilers -} - -## configure webcompilers -class configure { - ## set dependency - require dependencies - - ## configure webcompilers - require system::webcompiler_directory - contain compiler::webcompilers -} - -## start webcompilers -class start { - ## set dependency - require dependencies - require configure - - ## start compiler(s) - contain compiler::start_sass - contain compiler::start_uglifyjs - contain compiler::start_browserify - contain compiler::start_imagemin -} - -## initial compile -class initiate { - ## set dependency - require dependencies - require configure - require start - - ## initial compile - contain compiler::initial_compile -} - -## initiate -include initiate \ No newline at end of file diff --git a/puppet/environment/docker/manifests/configure_redis.pp b/puppet/environment/docker/manifests/configure_redis.pp deleted file mode 100644 index 2d30d2f8e..000000000 --- a/puppet/environment/docker/manifests/configure_redis.pp +++ /dev/null @@ -1,9 +0,0 @@ -### -### configure_redis.pp: install redis client, and redis server. -### - -## install redis-server -include package::redis_server - -## configure redis-server -include redis::configuration diff --git a/puppet/environment/docker/manifests/configure_system.pp b/puppet/environment/docker/manifests/configure_system.pp deleted file mode 100644 index 6994f9617..000000000 --- a/puppet/environment/docker/manifests/configure_system.pp +++ /dev/null @@ -1,9 +0,0 @@ -### -### configure_system.pp: configure system with general requirements. -### - -## ensure log directory -require system::log_directory - -## define system timezone -include system::set_timezone \ No newline at end of file diff --git a/puppet/environment/docker/manifests/install_packages.pp b/puppet/environment/docker/manifests/install_packages.pp deleted file mode 100644 index ca70d0d33..000000000 --- a/puppet/environment/docker/manifests/install_packages.pp +++ /dev/null @@ -1,42 +0,0 @@ -### -### install_packages.pp: install general packages. -### - -## nodejs, with npm: this cannot be wrapped into a module, and included, as -## needed. Puppet will only allow one instance of this class, regardless of -## of its implementation. -class install_nodejs { - ## set dependency - require apt - - ## install nodejs, with npm - class { 'nodejs': - repo_url_suffix => '5.x', - } - contain nodejs -} - -## general packages -class general_packages { - ## set dependency - require apt - require install_nodejs - require system::webcompiler_directory - - ## install packages - contain package::inotify_tools - contain package::react_presets - contain package::jsonschema - contain package::xmltodict - contain package::six - contain package::fetch - contain package::pyyaml - contain package::flask_script - contain package::pytest_flask - contain package::python_dev - contain package::libssl_dev - contain package::scrypt -} - -## initiate -include general_packages diff --git a/puppet/environment/docker/manifests/install_sklearn.pp b/puppet/environment/docker/manifests/install_sklearn.pp deleted file mode 100644 index 750a8bc7f..000000000 --- a/puppet/environment/docker/manifests/install_sklearn.pp +++ /dev/null @@ -1,18 +0,0 @@ -### -### install_sklearn.pp: install sklearn, with all necessary dependencies. -### - -## create '/vagrant/build/' directory -include system::build_directory - -## install sklearn dependencies -include package::sklearn_dependencies - -## download scikit-learn -include package::sklearn - -## build scikit-learn -include sklearn::build_sklearn - -## install scikit-learn -include sklearn::install_sklearn \ No newline at end of file diff --git a/puppet/environment/docker/manifests/setup_database.pp b/puppet/environment/docker/manifests/setup_database.pp deleted file mode 100644 index 18fee0b6a..000000000 --- a/puppet/environment/docker/manifests/setup_database.pp +++ /dev/null @@ -1,24 +0,0 @@ -### -### setup_database.pp: install client, and initialize database tables. -### - -## install sql -class install_sql { - ## install mariadb - contain database::server - - ## install mariadb client - contain database::client - - ## install mariad bindings - contain database::bindings -} - -## create database tables -class create_db { - require install_sql - contain database::database -} - -## initiate -include create_db diff --git a/puppet/environment/docker/manifests/start_webserver.pp b/puppet/environment/docker/manifests/start_webserver.pp deleted file mode 100644 index 30800cc05..000000000 --- a/puppet/environment/docker/manifests/start_webserver.pp +++ /dev/null @@ -1,15 +0,0 @@ -### -### start_webserver.pp: start webserver, and ensure all client services exist, -### and properly configured. -### - -## install mariadb -include database::client -include database::bindings - -## install redis client -include package::redis_client - -## install webserver -include package::gunicorn -include webserver::service \ No newline at end of file diff --git a/puppet/environment/docker/modules/compiler/manifests/init.pp b/puppet/environment/docker/modules/compiler/manifests/init.pp new file mode 100644 index 000000000..624f178f8 --- /dev/null +++ b/puppet/environment/docker/modules/compiler/manifests/init.pp @@ -0,0 +1,48 @@ +### +### init.pp: install, configure, and run initial compile against source files. +### + +class compiler { + ## ensure log directory, package dependencies + class dependencies { + require system::log_directory + contain package::webcompilers + } + + ## configure webcompilers + class configure { + ## set dependency + require dependencies + + ## configure webcompilers + require system::webcompiler_directory + contain compiler::webcompilers + } + + ## start webcompilers + class start { + ## set dependency + require dependencies + require configure + + ## start compiler(s) + contain compiler::start_sass + contain compiler::start_uglifyjs + contain compiler::start_browserify + contain compiler::start_imagemin + } +} + +## initial compile +class initiate { + ## set dependency + require dependencies + require configure + require start + + ## initial compile + contain compiler::initial_compile +} + +## initiate +include initiate \ No newline at end of file diff --git a/puppet/environment/docker/modules/database/manifests/init.pp b/puppet/environment/docker/modules/database/manifests/init.pp new file mode 100644 index 000000000..41229e1d7 --- /dev/null +++ b/puppet/environment/docker/modules/database/manifests/init.pp @@ -0,0 +1,26 @@ +### +### init.pp: install client, and initialize database tables. +### + +class database { + ## install sql + class install_sql { + ## install mariadb + contain database::server + + ## install mariadb client + contain database::client + + ## install mariad bindings + contain database::bindings + } + + ## create database tables + class create_db { + require install_sql + contain database::database + } + + ## initiate + include create_db +} diff --git a/puppet/environment/docker/modules/package/manifests/init.pp b/puppet/environment/docker/modules/package/manifests/init.pp new file mode 100644 index 000000000..9c4395a34 --- /dev/null +++ b/puppet/environment/docker/modules/package/manifests/init.pp @@ -0,0 +1,44 @@ +### +### init.pp: install general packages. +### + +class package { + ## nodejs, with npm: this cannot be wrapped into a module, and included, as + ## needed. Puppet will only allow one instance of this class, regardless of + ## of its implementation. + class install_nodejs { + ## set dependency + require apt + + ## install nodejs, with npm + class { 'nodejs': + repo_url_suffix => '5.x', + } + contain nodejs + } + + ## general packages + class general_packages { + ## set dependency + require apt + require install_nodejs + require system::webcompiler_directory + + ## install packages + contain package::inotify_tools + contain package::react_presets + contain package::jsonschema + contain package::xmltodict + contain package::six + contain package::fetch + contain package::pyyaml + contain package::flask_script + contain package::pytest_flask + contain package::python_dev + contain package::libssl_dev + contain package::scrypt + } +} + +## initiate +include general_packages diff --git a/puppet/environment/docker/modules/redis/manifests/init.pp b/puppet/environment/docker/modules/redis/manifests/init.pp new file mode 100644 index 000000000..c4b396790 --- /dev/null +++ b/puppet/environment/docker/modules/redis/manifests/init.pp @@ -0,0 +1,8 @@ +### +### init.pp: install redis client, and redis server. +### + +class redis { + include package::redis_server + include redis::configuration +} diff --git a/puppet/environment/docker/modules/sklearn/manifests/init.pp b/puppet/environment/docker/modules/sklearn/manifests/init.pp new file mode 100644 index 000000000..dbe4dc1c3 --- /dev/null +++ b/puppet/environment/docker/modules/sklearn/manifests/init.pp @@ -0,0 +1,20 @@ +### +### init.pp: install sklearn, with all necessary dependencies. +### + +class sklearn { + ## create '/vagrant/build/' directory + include system::build_directory + + ## install sklearn dependencies + include package::sklearn_dependencies + + ## download scikit-learn + include package::sklearn + + ## build scikit-learn + include sklearn::build_sklearn + + ## install scikit-learn + include sklearn::install_sklearn +} \ No newline at end of file diff --git a/puppet/environment/docker/modules/system/manifests/init.pp b/puppet/environment/docker/modules/system/manifests/init.pp new file mode 100644 index 000000000..7d389fdaa --- /dev/null +++ b/puppet/environment/docker/modules/system/manifests/init.pp @@ -0,0 +1,11 @@ +### +### init.pp: configure system with general requirements. +### + +class system { + ## ensure log directory + require system::log_directory + + ## define system timezone + include system::set_timezone +} \ No newline at end of file diff --git a/puppet/environment/docker/modules/webserver/manifests/init.pp b/puppet/environment/docker/modules/webserver/manifests/init.pp new file mode 100644 index 000000000..408f5216d --- /dev/null +++ b/puppet/environment/docker/modules/webserver/manifests/init.pp @@ -0,0 +1,17 @@ +### +### init.pp: start webserver, and ensure all client services exist, and +### properly configured. +### + +class webserver { + ## install mariadb + include database::client + include database::bindings + + ## install redis client + include package::redis_client + + ## install webserver + include package::gunicorn + include webserver::service +} \ No newline at end of file diff --git a/redis.dockerfile b/redis.dockerfile index 3112b56e1..ddae46ef0 100644 --- a/redis.dockerfile +++ b/redis.dockerfile @@ -6,7 +6,7 @@ ENV ENVIRONMENT docker ENV ENVIRONMENT_DIR $ROOT_PROJECT/puppet/environment/$ENVIRONMENT ## provision with puppet -RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/manifests/configure_redis.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test +RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/redis/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test ## executed everytime container starts CMD ["redis-server"] diff --git a/webserver.dockerfile b/webserver.dockerfile index 78e617b3a..938db43a4 100644 --- a/webserver.dockerfile +++ b/webserver.dockerfile @@ -6,7 +6,7 @@ ENV ENVIRONMENT docker ENV ENVIRONMENT_DIR $ROOT_PROJECT/puppet/environment/$ENVIRONMENT ## provision with puppet -RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/manifests/start_webserver.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test +RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/webserver/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test ## executed everytime container starts WORKDIR /var/machine-learning From 456c300dfa34e8d65dd3aa8ccc14b3469733d592 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 18:26:23 -0500 Subject: [PATCH 05/59] #2932: site.pp, add file --- puppet/environment/docker/manifests/site.pp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 puppet/environment/docker/manifests/site.pp diff --git a/puppet/environment/docker/manifests/site.pp b/puppet/environment/docker/manifests/site.pp new file mode 100644 index 000000000..df2916608 --- /dev/null +++ b/puppet/environment/docker/manifests/site.pp @@ -0,0 +1,14 @@ +### +### site.pp: load all necessary modules. +### +### Note: this file is not currently implemented, since the docker environment +### employs dockerfiles, where corresponding 'init.pp' are included. +### + +include package +include sklearn +include redis +include system +include compiler +include database +include webserver \ No newline at end of file From 99350dbb343670593bf1aa2069e8b2f50f56b320 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 19:03:51 -0500 Subject: [PATCH 06/59] #2932: remove unnecessary class nesting --- .../modules/compiler/manifests/init.pp | 45 ++++------------- .../modules/database/manifests/init.pp | 24 ++-------- .../vagrant/modules/package/manifests/init.pp | 48 +++++++------------ 3 files changed, 30 insertions(+), 87 deletions(-) diff --git a/puppet/environment/vagrant/modules/compiler/manifests/init.pp b/puppet/environment/vagrant/modules/compiler/manifests/init.pp index ebc0d14a0..966efb846 100644 --- a/puppet/environment/vagrant/modules/compiler/manifests/init.pp +++ b/puppet/environment/vagrant/modules/compiler/manifests/init.pp @@ -4,45 +4,18 @@ class compiler { ## ensure log directory, package dependencies - class dependencies { - require system::log_directory - contain package::webcompilers - } + require system::log_directory + contain package::webcompilers ## configure webcompilers - class configure { - ## set dependency - require dependencies + contain compiler::webcompilers - ## configure webcompilers - require system::webcompiler_directory - contain compiler::webcompilers - } - - ## start webcompilers - class start { - ## set dependency - require dependencies - require configure - - ## start compiler(s) - contain compiler::start_sass - contain compiler::start_uglifyjs - contain compiler::start_browserify - contain compiler::start_imagemin - } + ## start compiler(s) + contain compiler::start_sass + contain compiler::start_uglifyjs + contain compiler::start_browserify + contain compiler::start_imagemin ## initial compile - class initiate { - ## set dependency - require dependencies - require configure - require start - - ## initial compile - contain compiler::initial_compile - } - - ## initiate - include initiate + contain compiler::initial_compile } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/database/manifests/init.pp b/puppet/environment/vagrant/modules/database/manifests/init.pp index bf9b7fbd9..cc49fe607 100644 --- a/puppet/environment/vagrant/modules/database/manifests/init.pp +++ b/puppet/environment/vagrant/modules/database/manifests/init.pp @@ -3,24 +3,8 @@ ### class database { - ## install sql - class install_sql { - ## install mariadb - contain database::server - - ## install mariadb client - contain database::client - - ## install mariad bindings - contain database::bindings - } - - ## create database tables - class create_db { - require install_sql - contain database::database - } - - ## initiate - include create_db + contain database::server + contain database::client + contain database::bindings + contain database::database } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/package/manifests/init.pp b/puppet/environment/vagrant/modules/package/manifests/init.pp index ba91ed1b3..13ad7ce9e 100644 --- a/puppet/environment/vagrant/modules/package/manifests/init.pp +++ b/puppet/environment/vagrant/modules/package/manifests/init.pp @@ -6,39 +6,25 @@ ## nodejs, with npm: this cannot be wrapped into a module, and included, as ## needed. Puppet will only allow one instance of this class, ## regardless of its implementation. - class install_nodejs { - ## set dependency - require apt + require apt - ## install nodejs, with npm - class { 'nodejs': - repo_url_suffix => '5.x', - } - contain nodejs + ## install nodejs, with npm + class { 'nodejs': + repo_url_suffix => '5.x', } + contain nodejs ## general packages - class general_packages { - ## set dependency - require apt - require install_nodejs - require system::webcompiler_directory - - ## install packages - contain package::inotify_tools - contain package::react_presets - contain package::jsonschema - contain package::xmltodict - contain package::six - contain package::fetch - contain package::pyyaml - contain package::flask_script - contain package::pytest_flask - contain package::python_dev - contain package::libssl_dev - contain package::scrypt - } + contain package::inotify_tools + contain package::react_presets + contain package::jsonschema + contain package::xmltodict + contain package::six + contain package::fetch + contain package::pyyaml + contain package::flask_script + contain package::pytest_flask + contain package::python_dev + contain package::libssl_dev + contain package::scrypt } - -## initiate -include general_packages From d4972ff2c30ab337436a0bb5ae04fe1551bcb93f Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 19:16:09 -0500 Subject: [PATCH 07/59] #2932: remove unnecessary class nesting --- .../docker/modules/compiler/manifests/init.pp | 46 ++++------------- .../docker/modules/database/manifests/init.pp | 23 +++------ .../docker/modules/package/manifests/init.pp | 50 +++++++------------ 3 files changed, 35 insertions(+), 84 deletions(-) diff --git a/puppet/environment/docker/modules/compiler/manifests/init.pp b/puppet/environment/docker/modules/compiler/manifests/init.pp index 624f178f8..5e4689855 100644 --- a/puppet/environment/docker/modules/compiler/manifests/init.pp +++ b/puppet/environment/docker/modules/compiler/manifests/init.pp @@ -4,45 +4,19 @@ class compiler { ## ensure log directory, package dependencies - class dependencies { - require system::log_directory - contain package::webcompilers - } + require system::log_directory + contain package::webcompilers ## configure webcompilers - class configure { - ## set dependency - require dependencies + require system::webcompiler_directory + contain compiler::webcompilers - ## configure webcompilers - require system::webcompiler_directory - contain compiler::webcompilers - } - - ## start webcompilers - class start { - ## set dependency - require dependencies - require configure - - ## start compiler(s) - contain compiler::start_sass - contain compiler::start_uglifyjs - contain compiler::start_browserify - contain compiler::start_imagemin - } -} - -## initial compile -class initiate { - ## set dependency - require dependencies - require configure - require start + ## start compiler(s) + contain compiler::start_sass + contain compiler::start_uglifyjs + contain compiler::start_browserify + contain compiler::start_imagemin ## initial compile contain compiler::initial_compile -} - -## initiate -include initiate \ No newline at end of file +} \ No newline at end of file diff --git a/puppet/environment/docker/modules/database/manifests/init.pp b/puppet/environment/docker/modules/database/manifests/init.pp index 41229e1d7..24ef406b5 100644 --- a/puppet/environment/docker/modules/database/manifests/init.pp +++ b/puppet/environment/docker/modules/database/manifests/init.pp @@ -3,24 +3,15 @@ ### class database { - ## install sql - class install_sql { - ## install mariadb - contain database::server + ## install mariadb + contain database::server - ## install mariadb client - contain database::client + ## install mariadb client + contain database::client - ## install mariad bindings - contain database::bindings - } + ## install mariad bindings + contain database::bindings ## create database tables - class create_db { - require install_sql - contain database::database - } - - ## initiate - include create_db + contain database::database } diff --git a/puppet/environment/docker/modules/package/manifests/init.pp b/puppet/environment/docker/modules/package/manifests/init.pp index 9c4395a34..7c047e95e 100644 --- a/puppet/environment/docker/modules/package/manifests/init.pp +++ b/puppet/environment/docker/modules/package/manifests/init.pp @@ -6,39 +6,25 @@ ## nodejs, with npm: this cannot be wrapped into a module, and included, as ## needed. Puppet will only allow one instance of this class, regardless of ## of its implementation. - class install_nodejs { - ## set dependency - require apt + require apt - ## install nodejs, with npm - class { 'nodejs': - repo_url_suffix => '5.x', - } - contain nodejs + ## install nodejs, with npm + class { 'nodejs': + repo_url_suffix => '5.x', } + contain nodejs ## general packages - class general_packages { - ## set dependency - require apt - require install_nodejs - require system::webcompiler_directory - - ## install packages - contain package::inotify_tools - contain package::react_presets - contain package::jsonschema - contain package::xmltodict - contain package::six - contain package::fetch - contain package::pyyaml - contain package::flask_script - contain package::pytest_flask - contain package::python_dev - contain package::libssl_dev - contain package::scrypt - } -} - -## initiate -include general_packages + contain package::inotify_tools + contain package::react_presets + contain package::jsonschema + contain package::xmltodict + contain package::six + contain package::fetch + contain package::pyyaml + contain package::flask_script + contain package::pytest_flask + contain package::python_dev + contain package::libssl_dev + contain package::scrypt +} \ No newline at end of file From b1beb2cda791882252933dc3da2d67934ab9a6c3 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 19:16:44 -0500 Subject: [PATCH 08/59] #2932: init.pp, 'require system::webcompiler_directory' --- puppet/environment/vagrant/modules/compiler/manifests/init.pp | 1 + 1 file changed, 1 insertion(+) diff --git a/puppet/environment/vagrant/modules/compiler/manifests/init.pp b/puppet/environment/vagrant/modules/compiler/manifests/init.pp index 966efb846..5e4689855 100644 --- a/puppet/environment/vagrant/modules/compiler/manifests/init.pp +++ b/puppet/environment/vagrant/modules/compiler/manifests/init.pp @@ -8,6 +8,7 @@ contain package::webcompilers ## configure webcompilers + require system::webcompiler_directory contain compiler::webcompilers ## start compiler(s) From 4b306b670302a75bf402038faf95795da90e453c Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 20:47:35 -0500 Subject: [PATCH 09/59] #2932: resolve 'duplicate' declaration for 'python-dev' --- puppet/environment/docker/modules/package/manifests/init.pp | 1 - puppet/environment/docker/modules/package/manifests/scrypt.pp | 2 ++ .../docker/modules/package/manifests/sklearn_dependencies.pp | 4 ++-- puppet/environment/vagrant/modules/package/manifests/init.pp | 1 - .../environment/vagrant/modules/package/manifests/scrypt.pp | 2 ++ .../vagrant/modules/package/manifests/sklearn_dependencies.pp | 4 ++-- 6 files changed, 8 insertions(+), 6 deletions(-) diff --git a/puppet/environment/docker/modules/package/manifests/init.pp b/puppet/environment/docker/modules/package/manifests/init.pp index 7c047e95e..c2efc7e58 100644 --- a/puppet/environment/docker/modules/package/manifests/init.pp +++ b/puppet/environment/docker/modules/package/manifests/init.pp @@ -24,7 +24,6 @@ contain package::pyyaml contain package::flask_script contain package::pytest_flask - contain package::python_dev contain package::libssl_dev contain package::scrypt } \ No newline at end of file diff --git a/puppet/environment/docker/modules/package/manifests/scrypt.pp b/puppet/environment/docker/modules/package/manifests/scrypt.pp index ca68e4163..6b695254b 100644 --- a/puppet/environment/docker/modules/package/manifests/scrypt.pp +++ b/puppet/environment/docker/modules/package/manifests/scrypt.pp @@ -3,6 +3,7 @@ ### class package::scrypt { require python + import package::python_dev ## local variables $hiera_dev = lookup('development') @@ -11,5 +12,6 @@ package { 'scrypt': ensure => $version, provider => 'pip', + require => Class['package::python_dev'], } } \ No newline at end of file diff --git a/puppet/environment/docker/modules/package/manifests/sklearn_dependencies.pp b/puppet/environment/docker/modules/package/manifests/sklearn_dependencies.pp index 2e9802c31..45afdc758 100644 --- a/puppet/environment/docker/modules/package/manifests/sklearn_dependencies.pp +++ b/puppet/environment/docker/modules/package/manifests/sklearn_dependencies.pp @@ -2,9 +2,10 @@ ### sklearn_dependencies.pp, install sklearn related packages. ### class package::sklearn_dependencies { + include package::python_dev + ## local variables $hiera_dev = lookup('development') - $version_python_dev = $hiera_dev['apt']['python-dev'] $version_python_numpy = $hiera_dev['apt']['python-numpy'] $version_python_scipy = $hiera_dev['apt']['python-scipy'] $version_libatlas_dev = $hiera_dev['apt']['libatlas-dev'] @@ -13,7 +14,6 @@ $version_ipython = $hiera_dev['apt']['ipython'] $dependencies = [ - "python-dev=${version_python_dev}", "python-numpy=${$version_python_numpy}", "python-scipy=${version_python_scipy}", "libatlas-dev=${version_libatlas_dev}", diff --git a/puppet/environment/vagrant/modules/package/manifests/init.pp b/puppet/environment/vagrant/modules/package/manifests/init.pp index 13ad7ce9e..5b1b866be 100644 --- a/puppet/environment/vagrant/modules/package/manifests/init.pp +++ b/puppet/environment/vagrant/modules/package/manifests/init.pp @@ -24,7 +24,6 @@ contain package::pyyaml contain package::flask_script contain package::pytest_flask - contain package::python_dev contain package::libssl_dev contain package::scrypt } diff --git a/puppet/environment/vagrant/modules/package/manifests/scrypt.pp b/puppet/environment/vagrant/modules/package/manifests/scrypt.pp index 1f8e40952..27324389e 100644 --- a/puppet/environment/vagrant/modules/package/manifests/scrypt.pp +++ b/puppet/environment/vagrant/modules/package/manifests/scrypt.pp @@ -3,6 +3,7 @@ ### class package::scrypt { require python + include package::python_dev ## local variables $hiera_dev = lookup('development') @@ -11,5 +12,6 @@ package { 'scrypt': ensure => $version, provider => 'pip', + require => Class['package::python_dev'], } } diff --git a/puppet/environment/vagrant/modules/package/manifests/sklearn_dependencies.pp b/puppet/environment/vagrant/modules/package/manifests/sklearn_dependencies.pp index 2e9802c31..45afdc758 100644 --- a/puppet/environment/vagrant/modules/package/manifests/sklearn_dependencies.pp +++ b/puppet/environment/vagrant/modules/package/manifests/sklearn_dependencies.pp @@ -2,9 +2,10 @@ ### sklearn_dependencies.pp, install sklearn related packages. ### class package::sklearn_dependencies { + include package::python_dev + ## local variables $hiera_dev = lookup('development') - $version_python_dev = $hiera_dev['apt']['python-dev'] $version_python_numpy = $hiera_dev['apt']['python-numpy'] $version_python_scipy = $hiera_dev['apt']['python-scipy'] $version_libatlas_dev = $hiera_dev['apt']['libatlas-dev'] @@ -13,7 +14,6 @@ $version_ipython = $hiera_dev['apt']['ipython'] $dependencies = [ - "python-dev=${version_python_dev}", "python-numpy=${$version_python_numpy}", "python-scipy=${version_python_scipy}", "libatlas-dev=${version_libatlas_dev}", From e269c5231c11731af3b954d6085c7d7ee0f2bdb9 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 20:58:32 -0500 Subject: [PATCH 10/59] #2932: site.pp, enforce order with 'contain' --- puppet/environment/docker/manifests/site.pp | 16 ++++++++-------- puppet/environment/vagrant/manifests/site.pp | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/puppet/environment/docker/manifests/site.pp b/puppet/environment/docker/manifests/site.pp index df2916608..181cde8fa 100644 --- a/puppet/environment/docker/manifests/site.pp +++ b/puppet/environment/docker/manifests/site.pp @@ -2,13 +2,13 @@ ### site.pp: load all necessary modules. ### ### Note: this file is not currently implemented, since the docker environment -### employs dockerfiles, where corresponding 'init.pp' are included. +### employs dockerfiles, where corresponding 'init.pp' are containd. ### -include package -include sklearn -include redis -include system -include compiler -include database -include webserver \ No newline at end of file +contain package +contain sklearn +contain redis +contain system +contain compiler +contain database +contain webserver \ No newline at end of file diff --git a/puppet/environment/vagrant/manifests/site.pp b/puppet/environment/vagrant/manifests/site.pp index 1939ddfc0..567444f1c 100644 --- a/puppet/environment/vagrant/manifests/site.pp +++ b/puppet/environment/vagrant/manifests/site.pp @@ -2,11 +2,11 @@ ### site.pp: load all necessary modules. ### -include package -include sklearn -include vagrant -include redis -include system -include compiler -include database -include webserver \ No newline at end of file +contain package +contain sklearn +contain vagrant +contain redis +contain system +contain compiler +contain database +contain webserver \ No newline at end of file From fe1829a69bb245a12062afbaf57c6e55987619a5 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 21:38:47 -0500 Subject: [PATCH 11/59] #2932: use 'contain' more, implement 'package::nodejs' --- .../docker/modules/package/manifests/init.pp | 10 +--------- .../docker/modules/package/manifests/nodejs.pp | 11 +++++++++++ .../docker/modules/package/manifests/scrypt.pp | 2 +- .../modules/package/manifests/sklearn_dependencies.pp | 2 +- .../docker/modules/package/manifests/webcompilers.pp | 3 +++ .../docker/modules/redis/manifests/init.pp | 4 ++-- .../docker/modules/sklearn/manifests/init.pp | 10 +++++----- .../docker/modules/system/manifests/init.pp | 2 +- .../docker/modules/webserver/manifests/init.pp | 10 +++++----- .../vagrant/modules/package/manifests/init.pp | 10 +--------- .../vagrant/modules/package/manifests/nodejs.pp | 11 +++++++++++ .../modules/package/manifests/sklearn_dependencies.pp | 2 +- .../vagrant/modules/package/manifests/webcompilers.pp | 3 +++ .../vagrant/modules/redis/manifests/init.pp | 4 ++-- .../vagrant/modules/sklearn/manifests/init.pp | 10 +++++----- .../vagrant/modules/system/manifests/init.pp | 2 +- .../vagrant/modules/vagrant/manifests/init.pp | 4 ++-- .../vagrant/modules/webserver/manifests/init.pp | 6 +++--- 18 files changed, 59 insertions(+), 47 deletions(-) create mode 100644 puppet/environment/docker/modules/package/manifests/nodejs.pp create mode 100644 puppet/environment/vagrant/modules/package/manifests/nodejs.pp diff --git a/puppet/environment/docker/modules/package/manifests/init.pp b/puppet/environment/docker/modules/package/manifests/init.pp index c2efc7e58..c42bf206f 100644 --- a/puppet/environment/docker/modules/package/manifests/init.pp +++ b/puppet/environment/docker/modules/package/manifests/init.pp @@ -3,18 +3,10 @@ ### class package { - ## nodejs, with npm: this cannot be wrapped into a module, and included, as - ## needed. Puppet will only allow one instance of this class, regardless of - ## of its implementation. require apt - ## install nodejs, with npm - class { 'nodejs': - repo_url_suffix => '5.x', - } - contain nodejs - ## general packages + contain package::nodejs contain package::inotify_tools contain package::react_presets contain package::jsonschema diff --git a/puppet/environment/docker/modules/package/manifests/nodejs.pp b/puppet/environment/docker/modules/package/manifests/nodejs.pp new file mode 100644 index 000000000..1082ed823 --- /dev/null +++ b/puppet/environment/docker/modules/package/manifests/nodejs.pp @@ -0,0 +1,11 @@ +### +### nodejs.pp: install nodejs, and npm. +### + +class package::nodejs { + ## install nodejs, with npm + class { 'nodejs': + repo_url_suffix => '5.x', + } + contain nodejs +} diff --git a/puppet/environment/docker/modules/package/manifests/scrypt.pp b/puppet/environment/docker/modules/package/manifests/scrypt.pp index 6b695254b..0ef266ae7 100644 --- a/puppet/environment/docker/modules/package/manifests/scrypt.pp +++ b/puppet/environment/docker/modules/package/manifests/scrypt.pp @@ -3,7 +3,7 @@ ### class package::scrypt { require python - import package::python_dev + include package::python_dev ## local variables $hiera_dev = lookup('development') diff --git a/puppet/environment/docker/modules/package/manifests/sklearn_dependencies.pp b/puppet/environment/docker/modules/package/manifests/sklearn_dependencies.pp index 45afdc758..15c7f3e2a 100644 --- a/puppet/environment/docker/modules/package/manifests/sklearn_dependencies.pp +++ b/puppet/environment/docker/modules/package/manifests/sklearn_dependencies.pp @@ -2,7 +2,7 @@ ### sklearn_dependencies.pp, install sklearn related packages. ### class package::sklearn_dependencies { - include package::python_dev + contain package::python_dev ## local variables $hiera_dev = lookup('development') diff --git a/puppet/environment/docker/modules/package/manifests/webcompilers.pp b/puppet/environment/docker/modules/package/manifests/webcompilers.pp index 40cdfb8f1..263632a37 100644 --- a/puppet/environment/docker/modules/package/manifests/webcompilers.pp +++ b/puppet/environment/docker/modules/package/manifests/webcompilers.pp @@ -2,6 +2,8 @@ ### webcompilers.pp, install webcompiler packages. ### class package::webcompilers { + include package::nodejs + ## hiera attributes $hiera_dev = lookup('development') $version_uglify_js = $hiera_dev['npm']['uglify-js'] @@ -25,5 +27,6 @@ package { $webcompilers: ensure => 'present', provider => 'npm', + require => Class['package::nodejs'], } } \ No newline at end of file diff --git a/puppet/environment/docker/modules/redis/manifests/init.pp b/puppet/environment/docker/modules/redis/manifests/init.pp index c4b396790..109c29f79 100644 --- a/puppet/environment/docker/modules/redis/manifests/init.pp +++ b/puppet/environment/docker/modules/redis/manifests/init.pp @@ -3,6 +3,6 @@ ### class redis { - include package::redis_server - include redis::configuration + contain package::redis_server + contain redis::configuration } diff --git a/puppet/environment/docker/modules/sklearn/manifests/init.pp b/puppet/environment/docker/modules/sklearn/manifests/init.pp index dbe4dc1c3..0d4b8c834 100644 --- a/puppet/environment/docker/modules/sklearn/manifests/init.pp +++ b/puppet/environment/docker/modules/sklearn/manifests/init.pp @@ -4,17 +4,17 @@ class sklearn { ## create '/vagrant/build/' directory - include system::build_directory + contain system::build_directory ## install sklearn dependencies - include package::sklearn_dependencies + contain package::sklearn_dependencies ## download scikit-learn - include package::sklearn + contain package::sklearn ## build scikit-learn - include sklearn::build_sklearn + contain sklearn::build_sklearn ## install scikit-learn - include sklearn::install_sklearn + contain sklearn::install_sklearn } \ No newline at end of file diff --git a/puppet/environment/docker/modules/system/manifests/init.pp b/puppet/environment/docker/modules/system/manifests/init.pp index 7d389fdaa..43c8a6288 100644 --- a/puppet/environment/docker/modules/system/manifests/init.pp +++ b/puppet/environment/docker/modules/system/manifests/init.pp @@ -7,5 +7,5 @@ require system::log_directory ## define system timezone - include system::set_timezone + contain system::set_timezone } \ No newline at end of file diff --git a/puppet/environment/docker/modules/webserver/manifests/init.pp b/puppet/environment/docker/modules/webserver/manifests/init.pp index 408f5216d..697cca42a 100644 --- a/puppet/environment/docker/modules/webserver/manifests/init.pp +++ b/puppet/environment/docker/modules/webserver/manifests/init.pp @@ -5,13 +5,13 @@ class webserver { ## install mariadb - include database::client - include database::bindings + contain database::client + contain database::bindings ## install redis client - include package::redis_client + contain package::redis_client ## install webserver - include package::gunicorn - include webserver::service + contain package::gunicorn + contain webserver::service } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/package/manifests/init.pp b/puppet/environment/vagrant/modules/package/manifests/init.pp index 5b1b866be..559fe018d 100644 --- a/puppet/environment/vagrant/modules/package/manifests/init.pp +++ b/puppet/environment/vagrant/modules/package/manifests/init.pp @@ -3,18 +3,10 @@ ### class package { - ## nodejs, with npm: this cannot be wrapped into a module, and included, as - ## needed. Puppet will only allow one instance of this class, - ## regardless of its implementation. require apt - ## install nodejs, with npm - class { 'nodejs': - repo_url_suffix => '5.x', - } - contain nodejs - ## general packages + contain package::nodejs contain package::inotify_tools contain package::react_presets contain package::jsonschema diff --git a/puppet/environment/vagrant/modules/package/manifests/nodejs.pp b/puppet/environment/vagrant/modules/package/manifests/nodejs.pp new file mode 100644 index 000000000..1082ed823 --- /dev/null +++ b/puppet/environment/vagrant/modules/package/manifests/nodejs.pp @@ -0,0 +1,11 @@ +### +### nodejs.pp: install nodejs, and npm. +### + +class package::nodejs { + ## install nodejs, with npm + class { 'nodejs': + repo_url_suffix => '5.x', + } + contain nodejs +} diff --git a/puppet/environment/vagrant/modules/package/manifests/sklearn_dependencies.pp b/puppet/environment/vagrant/modules/package/manifests/sklearn_dependencies.pp index 45afdc758..15c7f3e2a 100644 --- a/puppet/environment/vagrant/modules/package/manifests/sklearn_dependencies.pp +++ b/puppet/environment/vagrant/modules/package/manifests/sklearn_dependencies.pp @@ -2,7 +2,7 @@ ### sklearn_dependencies.pp, install sklearn related packages. ### class package::sklearn_dependencies { - include package::python_dev + contain package::python_dev ## local variables $hiera_dev = lookup('development') diff --git a/puppet/environment/vagrant/modules/package/manifests/webcompilers.pp b/puppet/environment/vagrant/modules/package/manifests/webcompilers.pp index 40cdfb8f1..263632a37 100644 --- a/puppet/environment/vagrant/modules/package/manifests/webcompilers.pp +++ b/puppet/environment/vagrant/modules/package/manifests/webcompilers.pp @@ -2,6 +2,8 @@ ### webcompilers.pp, install webcompiler packages. ### class package::webcompilers { + include package::nodejs + ## hiera attributes $hiera_dev = lookup('development') $version_uglify_js = $hiera_dev['npm']['uglify-js'] @@ -25,5 +27,6 @@ package { $webcompilers: ensure => 'present', provider => 'npm', + require => Class['package::nodejs'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/redis/manifests/init.pp b/puppet/environment/vagrant/modules/redis/manifests/init.pp index 51f2ad8e3..01c846303 100644 --- a/puppet/environment/vagrant/modules/redis/manifests/init.pp +++ b/puppet/environment/vagrant/modules/redis/manifests/init.pp @@ -4,8 +4,8 @@ class redis { ## install redis client - include package::redis_client + contain package::redis_client ## install redis-server - include package::redis_server + contain package::redis_server } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/sklearn/manifests/init.pp b/puppet/environment/vagrant/modules/sklearn/manifests/init.pp index dbe4dc1c3..0d4b8c834 100644 --- a/puppet/environment/vagrant/modules/sklearn/manifests/init.pp +++ b/puppet/environment/vagrant/modules/sklearn/manifests/init.pp @@ -4,17 +4,17 @@ class sklearn { ## create '/vagrant/build/' directory - include system::build_directory + contain system::build_directory ## install sklearn dependencies - include package::sklearn_dependencies + contain package::sklearn_dependencies ## download scikit-learn - include package::sklearn + contain package::sklearn ## build scikit-learn - include sklearn::build_sklearn + contain sklearn::build_sklearn ## install scikit-learn - include sklearn::install_sklearn + contain sklearn::install_sklearn } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/system/manifests/init.pp b/puppet/environment/vagrant/modules/system/manifests/init.pp index cb66f584f..592a7cb32 100644 --- a/puppet/environment/vagrant/modules/system/manifests/init.pp +++ b/puppet/environment/vagrant/modules/system/manifests/init.pp @@ -3,5 +3,5 @@ ### class system { - include system::set_timezone + contain system::set_timezone } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/vagrant/manifests/init.pp b/puppet/environment/vagrant/modules/vagrant/manifests/init.pp index c81f37eb9..feffc1910 100644 --- a/puppet/environment/vagrant/modules/vagrant/manifests/init.pp +++ b/puppet/environment/vagrant/modules/vagrant/manifests/init.pp @@ -5,8 +5,8 @@ class vagrant { ## configure service - include vagrant::service + contain vagrant::service ## start service - include vagrant::start + contain vagrant::start } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/webserver/manifests/init.pp b/puppet/environment/vagrant/modules/webserver/manifests/init.pp index e424dd6e4..cb45e636d 100644 --- a/puppet/environment/vagrant/modules/webserver/manifests/init.pp +++ b/puppet/environment/vagrant/modules/webserver/manifests/init.pp @@ -7,9 +7,9 @@ require system::log_directory ## install webserver - include webserver::service + contain webserver::service ## start webservers - include package::gunicorn - include webserver::start + contain package::gunicorn + contain webserver::start } \ No newline at end of file From 04e49fb05e46d2aa8b14dd8434eddf6a4b5e44c4 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 21:53:52 -0500 Subject: [PATCH 12/59] #2932: require 'package::pyyaml' --- .../docker/modules/compiler/manifests/initial_compile.pp | 3 +++ .../environment/docker/modules/database/manifests/database.pp | 3 +++ .../vagrant/modules/compiler/manifests/initial_compile.pp | 4 ++++ .../vagrant/modules/database/manifests/database.pp | 3 +++ 4 files changed, 13 insertions(+) diff --git a/puppet/environment/docker/modules/compiler/manifests/initial_compile.pp b/puppet/environment/docker/modules/compiler/manifests/initial_compile.pp index f00869789..e3952e5ec 100644 --- a/puppet/environment/docker/modules/compiler/manifests/initial_compile.pp +++ b/puppet/environment/docker/modules/compiler/manifests/initial_compile.pp @@ -2,6 +2,8 @@ ### initial_compile.pp, manually compile javascript. ### class compiler::initial_compile { + include package::webcompilers + ## local variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -21,5 +23,6 @@ cwd => "${dev_env_path}/modules/compiler/scripts", path => '/usr/bin', provider => shell, + require => Class['package::webcompilers'], } } \ No newline at end of file diff --git a/puppet/environment/docker/modules/database/manifests/database.pp b/puppet/environment/docker/modules/database/manifests/database.pp index 7c98934a5..80b31d999 100644 --- a/puppet/environment/docker/modules/database/manifests/database.pp +++ b/puppet/environment/docker/modules/database/manifests/database.pp @@ -2,6 +2,8 @@ ### database.pp, create mariadb database structure. ### class database::database { + include package::pyyaml + ## variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -19,5 +21,6 @@ command => "python setup_tables.py ${root_dir} ${vagrant_mounted}", cwd => $script_dir, path => '/usr/bin', + require => Class['package::pyyaml'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/compiler/manifests/initial_compile.pp b/puppet/environment/vagrant/modules/compiler/manifests/initial_compile.pp index 95b3ff3a8..41683010f 100644 --- a/puppet/environment/vagrant/modules/compiler/manifests/initial_compile.pp +++ b/puppet/environment/vagrant/modules/compiler/manifests/initial_compile.pp @@ -2,6 +2,8 @@ ### initial_compile.pp, manually compile javascript. ### class compiler::initial_compile { + include package::webcompilers + ## local variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -46,6 +48,7 @@ command => $touch_files, onlyif => $check_files, provider => shell, + require => Class['package::webcompilers'], } } @@ -54,5 +57,6 @@ command => "node-sass ${source} ${asset}", path => '/usr/bin', provider => shell, + require => Class['package::webcompilers'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/database/manifests/database.pp b/puppet/environment/vagrant/modules/database/manifests/database.pp index 7c98934a5..80b31d999 100644 --- a/puppet/environment/vagrant/modules/database/manifests/database.pp +++ b/puppet/environment/vagrant/modules/database/manifests/database.pp @@ -2,6 +2,8 @@ ### database.pp, create mariadb database structure. ### class database::database { + include package::pyyaml + ## variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -19,5 +21,6 @@ command => "python setup_tables.py ${root_dir} ${vagrant_mounted}", cwd => $script_dir, path => '/usr/bin', + require => Class['package::pyyaml'], } } \ No newline at end of file From 10bb10eb3e5956e8952b7a1c426b67c331fb5830 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 22:14:25 -0500 Subject: [PATCH 13/59] #2932: Puppetfile, update to 'v2.3.0' --- puppet/environment/docker/Puppetfile | 2 +- puppet/environment/vagrant/Puppetfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/puppet/environment/docker/Puppetfile b/puppet/environment/docker/Puppetfile index a0aecaaaa..6530e36d0 100644 --- a/puppet/environment/docker/Puppetfile +++ b/puppet/environment/docker/Puppetfile @@ -15,7 +15,7 @@ mod 'apt', ## Install Module: nodejs mod 'nodejs', :git => 'https://github.com/puppet-community/puppet-nodejs.git', - :ref => 'v1.3.0' + :ref => 'v2.3.0' ## Install Module: git mod 'git', diff --git a/puppet/environment/vagrant/Puppetfile b/puppet/environment/vagrant/Puppetfile index dbfe6b4f6..ec7cb447b 100644 --- a/puppet/environment/vagrant/Puppetfile +++ b/puppet/environment/vagrant/Puppetfile @@ -18,7 +18,7 @@ mod 'apt', ## Install Module: nodejs mod 'nodejs', :git => 'git@github.com:puppet-community/puppet-nodejs.git', - :ref => 'v1.3.0' + :ref => 'v2.3.0' ## Install Module: git mod 'git', From d346765fba76476aee16deed407f7004a6adb4b4 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 22:36:55 -0500 Subject: [PATCH 14/59] #2932: further require 'package::nodejs' --- puppet/environment/docker/modules/package/manifests/fetch.pp | 3 +++ .../docker/modules/package/manifests/inotify_tools.pp | 5 ++++- .../docker/modules/package/manifests/xmltodict.pp | 2 ++ .../environment/vagrant/modules/package/manifests/fetch.pp | 3 +++ .../vagrant/modules/package/manifests/inotify_tools.pp | 5 ++++- .../vagrant/modules/package/manifests/xmltodict.pp | 2 ++ 6 files changed, 18 insertions(+), 2 deletions(-) diff --git a/puppet/environment/docker/modules/package/manifests/fetch.pp b/puppet/environment/docker/modules/package/manifests/fetch.pp index 41f83ece6..5ecb0556f 100644 --- a/puppet/environment/docker/modules/package/manifests/fetch.pp +++ b/puppet/environment/docker/modules/package/manifests/fetch.pp @@ -2,6 +2,8 @@ ### fetch.pp, install package. ### class package::fetch { + include package::nodejs + ## local variables $hiera_dev = lookup('development') $version = $hiera_dev['npm']['fetch'] @@ -10,5 +12,6 @@ package { "whatwg-fetch@${version}": ensure => 'present', provider => 'npm', + require => Class['package::nodejs'], } } \ No newline at end of file diff --git a/puppet/environment/docker/modules/package/manifests/inotify_tools.pp b/puppet/environment/docker/modules/package/manifests/inotify_tools.pp index 58fa7d7d2..c93b07d32 100644 --- a/puppet/environment/docker/modules/package/manifests/inotify_tools.pp +++ b/puppet/environment/docker/modules/package/manifests/inotify_tools.pp @@ -2,6 +2,8 @@ ### inotify_tools.pp, install package. ### class package::inotify_tools { + include package::nodejs + ## update apt-get require apt @@ -10,6 +12,7 @@ $version = $hiera_dev['apt']['inotify-tools'] package { "inotify-tools=${version}": - ensure => 'installed', + ensure => 'installed', + require => Class['package::nodejs'], } } \ No newline at end of file diff --git a/puppet/environment/docker/modules/package/manifests/xmltodict.pp b/puppet/environment/docker/modules/package/manifests/xmltodict.pp index 5c1d3ee47..768fdf767 100644 --- a/puppet/environment/docker/modules/package/manifests/xmltodict.pp +++ b/puppet/environment/docker/modules/package/manifests/xmltodict.pp @@ -3,6 +3,7 @@ ### class package::xmltodict { include python + include package::nodejs ## local variables $hiera_dev = lookup('development') @@ -11,5 +12,6 @@ package { 'xmltodict': ensure => $version, provider => 'pip', + require => Class['package::nodejs'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/package/manifests/fetch.pp b/puppet/environment/vagrant/modules/package/manifests/fetch.pp index 41f83ece6..5ecb0556f 100644 --- a/puppet/environment/vagrant/modules/package/manifests/fetch.pp +++ b/puppet/environment/vagrant/modules/package/manifests/fetch.pp @@ -2,6 +2,8 @@ ### fetch.pp, install package. ### class package::fetch { + include package::nodejs + ## local variables $hiera_dev = lookup('development') $version = $hiera_dev['npm']['fetch'] @@ -10,5 +12,6 @@ package { "whatwg-fetch@${version}": ensure => 'present', provider => 'npm', + require => Class['package::nodejs'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/package/manifests/inotify_tools.pp b/puppet/environment/vagrant/modules/package/manifests/inotify_tools.pp index 58fa7d7d2..c93b07d32 100644 --- a/puppet/environment/vagrant/modules/package/manifests/inotify_tools.pp +++ b/puppet/environment/vagrant/modules/package/manifests/inotify_tools.pp @@ -2,6 +2,8 @@ ### inotify_tools.pp, install package. ### class package::inotify_tools { + include package::nodejs + ## update apt-get require apt @@ -10,6 +12,7 @@ $version = $hiera_dev['apt']['inotify-tools'] package { "inotify-tools=${version}": - ensure => 'installed', + ensure => 'installed', + require => Class['package::nodejs'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/package/manifests/xmltodict.pp b/puppet/environment/vagrant/modules/package/manifests/xmltodict.pp index 017a9121d..2d9768247 100644 --- a/puppet/environment/vagrant/modules/package/manifests/xmltodict.pp +++ b/puppet/environment/vagrant/modules/package/manifests/xmltodict.pp @@ -3,6 +3,7 @@ ## class package::xmltodict { include python + include package::nodejs ## local variables $hiera_dev = lookup('development') @@ -11,5 +12,6 @@ package { 'xmltodict': ensure => $version, provider => 'pip', + require => Class['package::nodejs'], } } \ No newline at end of file From 6fbd7ca12bb02f0cadae61c6bc2f1edf2456ee84 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 22:54:52 -0500 Subject: [PATCH 15/59] #2932: react_presets.pp, require 'package:nodejs' --- .../docker/modules/package/manifests/react_presets.pp | 3 +++ .../vagrant/modules/package/manifests/react_presets.pp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/puppet/environment/docker/modules/package/manifests/react_presets.pp b/puppet/environment/docker/modules/package/manifests/react_presets.pp index ae86a4678..641f10715 100644 --- a/puppet/environment/docker/modules/package/manifests/react_presets.pp +++ b/puppet/environment/docker/modules/package/manifests/react_presets.pp @@ -2,6 +2,8 @@ ### react_presets.pp, install necessary webpackages defined in 'package.json'. ### class package::react_presets { + include package::nodejs + ## local variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -11,5 +13,6 @@ command => 'npm install --no-bin-links', cwd => "${root_dir}/src/jsx/", path => '/usr/bin', + require => Class['package::nodejs'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/package/manifests/react_presets.pp b/puppet/environment/vagrant/modules/package/manifests/react_presets.pp index ae86a4678..641f10715 100644 --- a/puppet/environment/vagrant/modules/package/manifests/react_presets.pp +++ b/puppet/environment/vagrant/modules/package/manifests/react_presets.pp @@ -2,6 +2,8 @@ ### react_presets.pp, install necessary webpackages defined in 'package.json'. ### class package::react_presets { + include package::nodejs + ## local variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -11,5 +13,6 @@ command => 'npm install --no-bin-links', cwd => "${root_dir}/src/jsx/", path => '/usr/bin', + require => Class['package::nodejs'], } } \ No newline at end of file From 09eaad6a6a4385862845846ced393a27aa9cb006 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 23:22:24 -0500 Subject: [PATCH 16/59] #2932: move 'package::webcompilers' into 'webcompilers.pp' --- .../docker/modules/compiler/manifests/init.pp | 1 - .../docker/modules/compiler/manifests/webcompilers.pp | 11 +++++++++++ .../vagrant/modules/compiler/manifests/init.pp | 1 - .../modules/compiler/manifests/webcompilers.pp | 11 +++++++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/puppet/environment/docker/modules/compiler/manifests/init.pp b/puppet/environment/docker/modules/compiler/manifests/init.pp index 5e4689855..b1bf78361 100644 --- a/puppet/environment/docker/modules/compiler/manifests/init.pp +++ b/puppet/environment/docker/modules/compiler/manifests/init.pp @@ -5,7 +5,6 @@ class compiler { ## ensure log directory, package dependencies require system::log_directory - contain package::webcompilers ## configure webcompilers require system::webcompiler_directory diff --git a/puppet/environment/docker/modules/compiler/manifests/webcompilers.pp b/puppet/environment/docker/modules/compiler/manifests/webcompilers.pp index 43c603b46..e8ba53611 100644 --- a/puppet/environment/docker/modules/compiler/manifests/webcompilers.pp +++ b/puppet/environment/docker/modules/compiler/manifests/webcompilers.pp @@ -2,6 +2,9 @@ ### webcompilers.pp, create webcompiler services. ### class compiler::webcompilers { + include package::react_presets + include package::webcompilers + ## variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -34,6 +37,10 @@ file { "/etc/init/${compiler}.conf": ensure => file, content => dos2unix(template($template_path)), + require => [ + Class['package::webcompilers'], + Class['package::react_presets'], + ], } ## dos2unix upstart: convert clrf (windows to linux) in case host @@ -42,6 +49,10 @@ ensure => file, content => dos2unix(template("${compiler_dir}/${compiler}")), mode => '0755', + require => [ + Class['package::webcompilers'], + Class['package::react_presets'], + ], } } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/compiler/manifests/init.pp b/puppet/environment/vagrant/modules/compiler/manifests/init.pp index 5e4689855..b1bf78361 100644 --- a/puppet/environment/vagrant/modules/compiler/manifests/init.pp +++ b/puppet/environment/vagrant/modules/compiler/manifests/init.pp @@ -5,7 +5,6 @@ class compiler { ## ensure log directory, package dependencies require system::log_directory - contain package::webcompilers ## configure webcompilers require system::webcompiler_directory diff --git a/puppet/environment/vagrant/modules/compiler/manifests/webcompilers.pp b/puppet/environment/vagrant/modules/compiler/manifests/webcompilers.pp index ef280278b..c90316f67 100644 --- a/puppet/environment/vagrant/modules/compiler/manifests/webcompilers.pp +++ b/puppet/environment/vagrant/modules/compiler/manifests/webcompilers.pp @@ -2,6 +2,9 @@ ### webcompilers.pp, create webcompiler services. ### class compiler::webcompilers { + include package::react_presets + include package::webcompilers + ## variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -35,6 +38,10 @@ file { "/etc/init/${compiler}.conf": ensure => file, content => dos2unix(template($template_path)), + require => [ + Class['package::webcompilers'], + Class['package::react_presets'], + ], } ## dos2unix upstart: convert clrf (windows to linux) in case host @@ -43,6 +50,10 @@ ensure => file, content => dos2unix(template("${compiler_dir}/${compiler}")), mode => '0755', + require => [ + Class['package::webcompilers'], + Class['package::react_presets'], + ], } } } \ No newline at end of file From 7746bba428445c38db93ca7d5f60c43cf10400a7 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Mon, 6 Mar 2017 23:59:41 -0500 Subject: [PATCH 17/59] #2932: 'compiler::webcompilers' in start scripts --- .../docker/modules/compiler/manifests/start_browserify.pp | 3 +++ .../docker/modules/compiler/manifests/start_imagemin.pp | 3 +++ .../docker/modules/compiler/manifests/start_sass.pp | 3 +++ .../docker/modules/compiler/manifests/start_uglifyjs.pp | 3 +++ .../vagrant/modules/compiler/manifests/start_browserify.pp | 7 +++++-- .../vagrant/modules/compiler/manifests/start_imagemin.pp | 7 +++++-- .../vagrant/modules/compiler/manifests/start_sass.pp | 7 +++++-- .../vagrant/modules/compiler/manifests/start_uglifyjs.pp | 7 +++++-- 8 files changed, 32 insertions(+), 8 deletions(-) diff --git a/puppet/environment/docker/modules/compiler/manifests/start_browserify.pp b/puppet/environment/docker/modules/compiler/manifests/start_browserify.pp index 2d681b620..a64b1b9ef 100644 --- a/puppet/environment/docker/modules/compiler/manifests/start_browserify.pp +++ b/puppet/environment/docker/modules/compiler/manifests/start_browserify.pp @@ -2,6 +2,8 @@ ### start_browserify.pp, compile jsx into javascript. ### class compiler::start_browserify { + include compiler::webcompilers + ## variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -14,5 +16,6 @@ cwd => "${dev_env_path}/modules/compiler/scripts", path => '/usr/bin', provider => shell, + require => Class['compiler::webcompilers'], } } \ No newline at end of file diff --git a/puppet/environment/docker/modules/compiler/manifests/start_imagemin.pp b/puppet/environment/docker/modules/compiler/manifests/start_imagemin.pp index 73e8579d4..fce1271b7 100644 --- a/puppet/environment/docker/modules/compiler/manifests/start_imagemin.pp +++ b/puppet/environment/docker/modules/compiler/manifests/start_imagemin.pp @@ -2,6 +2,8 @@ ### start_imagemin.pp, minify images, when possible. ### class compiler::start_imagemin { + include compiler::webcompilers + ## variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -13,5 +15,6 @@ command => "./imagemin ${root_dir}", cwd => "${dev_env_path}/modules/compiler/scripts", provider => shell, + require => Class['compiler::webcompilers'], } } \ No newline at end of file diff --git a/puppet/environment/docker/modules/compiler/manifests/start_sass.pp b/puppet/environment/docker/modules/compiler/manifests/start_sass.pp index e1ef8e7f9..30d6e1f0f 100644 --- a/puppet/environment/docker/modules/compiler/manifests/start_sass.pp +++ b/puppet/environment/docker/modules/compiler/manifests/start_sass.pp @@ -2,6 +2,8 @@ ### start_sass.pp, minify scss into css. ### class compiler::start_sass { + include compiler::webcompilers + ## variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -14,5 +16,6 @@ cwd => "${dev_env_path}/modules/compiler/scripts", timeout => 700, provider => shell, + require => Class['compiler::webcompilers'], } } \ No newline at end of file diff --git a/puppet/environment/docker/modules/compiler/manifests/start_uglifyjs.pp b/puppet/environment/docker/modules/compiler/manifests/start_uglifyjs.pp index b54ed769a..8c1548887 100644 --- a/puppet/environment/docker/modules/compiler/manifests/start_uglifyjs.pp +++ b/puppet/environment/docker/modules/compiler/manifests/start_uglifyjs.pp @@ -2,6 +2,8 @@ ### start_uglifyjs.pp, minify javascript. ### class compiler::start_uglifyjs { + include compiler::webcompilers + ## variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -13,5 +15,6 @@ command => "./uglifyjs ${root_dir}", cwd => "${dev_env_path}/modules/compiler/scripts", provider => shell, + require => Class['compiler::webcompilers'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/compiler/manifests/start_browserify.pp b/puppet/environment/vagrant/modules/compiler/manifests/start_browserify.pp index 0b591ce3c..505d94bb7 100644 --- a/puppet/environment/vagrant/modules/compiler/manifests/start_browserify.pp +++ b/puppet/environment/vagrant/modules/compiler/manifests/start_browserify.pp @@ -2,6 +2,8 @@ ### start_browserify.pp, compile jsx into javascript. ### class compiler::start_browserify { + include compiler::webcompilers + ## variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -10,7 +12,8 @@ ## ensure service starts at boot service { 'browserify': - ensure => 'running', - enable => true, + ensure => 'running', + enable => true, + require => Class['compiler::webcompilers'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/compiler/manifests/start_imagemin.pp b/puppet/environment/vagrant/modules/compiler/manifests/start_imagemin.pp index 1fc0ae78c..5a858da78 100644 --- a/puppet/environment/vagrant/modules/compiler/manifests/start_imagemin.pp +++ b/puppet/environment/vagrant/modules/compiler/manifests/start_imagemin.pp @@ -2,6 +2,8 @@ ### start_imagemin.pp, minify images, when possible. ### class compiler::start_imagemin { + include compiler::webcompilers + ## variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -10,7 +12,8 @@ ## ensure service starts at boot service { 'imagemin': - ensure => 'running', - enable => true, + ensure => 'running', + enable => true, + require => Class['compiler::webcompilers'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/compiler/manifests/start_sass.pp b/puppet/environment/vagrant/modules/compiler/manifests/start_sass.pp index 3671cad27..9cc3402f0 100644 --- a/puppet/environment/vagrant/modules/compiler/manifests/start_sass.pp +++ b/puppet/environment/vagrant/modules/compiler/manifests/start_sass.pp @@ -2,8 +2,11 @@ ### start_sass.pp, ensure custom sass service running. ### class compiler::start_sass { + include compiler::webcompilers + service { 'sass': - ensure => 'running', - enable => true, + ensure => 'running', + enable => true, + require => Class['compiler::webcompilers'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/compiler/manifests/start_uglifyjs.pp b/puppet/environment/vagrant/modules/compiler/manifests/start_uglifyjs.pp index 6d47153a4..f31ec556c 100644 --- a/puppet/environment/vagrant/modules/compiler/manifests/start_uglifyjs.pp +++ b/puppet/environment/vagrant/modules/compiler/manifests/start_uglifyjs.pp @@ -2,6 +2,8 @@ ### start_uglifyjs.pp, ensure custom uglifyjs service running. ### class compiler::start_uglifyjs { + include compiler::webcompilers + ## variables $hiera_general = lookup('general') $root_dir = $hiera_general['root'] @@ -10,7 +12,8 @@ ## ensure service starts at boot service { 'uglifyjs': - ensure => 'running', - enable => true, + ensure => 'running', + enable => true, + require => Class['compiler::webcompilers'], } } \ No newline at end of file From 3e4287ffc39d61ff3dc00149bb58d127f664e8c6 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 09:06:14 -0500 Subject: [PATCH 18/59] #2932: service defined, and initial compile before service start --- .../docker/modules/webserver/manifests/service.pp | 11 +++++++---- .../docker/modules/webserver/manifests/start.pp | 10 +++++++--- .../vagrant/modules/webserver/manifests/service.pp | 11 +++++++---- .../vagrant/modules/webserver/manifests/start.pp | 10 +++++++--- 4 files changed, 28 insertions(+), 14 deletions(-) diff --git a/puppet/environment/docker/modules/webserver/manifests/service.pp b/puppet/environment/docker/modules/webserver/manifests/service.pp index e08cac228..13b1815c5 100644 --- a/puppet/environment/docker/modules/webserver/manifests/service.pp +++ b/puppet/environment/docker/modules/webserver/manifests/service.pp @@ -2,6 +2,8 @@ ### service.pp, configure webserver(s), and corresponding proxy. ### class webserver::service { + include compiler::initial_compile + ## variables $hiera_general = lookup('general') $hiera_development = lookup('development') @@ -24,10 +26,10 @@ $nginx_version = $hiera_development['apt']['nginx'] $nginx_proxy = "${nginx_reverse_proxy['proxy']}:${gunicorn_port}" - ## include webserver dependencies - include python - include python::flask - include python::requests + ## contain webserver dependencies + contain python + contain python::flask + contain python::requests ## nginx: installation class { 'nginx': @@ -45,5 +47,6 @@ file { '/etc/init/start_gunicorn.conf': ensure => file, content => dos2unix(template($template_path)), + require => Class['compiler::initial_compile'], } } \ No newline at end of file diff --git a/puppet/environment/docker/modules/webserver/manifests/start.pp b/puppet/environment/docker/modules/webserver/manifests/start.pp index 24ac0eed6..90773f473 100644 --- a/puppet/environment/docker/modules/webserver/manifests/start.pp +++ b/puppet/environment/docker/modules/webserver/manifests/start.pp @@ -2,6 +2,8 @@ ### start.pp, ensure gunicorn webserver workers running. ### class webserver::start { + include webserver::service + # variables $hiera_general = lookup('general') $vagrant_mounted = $hiera_general['vagrant_implement'] @@ -10,14 +12,16 @@ if $vagrant_mounted { # ensure service starts at boot service { 'start_gunicorn': - ensure => 'running', - enable => true, + ensure => 'running', + enable => true, + require => Class['webserver::service'], } } else { # run and restart when needed service { 'start_gunicorn': - ensure => 'running', + ensure => 'running', + require => Class['webserver::service'], } } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/webserver/manifests/service.pp b/puppet/environment/vagrant/modules/webserver/manifests/service.pp index e08cac228..13b1815c5 100644 --- a/puppet/environment/vagrant/modules/webserver/manifests/service.pp +++ b/puppet/environment/vagrant/modules/webserver/manifests/service.pp @@ -2,6 +2,8 @@ ### service.pp, configure webserver(s), and corresponding proxy. ### class webserver::service { + include compiler::initial_compile + ## variables $hiera_general = lookup('general') $hiera_development = lookup('development') @@ -24,10 +26,10 @@ $nginx_version = $hiera_development['apt']['nginx'] $nginx_proxy = "${nginx_reverse_proxy['proxy']}:${gunicorn_port}" - ## include webserver dependencies - include python - include python::flask - include python::requests + ## contain webserver dependencies + contain python + contain python::flask + contain python::requests ## nginx: installation class { 'nginx': @@ -45,5 +47,6 @@ file { '/etc/init/start_gunicorn.conf': ensure => file, content => dos2unix(template($template_path)), + require => Class['compiler::initial_compile'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/webserver/manifests/start.pp b/puppet/environment/vagrant/modules/webserver/manifests/start.pp index 9d952a637..f5354a85c 100644 --- a/puppet/environment/vagrant/modules/webserver/manifests/start.pp +++ b/puppet/environment/vagrant/modules/webserver/manifests/start.pp @@ -2,6 +2,8 @@ ### start.pp, ensure gunicorn webserver workers running. ### class webserver::start { + include webserver::service + ## variables $hiera_general = lookup('general') $vagrant_mounted = $hiera_general['vagrant_implement'] @@ -10,14 +12,16 @@ if $vagrant_mounted { # ensure service starts at boot service { 'start_gunicorn': - ensure => 'running', - enable => true, + ensure => 'running', + enable => true, + require => Class['webserver::service'], } } else { ## run and restart when needed service { 'start_gunicorn': - ensure => 'running', + ensure => 'running', + require => Class['webserver::service'], } } } \ No newline at end of file From a8e0062659c849cc4f5e11d2ca9fa75fc8dfd1f7 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 10:21:42 -0500 Subject: [PATCH 19/59] #2932: notify webserver service when configuration changes --- .../environment/docker/modules/webserver/manifests/service.pp | 2 ++ .../environment/vagrant/modules/webserver/manifests/service.pp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/puppet/environment/docker/modules/webserver/manifests/service.pp b/puppet/environment/docker/modules/webserver/manifests/service.pp index 13b1815c5..ef778f4e8 100644 --- a/puppet/environment/docker/modules/webserver/manifests/service.pp +++ b/puppet/environment/docker/modules/webserver/manifests/service.pp @@ -3,6 +3,7 @@ ### class webserver::service { include compiler::initial_compile + include webserver::service ## variables $hiera_general = lookup('general') @@ -48,5 +49,6 @@ ensure => file, content => dos2unix(template($template_path)), require => Class['compiler::initial_compile'], + notify => Class['webserver::service'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/webserver/manifests/service.pp b/puppet/environment/vagrant/modules/webserver/manifests/service.pp index 13b1815c5..ef778f4e8 100644 --- a/puppet/environment/vagrant/modules/webserver/manifests/service.pp +++ b/puppet/environment/vagrant/modules/webserver/manifests/service.pp @@ -3,6 +3,7 @@ ### class webserver::service { include compiler::initial_compile + include webserver::service ## variables $hiera_general = lookup('general') @@ -48,5 +49,6 @@ ensure => file, content => dos2unix(template($template_path)), require => Class['compiler::initial_compile'], + notify => Class['webserver::service'], } } \ No newline at end of file From 3ab99185438b8fe68681dcef03ce9a3cec5507de Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 10:22:58 -0500 Subject: [PATCH 20/59] #2932: notify webserver service when configuration changes --- .../environment/docker/modules/webserver/manifests/service.pp | 4 ++-- .../vagrant/modules/webserver/manifests/service.pp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/puppet/environment/docker/modules/webserver/manifests/service.pp b/puppet/environment/docker/modules/webserver/manifests/service.pp index ef778f4e8..a5005b87a 100644 --- a/puppet/environment/docker/modules/webserver/manifests/service.pp +++ b/puppet/environment/docker/modules/webserver/manifests/service.pp @@ -3,7 +3,7 @@ ### class webserver::service { include compiler::initial_compile - include webserver::service + include webserver::start ## variables $hiera_general = lookup('general') @@ -49,6 +49,6 @@ ensure => file, content => dos2unix(template($template_path)), require => Class['compiler::initial_compile'], - notify => Class['webserver::service'], + notify => Class['webserver::start'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/webserver/manifests/service.pp b/puppet/environment/vagrant/modules/webserver/manifests/service.pp index ef778f4e8..a5005b87a 100644 --- a/puppet/environment/vagrant/modules/webserver/manifests/service.pp +++ b/puppet/environment/vagrant/modules/webserver/manifests/service.pp @@ -3,7 +3,7 @@ ### class webserver::service { include compiler::initial_compile - include webserver::service + include webserver::start ## variables $hiera_general = lookup('general') @@ -49,6 +49,6 @@ ensure => file, content => dos2unix(template($template_path)), require => Class['compiler::initial_compile'], - notify => Class['webserver::service'], + notify => Class['webserver::start'], } } \ No newline at end of file From 7b28be60bb09daaf079e2cedd2ac6df92d0afdfa Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 13:29:15 -0500 Subject: [PATCH 21/59] #2932: default.dockerfile, remove 'ls -l [...]/js' --- default.dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/default.dockerfile b/default.dockerfile index 8ff8d432d..1a1805ad0 100644 --- a/default.dockerfile +++ b/default.dockerfile @@ -42,6 +42,5 @@ RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/system/manifests/i RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/compiler/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test --debug ## show directory -RUN ls -l $ROOT_PROJECT/interface/static/js RUN ls -l $ROOT_PROJECT/interface/static/css RUN ls -l $ROOT_PROJECT/interface/static/img From 2f06afdbbf00456893f7f988af03072456be3d9f Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 17:11:45 -0500 Subject: [PATCH 22/59] #2932: default.dockerfile, remove 'ls -l' --- default.dockerfile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/default.dockerfile b/default.dockerfile index 1a1805ad0..ba7566fea 100644 --- a/default.dockerfile +++ b/default.dockerfile @@ -40,7 +40,3 @@ RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/package/manifests/ RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/sklearn/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/system/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/compiler/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test --debug - -## show directory -RUN ls -l $ROOT_PROJECT/interface/static/css -RUN ls -l $ROOT_PROJECT/interface/static/img From 50b497b959d4308c1bbfeeeec2595659c50f2967 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 19:18:31 -0500 Subject: [PATCH 23/59] #2932: .travis.yml, update to current 'docker-ce' --- .travis.yml | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 812bf1644..4a25ced3b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,21 +9,24 @@ services: ## environment variables env: global: - - DOCKER_VERSION=1.12.3-0~trusty + - DOCKER_VERSION=17.03.0~ce-0~ubuntu-trusty ## build docker, install puppet (i.e. puppet parser validate) +## +## Note: we install docker per dockers official documentation: +## +## https://docs.docker.com/engine/installation/linux/ubuntu/ +## before_install: - # docker version before update - - docker version + # uninstall old docker-engine + - sudo apt-get remove docker docker-engine - # list docker-engine versions - #- apt-cache madison docker-engine - - # upgrade docker-engine to specific version - - sudo apt-get -o Dpkg::Options::="--force-confnew" install -y docker-engine=${DOCKER_VERSION} - - # docker version after update - - docker version + # install docker to specific version + - sudo apt-get install apt-transport-https ca-certificates curl software-properties-common + - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - + - sudo apt-get install apt-transport-https ca-certificates curl software-properties-common + - sudo apt-get update + - sudo apt-get install docker-ce=${DOCKER_VERSION} # install puppet - wget https://apt.puppetlabs.com/puppetlabs-release-pc1-trusty.deb From 5e52b82a08418b9edd030d210c0121538fe36210 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 19:20:19 -0500 Subject: [PATCH 24/59] #2932: .travis.yml, remove redundant 'docker' service --- .travis.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4a25ced3b..fbcd08c3c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,10 +2,6 @@ sudo: required language: python -## allows 'docker' command -services: - - docker - ## environment variables env: global: @@ -18,9 +14,6 @@ env: ## https://docs.docker.com/engine/installation/linux/ubuntu/ ## before_install: - # uninstall old docker-engine - - sudo apt-get remove docker docker-engine - # install docker to specific version - sudo apt-get install apt-transport-https ca-certificates curl software-properties-common - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - From c2d6a1e3e4c48e29eba8ddf160bbd2acc604b8b8 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 19:23:43 -0500 Subject: [PATCH 25/59] #2932: .travis.yml, replace duplicate line with 'edge' --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fbcd08c3c..675d405f8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ before_install: # install docker to specific version - sudo apt-get install apt-transport-https ca-certificates curl software-properties-common - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - - - sudo apt-get install apt-transport-https ca-certificates curl software-properties-common + - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" - sudo apt-get update - sudo apt-get install docker-ce=${DOCKER_VERSION} From 0dfcf5095511829c01aa5f43a8674af5870318b6 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 19:39:33 -0500 Subject: [PATCH 26/59] #2932: .travis.yml, re-establish 'docker' service --- .travis.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.travis.yml b/.travis.yml index 675d405f8..eebcb5967 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,10 @@ sudo: required language: python +## allows 'docker' command +services: +- docker + ## environment variables env: global: @@ -14,6 +18,9 @@ env: ## https://docs.docker.com/engine/installation/linux/ubuntu/ ## before_install: + # uninstall old docker-engine + - sudo apt-get remove docker docker-engine + # install docker to specific version - sudo apt-get install apt-transport-https ca-certificates curl software-properties-common - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - From 3d1052fdd1b65fef896f704fee0dd2039fa4f532 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 20:00:49 -0500 Subject: [PATCH 27/59] #2932: .travis.yml, use 'sudo' to join docker containers --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index eebcb5967..8c15a6ef8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -114,7 +114,7 @@ script: # run unit test(s): return 1 if match found (result negated) # # Note: travis has issues with exclamation, so it's contained in a subshell - - docker network create -d bridge app_nw && docker run --name base --net=app_nw -d container-default && docker run --name redis --net=app_nw -d container-redis && docker run --name webserver --net=app_nw -d container-webserver run && docker run --name database --net=app_nw -d container-database && docker run --name webserver-pytest --net=app_nw -it container-webserver test > pytest.log + - sudo docker network create -d bridge app_nw && docker run --name base --net=app_nw -d container-default && docker run --name redis --net=app_nw -d container-redis && docker run --name webserver --net=app_nw -d container-webserver run && docker run --name database --net=app_nw -d container-database && docker run --name webserver-pytest --net=app_nw -it container-webserver test > pytest.log - cat pytest.log - (! grep -qE '= FAILURES =|= ERRORS =|= no tests ran in 0.00 seconds =' pytest.log) From 9c55fc0f56776f6abf8a0b55dccf7c687602b262 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 20:20:07 -0500 Subject: [PATCH 28/59] #2932: redis.dockerfile, exec with shell --- redis.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redis.dockerfile b/redis.dockerfile index ddae46ef0..3d086017c 100644 --- a/redis.dockerfile +++ b/redis.dockerfile @@ -9,4 +9,4 @@ ENV ENVIRONMENT_DIR $ROOT_PROJECT/puppet/environment/$ENVIRONMENT RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/redis/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test ## executed everytime container starts -CMD ["redis-server"] +CMD redis-server From 03268bb1daf90446487658923822dae06bfae07d Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 20:21:52 -0500 Subject: [PATCH 29/59] #2932: redis.dockerfile, alternative exec with shell --- redis.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redis.dockerfile b/redis.dockerfile index 3d086017c..e93483cc3 100644 --- a/redis.dockerfile +++ b/redis.dockerfile @@ -9,4 +9,4 @@ ENV ENVIRONMENT_DIR $ROOT_PROJECT/puppet/environment/$ENVIRONMENT RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/redis/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test ## executed everytime container starts -CMD redis-server +CMD ["/bin/sh", "-l", "-c", redis-server"] From 9929864b91441eef0deaab75a5d8e7a38f1aab35 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 20:33:53 -0500 Subject: [PATCH 30/59] #2932: fix typo, use alternative exec with shell --- database.dockerfile | 2 +- redis.dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/database.dockerfile b/database.dockerfile index a83ae76fe..fce4a67d6 100644 --- a/database.dockerfile +++ b/database.dockerfile @@ -9,4 +9,4 @@ ENV ENVIRONMENT_DIR $ROOT_PROJECT/puppet/environment/$ENVIRONMENT RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/database/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test ## executed everytime container starts -CMD ["mysqld"] \ No newline at end of file +CMD ["/bin/sh", "-l", "-c", "mysqld"] \ No newline at end of file diff --git a/redis.dockerfile b/redis.dockerfile index e93483cc3..f0fc13ecf 100644 --- a/redis.dockerfile +++ b/redis.dockerfile @@ -9,4 +9,4 @@ ENV ENVIRONMENT_DIR $ROOT_PROJECT/puppet/environment/$ENVIRONMENT RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/redis/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test ## executed everytime container starts -CMD ["/bin/sh", "-l", "-c", redis-server"] +CMD ["/bin/sh", "-l", "-c", "redis-server"] From d39d0e09d0a58d0ce40fd34b4f36344a1c540715 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 20:45:13 -0500 Subject: [PATCH 31/59] #2932: remove '-l' for login shell --- database.dockerfile | 2 +- redis.dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/database.dockerfile b/database.dockerfile index fce4a67d6..aea2d2fdd 100644 --- a/database.dockerfile +++ b/database.dockerfile @@ -9,4 +9,4 @@ ENV ENVIRONMENT_DIR $ROOT_PROJECT/puppet/environment/$ENVIRONMENT RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/database/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test ## executed everytime container starts -CMD ["/bin/sh", "-l", "-c", "mysqld"] \ No newline at end of file +CMD ["/bin/sh", "-c", "mysqld"] \ No newline at end of file diff --git a/redis.dockerfile b/redis.dockerfile index f0fc13ecf..2f1c88788 100644 --- a/redis.dockerfile +++ b/redis.dockerfile @@ -9,4 +9,4 @@ ENV ENVIRONMENT_DIR $ROOT_PROJECT/puppet/environment/$ENVIRONMENT RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/redis/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test ## executed everytime container starts -CMD ["/bin/sh", "-l", "-c", "redis-server"] +CMD ["/bin/sh", "-c", "redis-server"] From 0b79cf668962e71284f83cc8100b0931b1be0d35 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 21:15:48 -0500 Subject: [PATCH 32/59] #2932: service.pp, require 'compiler::initial_compile' --- .../docker/modules/webserver/manifests/service.pp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/webserver/manifests/service.pp b/puppet/environment/docker/modules/webserver/manifests/service.pp index a5005b87a..1119c1ae7 100644 --- a/puppet/environment/docker/modules/webserver/manifests/service.pp +++ b/puppet/environment/docker/modules/webserver/manifests/service.pp @@ -4,6 +4,7 @@ class webserver::service { include compiler::initial_compile include webserver::start + include package::pyyaml ## variables $hiera_general = lookup('general') @@ -45,10 +46,17 @@ ## dos2unix: convert clrf (windows to linux) in case host machine is ## windows. + ## + ## Note: when the application starts, particular package dependencies are + ## required to be installed, so the flask application can run. + ## file { '/etc/init/start_gunicorn.conf': ensure => file, content => dos2unix(template($template_path)), - require => Class['compiler::initial_compile'], + require => [ + Class['package::pyyaml'], + Class['compiler::initial_compile'] + ], notify => Class['webserver::start'], } } \ No newline at end of file From b6d3ba1c6eabb2c166c462c1d43db184d9bdd3c1 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 22:06:44 -0500 Subject: [PATCH 33/59] #2932: default.dockerfile, update r10k to '2.5.2' --- default.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/default.dockerfile b/default.dockerfile index ba7566fea..728e0b2f1 100644 --- a/default.dockerfile +++ b/default.dockerfile @@ -26,7 +26,7 @@ RUN apt-get -y install puppet-agent ## install r10k RUN apt-get -y install rubygems-integration=1.5 -RUN gem install r10k -v 2.2.0 +RUN gem install r10k -v 2.5.2 ## install pytest-cov RUN pip install pytest-cov==2.4.0 From a47738b334fa6c19d5e1cda99dc8617fbf02a2a9 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 22:13:13 -0500 Subject: [PATCH 34/59] #2932: start.pp, minor style change --- .../environment/docker/modules/webserver/manifests/start.pp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/puppet/environment/docker/modules/webserver/manifests/start.pp b/puppet/environment/docker/modules/webserver/manifests/start.pp index 90773f473..f5354a85c 100644 --- a/puppet/environment/docker/modules/webserver/manifests/start.pp +++ b/puppet/environment/docker/modules/webserver/manifests/start.pp @@ -4,11 +4,11 @@ class webserver::start { include webserver::service - # variables + ## variables $hiera_general = lookup('general') $vagrant_mounted = $hiera_general['vagrant_implement'] - # run gunicorn + ## run gunicorn if $vagrant_mounted { # ensure service starts at boot service { 'start_gunicorn': @@ -18,7 +18,7 @@ } } else { - # run and restart when needed + ## run and restart when needed service { 'start_gunicorn': ensure => 'running', require => Class['webserver::service'], From f2ba3eca06798e13f720efcf04838bdf56cae44f Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 22:24:19 -0500 Subject: [PATCH 35/59] #2932: relocate 'pyyaml' package --- .../docker/modules/webserver/manifests/service.pp | 6 +----- .../environment/vagrant/modules/webserver/manifests/init.pp | 1 + 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/puppet/environment/docker/modules/webserver/manifests/service.pp b/puppet/environment/docker/modules/webserver/manifests/service.pp index 1119c1ae7..db47ce52d 100644 --- a/puppet/environment/docker/modules/webserver/manifests/service.pp +++ b/puppet/environment/docker/modules/webserver/manifests/service.pp @@ -4,7 +4,6 @@ class webserver::service { include compiler::initial_compile include webserver::start - include package::pyyaml ## variables $hiera_general = lookup('general') @@ -53,10 +52,7 @@ file { '/etc/init/start_gunicorn.conf': ensure => file, content => dos2unix(template($template_path)), - require => [ - Class['package::pyyaml'], - Class['compiler::initial_compile'] - ], + require => Class['compiler::initial_compile'], notify => Class['webserver::start'], } } \ No newline at end of file diff --git a/puppet/environment/vagrant/modules/webserver/manifests/init.pp b/puppet/environment/vagrant/modules/webserver/manifests/init.pp index cb45e636d..1e4221982 100644 --- a/puppet/environment/vagrant/modules/webserver/manifests/init.pp +++ b/puppet/environment/vagrant/modules/webserver/manifests/init.pp @@ -10,6 +10,7 @@ contain webserver::service ## start webservers + contain package::pyyaml contain package::gunicorn contain webserver::start } \ No newline at end of file From c37bd698b37d6acfbb935fc8fa371d793a2fab25 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 22:55:30 -0500 Subject: [PATCH 36/59] #2932: webserver.dockerfile, test 'pyyaml' installation --- webserver.dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/webserver.dockerfile b/webserver.dockerfile index 938db43a4..877c02e05 100644 --- a/webserver.dockerfile +++ b/webserver.dockerfile @@ -6,6 +6,7 @@ ENV ENVIRONMENT docker ENV ENVIRONMENT_DIR $ROOT_PROJECT/puppet/environment/$ENVIRONMENT ## provision with puppet +RUN pip install -y pyyaml RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/webserver/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test ## executed everytime container starts From cb1acde312f16b3dc8ac9d703724a17008f76849 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 23:07:05 -0500 Subject: [PATCH 37/59] #2932: webserver.dockerfile, test 'pyyaml' installation --- webserver.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webserver.dockerfile b/webserver.dockerfile index 877c02e05..fc4b414e5 100644 --- a/webserver.dockerfile +++ b/webserver.dockerfile @@ -6,7 +6,7 @@ ENV ENVIRONMENT docker ENV ENVIRONMENT_DIR $ROOT_PROJECT/puppet/environment/$ENVIRONMENT ## provision with puppet -RUN pip install -y pyyaml +RUN pip install pyyaml RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/webserver/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test ## executed everytime container starts From ef240b8f04cc4679276db68b4d33601ea896373c Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 23:54:12 -0500 Subject: [PATCH 38/59] #2932: webserver.dockerfile, remove 'pyyaml' --- webserver.dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/webserver.dockerfile b/webserver.dockerfile index fc4b414e5..938db43a4 100644 --- a/webserver.dockerfile +++ b/webserver.dockerfile @@ -6,7 +6,6 @@ ENV ENVIRONMENT docker ENV ENVIRONMENT_DIR $ROOT_PROJECT/puppet/environment/$ENVIRONMENT ## provision with puppet -RUN pip install pyyaml RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/webserver/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test ## executed everytime container starts From eab1a2fca6d0a2a3a133bcaabbc132e14e51358e Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Tue, 7 Mar 2017 23:54:51 -0500 Subject: [PATCH 39/59] #2932: init.pp, 'contain xxx' --- puppet/environment/docker/modules/compiler/manifests/init.pp | 3 ++- puppet/environment/docker/modules/database/manifests/init.pp | 1 + puppet/environment/docker/modules/package/manifests/init.pp | 3 ++- puppet/environment/docker/modules/redis/manifests/init.pp | 1 + puppet/environment/docker/modules/sklearn/manifests/init.pp | 3 ++- puppet/environment/docker/modules/system/manifests/init.pp | 3 ++- puppet/environment/docker/modules/webserver/manifests/init.pp | 3 ++- 7 files changed, 12 insertions(+), 5 deletions(-) diff --git a/puppet/environment/docker/modules/compiler/manifests/init.pp b/puppet/environment/docker/modules/compiler/manifests/init.pp index b1bf78361..b98efa3c4 100644 --- a/puppet/environment/docker/modules/compiler/manifests/init.pp +++ b/puppet/environment/docker/modules/compiler/manifests/init.pp @@ -18,4 +18,5 @@ ## initial compile contain compiler::initial_compile -} \ No newline at end of file +} +contain compiler \ No newline at end of file diff --git a/puppet/environment/docker/modules/database/manifests/init.pp b/puppet/environment/docker/modules/database/manifests/init.pp index 24ef406b5..3db98127a 100644 --- a/puppet/environment/docker/modules/database/manifests/init.pp +++ b/puppet/environment/docker/modules/database/manifests/init.pp @@ -15,3 +15,4 @@ ## create database tables contain database::database } +contain database \ No newline at end of file diff --git a/puppet/environment/docker/modules/package/manifests/init.pp b/puppet/environment/docker/modules/package/manifests/init.pp index c42bf206f..ae1c5ae9e 100644 --- a/puppet/environment/docker/modules/package/manifests/init.pp +++ b/puppet/environment/docker/modules/package/manifests/init.pp @@ -18,4 +18,5 @@ contain package::pytest_flask contain package::libssl_dev contain package::scrypt -} \ No newline at end of file +} +contain package \ No newline at end of file diff --git a/puppet/environment/docker/modules/redis/manifests/init.pp b/puppet/environment/docker/modules/redis/manifests/init.pp index 109c29f79..8a73090f4 100644 --- a/puppet/environment/docker/modules/redis/manifests/init.pp +++ b/puppet/environment/docker/modules/redis/manifests/init.pp @@ -6,3 +6,4 @@ contain package::redis_server contain redis::configuration } +contain redis diff --git a/puppet/environment/docker/modules/sklearn/manifests/init.pp b/puppet/environment/docker/modules/sklearn/manifests/init.pp index 0d4b8c834..ad16997b0 100644 --- a/puppet/environment/docker/modules/sklearn/manifests/init.pp +++ b/puppet/environment/docker/modules/sklearn/manifests/init.pp @@ -17,4 +17,5 @@ ## install scikit-learn contain sklearn::install_sklearn -} \ No newline at end of file +} +contain sklearn \ No newline at end of file diff --git a/puppet/environment/docker/modules/system/manifests/init.pp b/puppet/environment/docker/modules/system/manifests/init.pp index 43c8a6288..997a003de 100644 --- a/puppet/environment/docker/modules/system/manifests/init.pp +++ b/puppet/environment/docker/modules/system/manifests/init.pp @@ -8,4 +8,5 @@ ## define system timezone contain system::set_timezone -} \ No newline at end of file +} +contain system \ No newline at end of file diff --git a/puppet/environment/docker/modules/webserver/manifests/init.pp b/puppet/environment/docker/modules/webserver/manifests/init.pp index 697cca42a..085249444 100644 --- a/puppet/environment/docker/modules/webserver/manifests/init.pp +++ b/puppet/environment/docker/modules/webserver/manifests/init.pp @@ -14,4 +14,5 @@ ## install webserver contain package::gunicorn contain webserver::service -} \ No newline at end of file +} +contain webserver \ No newline at end of file From b9ee71cb2498d545b5e8e88a48b89b709cb47248 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 00:16:20 -0500 Subject: [PATCH 40/59] #2932: .travis.yml, remove 'sudo' --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8c15a6ef8..eebcb5967 100644 --- a/.travis.yml +++ b/.travis.yml @@ -114,7 +114,7 @@ script: # run unit test(s): return 1 if match found (result negated) # # Note: travis has issues with exclamation, so it's contained in a subshell - - sudo docker network create -d bridge app_nw && docker run --name base --net=app_nw -d container-default && docker run --name redis --net=app_nw -d container-redis && docker run --name webserver --net=app_nw -d container-webserver run && docker run --name database --net=app_nw -d container-database && docker run --name webserver-pytest --net=app_nw -it container-webserver test > pytest.log + - docker network create -d bridge app_nw && docker run --name base --net=app_nw -d container-default && docker run --name redis --net=app_nw -d container-redis && docker run --name webserver --net=app_nw -d container-webserver run && docker run --name database --net=app_nw -d container-database && docker run --name webserver-pytest --net=app_nw -it container-webserver test > pytest.log - cat pytest.log - (! grep -qE '= FAILURES =|= ERRORS =|= no tests ran in 0.00 seconds =' pytest.log) From dc00bb13b8253d44715696e389c455461f392d5e Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 00:19:04 -0500 Subject: [PATCH 41/59] #2932: Puppetfile, revert 'nodejs' version --- puppet/environment/docker/Puppetfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/Puppetfile b/puppet/environment/docker/Puppetfile index 6530e36d0..a0aecaaaa 100644 --- a/puppet/environment/docker/Puppetfile +++ b/puppet/environment/docker/Puppetfile @@ -15,7 +15,7 @@ mod 'apt', ## Install Module: nodejs mod 'nodejs', :git => 'https://github.com/puppet-community/puppet-nodejs.git', - :ref => 'v2.3.0' + :ref => 'v1.3.0' ## Install Module: git mod 'git', From 224d523ed33958e621ddc17f2bc3a434b1891669 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 00:38:39 -0500 Subject: [PATCH 42/59] #2932: Puppefile, update 'nodejs' to '2.3.0' --- puppet/environment/docker/Puppetfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/Puppetfile b/puppet/environment/docker/Puppetfile index a0aecaaaa..6530e36d0 100644 --- a/puppet/environment/docker/Puppetfile +++ b/puppet/environment/docker/Puppetfile @@ -15,7 +15,7 @@ mod 'apt', ## Install Module: nodejs mod 'nodejs', :git => 'https://github.com/puppet-community/puppet-nodejs.git', - :ref => 'v1.3.0' + :ref => 'v2.3.0' ## Install Module: git mod 'git', From 600e6b3ded0479fa6f869726fee415168a6c90dc Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 00:39:01 -0500 Subject: [PATCH 43/59] #2932: hiera.yaml, update syntax to version 5 --- hiera/test/hiera.yaml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/hiera/test/hiera.yaml b/hiera/test/hiera.yaml index 17cfa127a..b5c7103d6 100644 --- a/hiera/test/hiera.yaml +++ b/hiera/test/hiera.yaml @@ -1,10 +1,12 @@ --- -:backends: - - yaml +version: 5 +defaults: + datadir: /var/machine-learning/hiera + data_hash: yaml_data -:yaml: - :datadir: /var/machine-learning/hiera +hierarchy: + - name: 'General build packages' + path: packages.yaml -:hierarchy: - - packages - - test/hiera/settings \ No newline at end of file + - name: 'General application settings' + path: test/hiera/settings \ No newline at end of file From d8f293598893dd605a0d3abf446c1ca767e7571e Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 00:48:00 -0500 Subject: [PATCH 44/59] #2932: default.dockerfile, uninstall npm --- default.dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/default.dockerfile b/default.dockerfile index 728e0b2f1..1d8546870 100644 --- a/default.dockerfile +++ b/default.dockerfile @@ -35,6 +35,9 @@ RUN pip install pytest-cov==2.4.0 RUN mkdir -p $ENVIRONMENT_DIR/modules_contrib/ RUN PUPPETFILE=$ENVIRONMENT_DIR/Puppetfile PUPPETFILE_DIR=$ENVIRONMENT_DIR/modules_contrib/ r10k puppetfile install +## remove npm (installed via puppet) +RUN npm uninstall npm -g + ## provision with puppet RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/package/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/sklearn/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test From a4b0ec3ab20db580feaef3537b644007453062a2 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 00:53:55 -0500 Subject: [PATCH 45/59] #2932: hiera.yaml, add yaml file extension --- hiera/test/hiera.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hiera/test/hiera.yaml b/hiera/test/hiera.yaml index b5c7103d6..938dd9ec3 100644 --- a/hiera/test/hiera.yaml +++ b/hiera/test/hiera.yaml @@ -9,4 +9,4 @@ hierarchy: path: packages.yaml - name: 'General application settings' - path: test/hiera/settings \ No newline at end of file + path: test/hiera/settings.yaml \ No newline at end of file From fa386e62166095aefce94e392650807b8696a6ac Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 00:59:53 -0500 Subject: [PATCH 46/59] #2932: default.dockerfile, adjust comment --- default.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/default.dockerfile b/default.dockerfile index 1d8546870..162569fc6 100644 --- a/default.dockerfile +++ b/default.dockerfile @@ -35,7 +35,7 @@ RUN pip install pytest-cov==2.4.0 RUN mkdir -p $ENVIRONMENT_DIR/modules_contrib/ RUN PUPPETFILE=$ENVIRONMENT_DIR/Puppetfile PUPPETFILE_DIR=$ENVIRONMENT_DIR/modules_contrib/ r10k puppetfile install -## remove npm (installed via puppet) +## remove npm: it will be installed via puppet RUN npm uninstall npm -g ## provision with puppet From bf8dc6dea24404b941d895a49d187b39a4f55f46 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 01:03:50 -0500 Subject: [PATCH 47/59] #2932: default.dockerfile, remove nodejs, node, npm --- default.dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/default.dockerfile b/default.dockerfile index 162569fc6..137cd6919 100644 --- a/default.dockerfile +++ b/default.dockerfile @@ -37,6 +37,8 @@ RUN PUPPETFILE=$ENVIRONMENT_DIR/Puppetfile PUPPETFILE_DIR=$ENVIRONMENT_DIR/modul ## remove npm: it will be installed via puppet RUN npm uninstall npm -g +RUN apt-get uninstall nodejs npm node +RUN apt-get remove nodejs npm node ## provision with puppet RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/package/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test From 900d93fc3279983acd9aa1790544afa26ed4d670 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 01:05:16 -0500 Subject: [PATCH 48/59] #2932: default.dockerfile, remove 'npm uninstall' --- default.dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/default.dockerfile b/default.dockerfile index 137cd6919..da2ec6bda 100644 --- a/default.dockerfile +++ b/default.dockerfile @@ -36,7 +36,6 @@ RUN mkdir -p $ENVIRONMENT_DIR/modules_contrib/ RUN PUPPETFILE=$ENVIRONMENT_DIR/Puppetfile PUPPETFILE_DIR=$ENVIRONMENT_DIR/modules_contrib/ r10k puppetfile install ## remove npm: it will be installed via puppet -RUN npm uninstall npm -g RUN apt-get uninstall nodejs npm node RUN apt-get remove nodejs npm node From c352e0f6458d3927ec49e4787b0c4b097a3dff7d Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 01:15:17 -0500 Subject: [PATCH 49/59] #2932: default.dockerfile, debug for package versions --- default.dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/default.dockerfile b/default.dockerfile index da2ec6bda..789e00be5 100644 --- a/default.dockerfile +++ b/default.dockerfile @@ -36,8 +36,9 @@ RUN mkdir -p $ENVIRONMENT_DIR/modules_contrib/ RUN PUPPETFILE=$ENVIRONMENT_DIR/Puppetfile PUPPETFILE_DIR=$ENVIRONMENT_DIR/modules_contrib/ r10k puppetfile install ## remove npm: it will be installed via puppet -RUN apt-get uninstall nodejs npm node -RUN apt-get remove nodejs npm node +RUN npm -v +RUN node -v +RUN nodejs -v ## provision with puppet RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/package/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test From 9c8b4c79b7b792d21e3f398644203d93dcc28d2c Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 07:07:34 -0500 Subject: [PATCH 50/59] #2932: default.dockerfile, get node version --- default.dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/default.dockerfile b/default.dockerfile index 789e00be5..d2489df46 100644 --- a/default.dockerfile +++ b/default.dockerfile @@ -36,7 +36,6 @@ RUN mkdir -p $ENVIRONMENT_DIR/modules_contrib/ RUN PUPPETFILE=$ENVIRONMENT_DIR/Puppetfile PUPPETFILE_DIR=$ENVIRONMENT_DIR/modules_contrib/ r10k puppetfile install ## remove npm: it will be installed via puppet -RUN npm -v RUN node -v RUN nodejs -v From b71b5eda951da7b46aba2b00c9b7bda94d7f042d Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 07:21:25 -0500 Subject: [PATCH 51/59] #2932: Puppetfile, update reference for 'nodejs' --- puppet/environment/docker/Puppetfile | 2 +- puppet/environment/vagrant/Puppetfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/puppet/environment/docker/Puppetfile b/puppet/environment/docker/Puppetfile index 6530e36d0..0d0c88114 100644 --- a/puppet/environment/docker/Puppetfile +++ b/puppet/environment/docker/Puppetfile @@ -14,7 +14,7 @@ mod 'apt', ## Install Module: nodejs mod 'nodejs', - :git => 'https://github.com/puppet-community/puppet-nodejs.git', + :git => 'https://github.com/voxpupuli/puppet-nodejs.git', :ref => 'v2.3.0' ## Install Module: git diff --git a/puppet/environment/vagrant/Puppetfile b/puppet/environment/vagrant/Puppetfile index ec7cb447b..9303dd437 100644 --- a/puppet/environment/vagrant/Puppetfile +++ b/puppet/environment/vagrant/Puppetfile @@ -17,7 +17,7 @@ mod 'apt', ## Install Module: nodejs mod 'nodejs', - :git => 'git@github.com:puppet-community/puppet-nodejs.git', + :git => 'git@github.com:voxpupuli/puppet-nodejs.git', :ref => 'v2.3.0' ## Install Module: git From 577da8c3924e9c6b508ddd00b01a20c9332556db Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 07:22:34 -0500 Subject: [PATCH 52/59] #2932: default.dockerfile, remove 'node -v' --- default.dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/default.dockerfile b/default.dockerfile index d2489df46..06d148d4e 100644 --- a/default.dockerfile +++ b/default.dockerfile @@ -36,7 +36,6 @@ RUN mkdir -p $ENVIRONMENT_DIR/modules_contrib/ RUN PUPPETFILE=$ENVIRONMENT_DIR/Puppetfile PUPPETFILE_DIR=$ENVIRONMENT_DIR/modules_contrib/ r10k puppetfile install ## remove npm: it will be installed via puppet -RUN node -v RUN nodejs -v ## provision with puppet From d2afe3d2777742f86a3910af5044ada4a4888508 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 07:26:07 -0500 Subject: [PATCH 53/59] #2932: Puppetfile, update stdlib version --- puppet/environment/docker/Puppetfile | 2 +- puppet/environment/vagrant/Puppetfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/puppet/environment/docker/Puppetfile b/puppet/environment/docker/Puppetfile index 0d0c88114..5ac7f378a 100644 --- a/puppet/environment/docker/Puppetfile +++ b/puppet/environment/docker/Puppetfile @@ -5,7 +5,7 @@ ## Install Module: stdlib (apt dependency) mod 'stdlib', :git => 'https://github.com/puppetlabs/puppetlabs-stdlib.git', - :ref => '4.11.0' + :ref => '4.15.0' ## Install Module: apt (from master) mod 'apt', diff --git a/puppet/environment/vagrant/Puppetfile b/puppet/environment/vagrant/Puppetfile index 9303dd437..0c9f6375a 100644 --- a/puppet/environment/vagrant/Puppetfile +++ b/puppet/environment/vagrant/Puppetfile @@ -8,7 +8,7 @@ ## Install Module: stdlib (apt dependency) mod 'stdlib', :git => 'git@github.com:puppetlabs/puppetlabs-stdlib.git', - :ref => '4.11.0' + :ref => '4.15.0' ## Install Module: apt (from master) mod 'apt', From ae3cf11a84a5c3b03f85bd8d142d9f781157859e Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 07:32:40 -0500 Subject: [PATCH 54/59] #2932: default.dockerfile, remove 'nodejs -v' --- default.dockerfile | 3 --- 1 file changed, 3 deletions(-) diff --git a/default.dockerfile b/default.dockerfile index 06d148d4e..728e0b2f1 100644 --- a/default.dockerfile +++ b/default.dockerfile @@ -35,9 +35,6 @@ RUN pip install pytest-cov==2.4.0 RUN mkdir -p $ENVIRONMENT_DIR/modules_contrib/ RUN PUPPETFILE=$ENVIRONMENT_DIR/Puppetfile PUPPETFILE_DIR=$ENVIRONMENT_DIR/modules_contrib/ r10k puppetfile install -## remove npm: it will be installed via puppet -RUN nodejs -v - ## provision with puppet RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/package/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test RUN /opt/puppetlabs/bin/puppet apply $ENVIRONMENT_DIR/modules/sklearn/manifests/init.pp --modulepath=$ENVIRONMENT_DIR/modules_contrib:$ENVIRONMENT_DIR/modules --confdir=$ROOT_PROJECT/hiera/test From 3ce906cdb46bb170bd444f7e1c2809c3494ae884 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 08:03:23 -0500 Subject: [PATCH 55/59] #2932: nodejs.pp, install node 4.x --- puppet/environment/docker/modules/package/manifests/nodejs.pp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/package/manifests/nodejs.pp b/puppet/environment/docker/modules/package/manifests/nodejs.pp index 1082ed823..f8e32f1c6 100644 --- a/puppet/environment/docker/modules/package/manifests/nodejs.pp +++ b/puppet/environment/docker/modules/package/manifests/nodejs.pp @@ -5,7 +5,9 @@ class package::nodejs { ## install nodejs, with npm class { 'nodejs': - repo_url_suffix => '5.x', + manage_package_repo => true, + repo_url_suffix => '4.x', + nodejs_package_ensure => 'latest' } contain nodejs } From ca291b35870cae9ab8f3e1719866103c68e7c4d1 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 08:14:07 -0500 Subject: [PATCH 56/59] #2932: nodejs.pp, restrict nodejs version --- puppet/environment/docker/modules/package/manifests/nodejs.pp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/puppet/environment/docker/modules/package/manifests/nodejs.pp b/puppet/environment/docker/modules/package/manifests/nodejs.pp index f8e32f1c6..45d6745c5 100644 --- a/puppet/environment/docker/modules/package/manifests/nodejs.pp +++ b/puppet/environment/docker/modules/package/manifests/nodejs.pp @@ -6,8 +6,8 @@ ## install nodejs, with npm class { 'nodejs': manage_package_repo => true, - repo_url_suffix => '4.x', - nodejs_package_ensure => 'latest' + repo_url_suffix => '5.x', + nodejs_package_ensure => '5.0.0-3nodesource1~trusty1' } contain nodejs } From 2f9a456c03014b12bd307f5ba6a80392a1c66e62 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 10:44:43 -0500 Subject: [PATCH 57/59] #2932: .travis.yml, use 'dist' to install trusty --- .travis.yml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index eebcb5967..77de91599 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,6 @@ -sudo: required - language: python - -## allows 'docker' command -services: -- docker +dist: trusty +sudo: required ## environment variables env: @@ -18,9 +14,6 @@ env: ## https://docs.docker.com/engine/installation/linux/ubuntu/ ## before_install: - # uninstall old docker-engine - - sudo apt-get remove docker docker-engine - # install docker to specific version - sudo apt-get install apt-transport-https ca-certificates curl software-properties-common - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - From cf665a21bc3e98e4cbc1c9527e721f2c77331290 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 11:01:29 -0500 Subject: [PATCH 58/59] #2932: nodejs.pp, ensure 'latest' nodjs --- puppet/environment/docker/modules/package/manifests/nodejs.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/package/manifests/nodejs.pp b/puppet/environment/docker/modules/package/manifests/nodejs.pp index 45d6745c5..29928736c 100644 --- a/puppet/environment/docker/modules/package/manifests/nodejs.pp +++ b/puppet/environment/docker/modules/package/manifests/nodejs.pp @@ -7,7 +7,7 @@ class { 'nodejs': manage_package_repo => true, repo_url_suffix => '5.x', - nodejs_package_ensure => '5.0.0-3nodesource1~trusty1' + nodejs_package_ensure => 'latest' } contain nodejs } From 7ad4853d91e01c1805091f8ce33dc9b96aa90364 Mon Sep 17 00:00:00 2001 From: jeff levesque Date: Wed, 8 Mar 2017 11:19:52 -0500 Subject: [PATCH 59/59] #2932: nodejs.pp, ensure nodejs repo '4.x' --- puppet/environment/docker/modules/package/manifests/nodejs.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/puppet/environment/docker/modules/package/manifests/nodejs.pp b/puppet/environment/docker/modules/package/manifests/nodejs.pp index 29928736c..f8e32f1c6 100644 --- a/puppet/environment/docker/modules/package/manifests/nodejs.pp +++ b/puppet/environment/docker/modules/package/manifests/nodejs.pp @@ -6,7 +6,7 @@ ## install nodejs, with npm class { 'nodejs': manage_package_repo => true, - repo_url_suffix => '5.x', + repo_url_suffix => '4.x', nodejs_package_ensure => 'latest' } contain nodejs