cloud-mu 3.4.0 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/ansible/roles/mu-nat/tasks/main.yml +3 -0
  3. data/bin/mu-aws-setup +41 -7
  4. data/bin/mu-azure-setup +34 -0
  5. data/bin/mu-configure +214 -119
  6. data/bin/mu-gcp-setup +37 -2
  7. data/bin/mu-node-manage +3 -0
  8. data/bin/mu-refresh-ssl +67 -0
  9. data/bin/mu-run-tests +14 -4
  10. data/bin/mu-self-update +30 -10
  11. data/bin/mu-upload-chef-artifacts +30 -26
  12. data/cloud-mu.gemspec +8 -6
  13. data/cookbooks/mu-master/attributes/default.rb +5 -1
  14. data/cookbooks/mu-master/metadata.rb +2 -2
  15. data/cookbooks/mu-master/recipes/default.rb +81 -26
  16. data/cookbooks/mu-master/recipes/init.rb +197 -62
  17. data/cookbooks/mu-master/recipes/update_nagios_only.rb +1 -1
  18. data/cookbooks/mu-master/recipes/vault.rb +78 -77
  19. data/cookbooks/mu-master/templates/default/mods/rewrite.conf.erb +1 -0
  20. data/cookbooks/mu-master/templates/default/nagios.conf.erb +103 -0
  21. data/cookbooks/mu-master/templates/default/web_app.conf.erb +14 -30
  22. data/cookbooks/mu-tools/attributes/default.rb +5 -0
  23. data/cookbooks/mu-tools/files/centos-6/CentOS-Base.repo +47 -0
  24. data/cookbooks/mu-tools/libraries/helper.rb +12 -2
  25. data/cookbooks/mu-tools/libraries/monkey.rb +1 -1
  26. data/cookbooks/mu-tools/recipes/apply_security.rb +6 -0
  27. data/cookbooks/mu-tools/recipes/aws_api.rb +6 -4
  28. data/cookbooks/mu-tools/recipes/base_repositories.rb +1 -1
  29. data/cookbooks/mu-tools/recipes/gcloud.rb +2 -9
  30. data/cookbooks/mu-tools/recipes/google_api.rb +5 -2
  31. data/cookbooks/mu-tools/resources/disk.rb +108 -58
  32. data/extras/Gemfile.lock.bootstrap +394 -0
  33. data/extras/bucketstubs/error.html +0 -0
  34. data/extras/bucketstubs/index.html +0 -0
  35. data/extras/clean-stock-amis +9 -9
  36. data/extras/git_rpm/build.sh +20 -0
  37. data/extras/git_rpm/mugit.spec +53 -0
  38. data/extras/image-generators/VMWare/centos8.yaml +15 -0
  39. data/extras/openssl_rpm/build.sh +19 -0
  40. data/extras/openssl_rpm/mussl.spec +46 -0
  41. data/extras/python_rpm/muthon.spec +14 -4
  42. data/extras/ruby_rpm/muby.spec +9 -5
  43. data/extras/sqlite_rpm/build.sh +19 -0
  44. data/extras/sqlite_rpm/muqlite.spec +47 -0
  45. data/install/installer +7 -5
  46. data/modules/mu.rb +12 -5
  47. data/modules/mu/cloud/machine_images.rb +1 -1
  48. data/modules/mu/cloud/providers.rb +6 -1
  49. data/modules/mu/cloud/resource_base.rb +1 -1
  50. data/modules/mu/cloud/ssh_sessions.rb +4 -0
  51. data/modules/mu/config.rb +28 -12
  52. data/modules/mu/config/database.rb +2 -2
  53. data/modules/mu/config/firewall_rule.rb +1 -1
  54. data/modules/mu/config/ref.rb +2 -2
  55. data/modules/mu/config/schema_helpers.rb +12 -3
  56. data/modules/mu/config/server.rb +10 -4
  57. data/modules/mu/config/server_pool.rb +2 -2
  58. data/modules/mu/config/vpc.rb +10 -10
  59. data/modules/mu/defaults/AWS.yaml +32 -32
  60. data/modules/mu/deploy.rb +23 -10
  61. data/modules/mu/groomers/chef.rb +2 -2
  62. data/modules/mu/master.rb +49 -3
  63. data/modules/mu/mommacat.rb +8 -5
  64. data/modules/mu/mommacat/naming.rb +2 -2
  65. data/modules/mu/mommacat/storage.rb +22 -27
  66. data/modules/mu/providers/aws.rb +142 -48
  67. data/modules/mu/providers/aws/alarm.rb +3 -3
  68. data/modules/mu/providers/aws/bucket.rb +19 -19
  69. data/modules/mu/providers/aws/cache_cluster.rb +22 -22
  70. data/modules/mu/providers/aws/cdn.rb +2 -2
  71. data/modules/mu/providers/aws/collection.rb +14 -14
  72. data/modules/mu/providers/aws/container_cluster.rb +27 -27
  73. data/modules/mu/providers/aws/database.rb +40 -39
  74. data/modules/mu/providers/aws/dnszone.rb +5 -5
  75. data/modules/mu/providers/aws/endpoint.rb +35 -35
  76. data/modules/mu/providers/aws/firewall_rule.rb +26 -23
  77. data/modules/mu/providers/aws/function.rb +28 -28
  78. data/modules/mu/providers/aws/group.rb +7 -7
  79. data/modules/mu/providers/aws/habitat.rb +2 -2
  80. data/modules/mu/providers/aws/job.rb +6 -6
  81. data/modules/mu/providers/aws/loadbalancer.rb +34 -34
  82. data/modules/mu/providers/aws/log.rb +14 -14
  83. data/modules/mu/providers/aws/msg_queue.rb +10 -10
  84. data/modules/mu/providers/aws/nosqldb.rb +8 -8
  85. data/modules/mu/providers/aws/notifier.rb +7 -7
  86. data/modules/mu/providers/aws/role.rb +17 -15
  87. data/modules/mu/providers/aws/search_domain.rb +10 -10
  88. data/modules/mu/providers/aws/server.rb +176 -95
  89. data/modules/mu/providers/aws/server_pool.rb +65 -105
  90. data/modules/mu/providers/aws/storage_pool.rb +17 -9
  91. data/modules/mu/providers/aws/user.rb +1 -1
  92. data/modules/mu/providers/aws/vpc.rb +103 -51
  93. data/modules/mu/providers/aws/vpc_subnet.rb +43 -39
  94. data/modules/mu/providers/azure.rb +78 -12
  95. data/modules/mu/providers/azure/server.rb +18 -3
  96. data/modules/mu/providers/cloudformation/server.rb +1 -1
  97. data/modules/mu/providers/google.rb +19 -4
  98. data/modules/mu/providers/google/folder.rb +6 -2
  99. data/modules/mu/providers/google/function.rb +65 -30
  100. data/modules/mu/providers/google/role.rb +1 -1
  101. data/modules/mu/providers/google/vpc.rb +27 -2
  102. data/modules/tests/aws-servers-with-handrolled-iam.yaml +37 -0
  103. data/modules/tests/k8s.yaml +1 -1
  104. metadata +24 -8
File without changes
File without changes
@@ -54,15 +54,15 @@ MU::Cloud::AWS.listRegions.each { | r|
54
54
  MU::Cloud::AWS.ec2(region: r, credentials: $opts[:credentials]).deregister_image(image_id: ami.image_id)
55
55
  rescue Aws::EC2::Errors::InvalidAMIIDUnavailable
56
56
  end
57
- snaps.each { |snap_id|
58
- begin
59
- MU::Cloud::AWS.ec2(region: r, credentials: $opts[:credentials]).delete_snapshot(snapshot_id: snap_id)
60
- rescue Aws::EC2::Errors::InvalidSnapshotInUse
61
- sleep 5
62
- retry
63
- rescue Aws::EC2::Errors::InvalidSnapshotNotFound
64
- end
65
- }
57
+ snaps.each { |snap_id|
58
+ begin
59
+ MU::Cloud::AWS.ec2(region: r, credentials: $opts[:credentials]).delete_snapshot(snapshot_id: snap_id)
60
+ rescue Aws::EC2::Errors::InvalidSnapshotInUse
61
+ sleep 5
62
+ retry
63
+ rescue Aws::EC2::Errors::InvalidSnapshotNotFound
64
+ end
65
+ }
66
66
  end
67
67
  }
68
68
  }
@@ -0,0 +1,20 @@
1
+ #!/bin/sh
2
+
3
+ rpm -q rpm-build || yum -y install rpm-build
4
+ rpm -q libcurl-devel || yum -y install libcurl-devel
5
+
6
+ base="/opt/mu/lib/extras/git_rpm"
7
+
8
+ for d in BUILD BUILDROOT RPMS SOURCES SPECS SRPMS;do
9
+ mkdir -p ~/rpmbuild/$d
10
+ done
11
+ cd ~/rpmbuild
12
+
13
+ echo "Temporarily deleting /usr/local/git-current so rpmbuild can create it"
14
+ link="`readlink /usr/local/git-current`"
15
+ rm -f /usr/local/git-current
16
+ env -i PATH="/bin:/usr/bin" /usr/bin/rpmbuild -ba $base/mugit.spec
17
+ find ~/rpmbuild/ -type f -name 'mugit*' -exec ls -la {} \;
18
+ if [ "$link" != "" ];then
19
+ ln -s "$link" /usr/local/git-current
20
+ fi
@@ -0,0 +1,53 @@
1
+ Summary: Git for Mu on RHEL7-compatible systems
2
+ BuildArch: x86_64
3
+ Name: mugit
4
+ Version: 2.30.0
5
+ Release: 1%{dist}
6
+ Group: Development/Languages
7
+ License: https://git-scm.com/about/free-and-open-source
8
+ URL: https://git-scm.com/
9
+ Prefix: /opt/git
10
+ Source: https://github.com/git/git.git
11
+
12
+ AutoReq: yes
13
+
14
+ %description
15
+ I was surprisingly chill when I wrote this spec file
16
+
17
+ %prep
18
+ rm -rf $RPM_BUILD_DIR/git-%{version}
19
+ rm -rf $RPM_SOURCE_DIR/git*
20
+ rm -rf %{prefix}
21
+ test -f $RPM_SOURCE_DIR/git-%{version}/GIT-VERSION-GEN || ( cd $RPM_SOURCE_DIR && git clone https://github.com/git/git.git )
22
+ cd $RPM_SOURCE_DIR && mv git $RPM_BUILD_DIR/git-%{version}
23
+ mkdir -p $RPM_BUILD_ROOT%{prefix}
24
+ rm -rf $RPM_BUILD_ROOT%{prefix}/git-%{version}
25
+ ln -s %{prefix}/git-%{version} $RPM_BUILD_ROOT%{prefix}/git-%{version}
26
+
27
+ %build
28
+ cd $RPM_BUILD_DIR/git-%{version}
29
+ mkdir -p %{prefix}/git-%{version}
30
+ env -i PATH="/bin:/usr/bin" git checkout v%{version}
31
+ env -i PATH="/bin:/usr/bin" rm -rf .git
32
+ env -i PATH="/bin:/usr/bin" make configure
33
+ env -i PATH="/bin:/usr/bin" ./configure --prefix=%{prefix}/git-%{version}
34
+ env -i PATH="/bin:/usr/bin" make all
35
+
36
+ %install
37
+ cd $RPM_BUILD_DIR/git-%{version}
38
+ env -i PATH="/bin:/usr/bin" make install
39
+ mkdir -p $RPM_BUILD_ROOT%{prefix}
40
+ mv %{prefix}/git-%{version} $RPM_BUILD_ROOT%{prefix}/
41
+ mkdir -p $RPM_BUILD_ROOT/usr/local/
42
+ ln -s %{prefix}/git-%{version} $RPM_BUILD_ROOT/usr/local/git-current
43
+ # some idiot utility expects this to be present because reasons
44
+ touch /rpmbuild/SOURCES/git.git
45
+
46
+ %clean
47
+ cd $RPM_BUILD_DIR/git-%{version}
48
+ make clean
49
+ rm -f /rpmbuild/SOURCES/git.git
50
+
51
+ %files
52
+ %{prefix}/git-%{version}/*
53
+ /usr/local/git-current
@@ -0,0 +1,15 @@
1
+ ---
2
+ appname: mu
3
+ servers:
4
+ -
5
+ name: centos7
6
+ platform: centos7
7
+ size: m3.medium
8
+ scrub_groomer: true
9
+ run_list:
10
+ - recipe[mu-tools::apply_security]
11
+ - recipe[mu-tools::updates]
12
+ - recipe[mu-tools::split_var_partitions]
13
+ create_image:
14
+ image_then_destroy: true
15
+ public: true
@@ -0,0 +1,19 @@
1
+ #!/bin/sh
2
+
3
+ rpm -q rpm-build || yum -y install rpm-build
4
+
5
+ base="/opt/mu/lib/extras/openssl_rpm"
6
+
7
+ for d in BUILD BUILDROOT RPMS SOURCES SPECS SRPMS;do
8
+ mkdir -p ~/rpmbuild/$d
9
+ done
10
+ cd ~/rpmbuild
11
+
12
+ echo "Temporarily deleting /usr/local/openssl-current so rpmbuild can create it"
13
+ link="`readlink /usr/local/openssl-current`"
14
+ rm -f /usr/local/openssl-current
15
+ env -i PATH="/bin:/usr/bin" /usr/bin/rpmbuild -ba $base/mussl.spec
16
+ find ~/rpmbuild/ -type f -name 'mussl*' -exec ls -la {} \;
17
+ if [ "$link" != "" ];then
18
+ ln -s "$link" /usr/local/openssl-current
19
+ fi
@@ -0,0 +1,46 @@
1
+ Summary: OpenSSL for Mu on RHEL6-compatible systems
2
+ BuildArch: x86_64
3
+ Name: mussl
4
+ Version: 1.1.1h
5
+ Release: 1%{dist}
6
+ Group: Development/Languages
7
+ License: https://www.openssl.org/source/license-openssl-ssleay.txt
8
+ URL: https://www.openssl.org/
9
+ Prefix: /opt/openssl
10
+ Source: https://www.openssl.org/source/openssl-%{version}.tar.gz
11
+
12
+ AutoReq: yes
13
+
14
+ %description
15
+ I was agitated when I wrote this spec file
16
+
17
+ %prep
18
+ rm -rf $RPM_BUILD_DIR/openssl-%{version}
19
+ rm -rf %{prefix}
20
+ test -f $RPM_SOURCE_DIR/openssl-%{version}.tar.gz || ( cd $RPM_SOURCE_DIR && curl -O https://www.openssl.org/source/openssl-%{version}.tar.gz )
21
+ tar -xzvf $RPM_SOURCE_DIR/openssl-%{version}.tar.gz
22
+ mkdir -p $RPM_BUILD_ROOT%{prefix}
23
+ rm -rf $RPM_BUILD_ROOT%{prefix}/openssl-%{version}
24
+ ln -s %{prefix}/openssl-%{version} $RPM_BUILD_ROOT%{prefix}/openssl-%{version}
25
+
26
+ %build
27
+ cd $RPM_BUILD_DIR/openssl-%{version}
28
+ mkdir -p %{prefix}/openssl-%{version}
29
+ env -i PATH="/bin:/usr/bin" ./config --prefix=%{prefix}/openssl-%{version}
30
+ env -i PATH="/bin:/usr/bin" make
31
+
32
+ %install
33
+ cd $RPM_BUILD_DIR/openssl-%{version}
34
+ env -i PATH="/bin:/usr/bin" make install
35
+ mkdir -p $RPM_BUILD_ROOT%{prefix}
36
+ mv %{prefix}/openssl-%{version} $RPM_BUILD_ROOT%{prefix}/
37
+ mkdir -p $RPM_BUILD_ROOT/usr/local/
38
+ ln -s %{prefix}/openssl-%{version} $RPM_BUILD_ROOT/usr/local/openssl-current
39
+
40
+ %clean
41
+ cd $RPM_BUILD_DIR/openssl-%{version}
42
+ make clean
43
+
44
+ %files
45
+ %{prefix}/openssl-%{version}/*
46
+ /usr/local/openssl-current
@@ -1,10 +1,10 @@
1
1
  Summary: Python for Mu
2
2
  BuildArch: x86_64
3
3
  Name: muthon
4
- Version: 2.7.16
4
+ Version: 3.8.3
5
5
  Release: 1%{dist}
6
6
  Group: Development/Languages
7
- License: Ruby License/GPL - see COPYING
7
+ License: https://docs.python.org/3/license.html
8
8
  URL: https://www.python.org/
9
9
  Prefix: /opt/pythons
10
10
  Source: https://www.python.org/ftp/python/%{version}/Python-%{version}.tgz
@@ -16,12 +16,16 @@ AutoReq: no
16
16
  #%global __requires_exclude ^/usr/local/bin/python$
17
17
  #%global __requires_exclude ^/opt/pythons/Python-%{version}/bin/python.*$
18
18
 
19
+ %{?el6:BuildRequires: mussl}
20
+ %{?el6:BuildRequires: muqlite}
19
21
  BuildRequires: zlib-devel
20
22
  BuildRequires: tcl-devel
21
23
  BuildRequires: gdbm-devel
22
24
  BuildRequires: openssl-devel
23
25
  BuildRequires: sqlite-devel
24
26
  BuildRequires: tk-devel
27
+ %{?el6:Requires: mussl}
28
+ %{?el6:Requires: muqlite}
25
29
  Requires: zlib
26
30
  Requires: gdbm
27
31
  Requires: tcl
@@ -47,13 +51,19 @@ ln -s %{prefix}/Python-%{version} $RPM_BUILD_ROOT%{prefix}/Python-%{version}
47
51
  %build
48
52
  cd $RPM_BUILD_DIR/Python-%{version}
49
53
  mkdir -p %{prefix}/Python-%{version}
50
- env -i PATH="/bin:/usr/bin" ./configure --prefix=%{prefix}/Python-%{version} --exec-prefix=%{prefix}/Python-%{version} --enable-shared LDFLAGS=-Wl,-rpath=%{prefix}/Python-%{version}/lib
54
+ %if 0%{?el6}
55
+ # The SQLite library location logic is dain-bramaged
56
+ sed -i "s/sqlite_inc_paths = \[ '\/usr\/include'/sqlite_inc_paths = \[ '\/usr\/local\/sqlite-current\/include'/" setup.py
57
+ env -i PATH="/bin:/usr/bin" LDFLAGS="-L/usr/local/openssl-current/lib" ./configure --prefix=%{prefix}/Python-%{version} --exec-prefix=%{prefix}/Python-%{version} --enable-shared LDFLAGS=-Wl,-rpath=%{prefix}/Python-%{version}/lib,-rpath=/usr/local/openssl-current/lib,-rpath=/usr/local/sqlite-current/lib --with-openssl=/usr/local/openssl-current --enable-loadable-sqlite-extensions
58
+ %else
59
+ env -i PATH="/bin:/usr/bin" ./configure --prefix=%{prefix}/Python-%{version} --exec-prefix=%{prefix}/Python-%{version} --enable-shared LDFLAGS=-Wl,-rpath=%{prefix}/Python-%{version}/lib --enable-loadable-sqlite-extensions
60
+ %endif
51
61
  env -i PATH="/bin:/usr/bin" make
52
62
 
53
63
  %install
54
64
  cd $RPM_BUILD_DIR/Python-%{version}
55
65
  env -i PATH="/bin:/usr/bin" make install
56
- %{prefix}/Python-%{version}/bin/python $RPM_SOURCE_DIR/get-pip.py --prefix %{prefix}/Python-%{version}/
66
+ %{prefix}/Python-%{version}/bin/python3 $RPM_SOURCE_DIR/get-pip.py --prefix %{prefix}/Python-%{version}/ || ( ldd %{prefix}/Python-%{version}/bin/python3 ; exit 1 )
57
67
  mkdir -p $RPM_BUILD_ROOT%{prefix}
58
68
  mv %{prefix}/Python-%{version} $RPM_BUILD_ROOT%{prefix}/
59
69
  mkdir -p $RPM_BUILD_ROOT/usr/local/
@@ -1,13 +1,13 @@
1
1
  Summary: Ruby for Mu(by)
2
2
  BuildArch: x86_64
3
3
  Name: muby
4
- Version: 2.5.5
4
+ Version: 2.7.2
5
5
  Release: 1%{dist}
6
6
  Group: Development/Languages
7
7
  License: Ruby License/GPL - see COPYING
8
8
  URL: http://www.ruby-lang.org/
9
9
  Prefix: /opt/rubies
10
- Source: https://cache.ruby-lang.org/pub/ruby/2.5/ruby-%{version}.tar.gz
10
+ Source: https://cache.ruby-lang.org/pub/ruby/2.7/ruby-%{version}.tar.gz
11
11
 
12
12
  BuildRequires: zlib
13
13
  BuildRequires: zlib-devel
@@ -19,7 +19,7 @@ I was drunk when I wrote this spec file
19
19
  %prep
20
20
  rm -rf $RPM_BUILD_DIR/ruby-%{version}
21
21
  rm -rf %{prefix}
22
- test -f $RPM_SOURCE_DIR/ruby-%{version}.tar.gz || ( cd $RPM_SOURCE_DIR && curl -O https://cache.ruby-lang.org/pub/ruby/2.5/ruby-%{version}.tar.gz )
22
+ test -f $RPM_SOURCE_DIR/ruby-%{version}.tar.gz || ( cd $RPM_SOURCE_DIR && curl -O https://cache.ruby-lang.org/pub/ruby/2.7/ruby-%{version}.tar.gz )
23
23
  tar -xzvf $RPM_SOURCE_DIR/ruby-%{version}.tar.gz
24
24
  mkdir -p $RPM_BUILD_ROOT%{prefix}
25
25
  ln -s %{prefix}/ruby-%{version} $RPM_BUILD_ROOT%{prefix}/ruby-%{version}
@@ -33,11 +33,14 @@ make
33
33
  cd $RPM_BUILD_DIR/ruby-%{version}
34
34
  make install
35
35
  mkdir -p %{prefix}
36
- %{prefix}/ruby-%{version}/bin/gem install bundler
36
+ yes | %{prefix}/ruby-%{version}/bin/gem install bundler --version '~> 2.1.4' --force
37
37
  mkdir -p $RPM_BUILD_ROOT%{prefix}
38
38
  mv %{prefix}/ruby-%{version} $RPM_BUILD_ROOT%{prefix}/
39
- mkdir -p $RPM_BUILD_ROOT/usr/local/
39
+ mkdir -p $RPM_BUILD_ROOT/usr/local/bin
40
40
  ln -s %{prefix}/ruby-%{version} $RPM_BUILD_ROOT/usr/local/ruby-current
41
+ mkdir -p /usr/local/bin
42
+ rm -f $RPM_BUILD_ROOT/usr/local/bin/ruby
43
+ ln -s /usr/local/ruby-current/bin/ruby $RPM_BUILD_ROOT/usr/local/bin/ruby
41
44
 
42
45
  %clean
43
46
  cd $RPM_BUILD_DIR/ruby-%{version}
@@ -46,3 +49,4 @@ make clean
46
49
  %files
47
50
  %{prefix}/ruby-%{version}/*
48
51
  /usr/local/ruby-current
52
+ /usr/local/bin/ruby
@@ -0,0 +1,19 @@
1
+ #!/bin/sh
2
+
3
+ rpm -q rpm-build || yum -y install rpm-build
4
+
5
+ base="/opt/mu/lib/extras/sqlite_rpm"
6
+
7
+ for d in BUILD BUILDROOT RPMS SOURCES SPECS SRPMS;do
8
+ mkdir -p ~/rpmbuild/$d
9
+ done
10
+ cd ~/rpmbuild
11
+
12
+ echo "Temporarily deleting /usr/local/sqlite-current so rpmbuild can create it"
13
+ link="`readlink /usr/local/sqlite-current`"
14
+ rm -f /usr/local/sqlite-current
15
+ env -i PATH="/bin:/usr/bin" /usr/bin/rpmbuild -ba $base/muqlite.spec
16
+ find ~/rpmbuild/ -type f -name 'muqlite*' -exec ls -la {} \;
17
+ if [ "$link" != "" ];then
18
+ ln -s "$link" /usr/local/sqlite-current
19
+ fi
@@ -0,0 +1,47 @@
1
+ Summary: SQLite for Mu on RHEL6-compatible systems
2
+ BuildArch: x86_64
3
+ Name: muqlite
4
+ Version: 3.33
5
+ Release: 1%{dist}
6
+ Group: Development/Languages
7
+ License: https://www.sqlite.org/copyright.html
8
+ URL: https://sqlite.org/
9
+ Prefix: /opt/sqlite
10
+ Source: https://www.sqlite.org/src/tarball/sqlite.tar.gz?r=branch-%{version}
11
+
12
+ AutoReq: yes
13
+
14
+ %description
15
+ I was surprisingly chill when I wrote this spec file
16
+
17
+ %prep
18
+ rm -rf $RPM_BUILD_DIR/sqlite-%{version}
19
+ rm -rf %{prefix}
20
+ test -f $RPM_SOURCE_DIR/sqlite.tar.gz?r=branch-%{version} || ( cd $RPM_SOURCE_DIR && curl -O https://www.sqlite.org/src/tarball/sqlite.tar.gz?r=branch-%{version} )
21
+ tar -xzvf $RPM_SOURCE_DIR/sqlite.tar.gz?r=branch-%{version}
22
+ mv sqlite sqlite-%{version}
23
+ mkdir -p $RPM_BUILD_ROOT%{prefix}
24
+ rm -rf $RPM_BUILD_ROOT%{prefix}/sqlite-%{version}
25
+ ln -s %{prefix}/sqlite-%{version} $RPM_BUILD_ROOT%{prefix}/sqlite-%{version}
26
+
27
+ %build
28
+ cd $RPM_BUILD_DIR/sqlite-%{version}
29
+ mkdir -p %{prefix}/sqlite-%{version}
30
+ env -i PATH="/bin:/usr/bin" ./configure --prefix=%{prefix}/sqlite-%{version}
31
+ env -i PATH="/bin:/usr/bin" make
32
+
33
+ %install
34
+ cd $RPM_BUILD_DIR/sqlite-%{version}
35
+ env -i PATH="/bin:/usr/bin" make install
36
+ mkdir -p $RPM_BUILD_ROOT%{prefix}
37
+ mv %{prefix}/sqlite-%{version} $RPM_BUILD_ROOT%{prefix}/
38
+ mkdir -p $RPM_BUILD_ROOT/usr/local/
39
+ ln -s %{prefix}/sqlite-%{version} $RPM_BUILD_ROOT/usr/local/sqlite-current
40
+
41
+ %clean
42
+ cd $RPM_BUILD_DIR/sqlite-%{version}
43
+ make clean
44
+
45
+ %files
46
+ %{prefix}/sqlite-%{version}/*
47
+ /usr/local/sqlite-current
data/install/installer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  BOLD=`tput bold`
4
4
  NORM=`tput sgr0`
5
- CHEF_CLIENT_VERSION="14.13.11"
5
+ CHEF_CLIENT_VERSION="16.9.29"
6
6
  if [ "$MU_BRANCH" == "" ];then
7
7
  MU_BRANCH="master"
8
8
  mydir="`dirname $0`"
@@ -23,12 +23,8 @@ elif [ "$DIST_VERSION" == "server" ];then # funny package name in RHEL6
23
23
  fi
24
24
 
25
25
  if [ "$DIST_VERSION" == 7 ];then
26
- OPSCODE_CHEF_PKG="chef-server-core-$CHEF_SERVER_VERSION.el7.x86_64"
27
- OPSCODE_CHEF_DL="https://packages.chef.io/stable/el/7/${OPSCODE_CHEF_PKG}.rpm"
28
26
  CHEF_CLIENT_PKG="chef-$CHEF_CLIENT_VERSION.el7.x86_64"
29
27
  else
30
- OPSCODE_CHEF_PKG="chef-server-core-$CHEF_SERVER_VERSION.el6.x86_64"
31
- OPSCODE_CHEF_DL="https://packages.chef.io/stable/el/6/${OPSCODE_CHEF_PKG}.rpm"
32
28
  CHEF_CLIENT_PKG="chef-$CHEF_CLIENT_VERSION.el6.x86_64"
33
29
  fi
34
30
 
@@ -43,7 +39,9 @@ if [ ! -f /opt/chef/bin/chef-apply ];then
43
39
  fi
44
40
  set -x
45
41
  set -e
42
+
46
43
  if ! /bin/rpm -q $CHEF_CLIENT_PKG > /dev/null ;then
44
+
47
45
  # Drop any old Chef packages laying around, first
48
46
  /usr/bin/yum -y erase chef || /bin/rpm -e chef
49
47
  /bin/rm -rf /opt/chef ~/.berkshelf ~/.chef /etc/chef
@@ -51,6 +49,10 @@ if ! /bin/rpm -q $CHEF_CLIENT_PKG > /dev/null ;then
51
49
  /bin/sh /root/chef-install.sh -v $CHEF_CLIENT_VERSION
52
50
  fi
53
51
 
52
+ mkdir -p /etc/chef
53
+ grep ^chef_license /etc/chef/client.rb || echo "chef_license 'accept'" >> /etc/chef/client.rb
54
+ export CHEF_LICENSE="accept"
55
+
54
56
 
55
57
  if [ -d /opt/mu/lib/cookbooks/mu-master/recipes ];then
56
58
  /opt/chef/bin/chef-apply /opt/mu/lib/cookbooks/mu-master/recipes/init.rb
data/modules/mu.rb CHANGED
@@ -16,8 +16,6 @@ require 'bundler/setup'
16
16
  require 'yaml'
17
17
  require 'socket'
18
18
  require 'net/http'
19
- gem 'aws-sdk-core'
20
- autoload :Aws, "aws-sdk-core"
21
19
  gem 'nokogiri'
22
20
  autoload :Nokogiri, "nokogiri"
23
21
  gem 'simple-password-gen'
@@ -320,14 +318,14 @@ module MU
320
318
  # @param always [Proc]: Optional block of code to invoke before returning or failing, a bit like +ensure+
321
319
  # @param loop_if [Proc]: Optional block of code to invoke which will cause our block to be rerun until true
322
320
  # @param loop_msg [String]: Message to display every third attempt
323
- def self.retrier(catchme = nil, wait: 30, max: 0, ignoreme: [], on_retry: nil, always: nil, loop_if: nil, loop_msg: nil)
321
+ def self.retrier(catchme = nil, wait: 30, max: 0, ignoreme: [], on_retry: nil, always: nil, loop_if: nil, loop_msg: nil, logmsg_interval: 3)
324
322
 
325
323
  loop_if ||= Proc.new { false }
326
324
 
327
325
  retries = 0
328
326
  begin
329
327
  retries += 1
330
- loglevel = ((retries % 3) == 0) ? MU::NOTICE : MU::DEBUG
328
+ loglevel = (logmsg_interval > 0 and (retries % logmsg_interval) == 0) ? MU::NOTICE : MU::DEBUG
331
329
  log_attempts = retries.to_s
332
330
  log_attempts += (max > 0 ? "/"+max.to_s : "")
333
331
  yield(retries, wait) if block_given?
@@ -702,7 +700,8 @@ module MU
702
700
  if !$MU_CFG.nil? and !$MU_CFG['public_address'].nil? and
703
701
  !$MU_CFG['public_address'].empty? and @@my_public_ip != $MU_CFG['public_address']
704
702
  @@mu_public_addr = $MU_CFG['public_address']
705
- if !@@mu_public_addr.match(/^\d+\.\d+\.\d+\.\d+$/)
703
+ if !@@mu_public_addr.match(/^\d+\.\d+\.\d+\.\d+$/) and
704
+ File.exists?("/etc/hostname") and File.exists?("/etc/hosts")
706
705
  hostname = IO.readlines("/etc/hostname")[0].gsub(/\n/, '')
707
706
 
708
707
  hostlines = File.open('/etc/hosts').grep(/.*#{hostname}.*/)
@@ -887,22 +886,30 @@ module MU
887
886
  # @param stringify_keys [Boolean]
888
887
  # @return [Hash]
889
888
  def self.structToHash(struct, stringify_keys: false)
889
+ return nil if struct.nil?
890
+
890
891
  google_struct = false
891
892
  begin
892
893
  google_struct = struct.class.ancestors.include?(::Google::Apis::Core::Hashable)
893
894
  rescue NameError
895
+ rescue TypeError
896
+ return struct
894
897
  end
895
898
 
896
899
  aws_struct = false
897
900
  begin
898
901
  aws_struct = struct.class.ancestors.include?(::Seahorse::Client::Response)
899
902
  rescue NameError
903
+ rescue TypeError
904
+ return struct
900
905
  end
901
906
 
902
907
  azure_struct = false
903
908
  begin
904
909
  azure_struct = struct.class.ancestors.include?(::MsRestAzure) or struct.class.name.match(/Azure::.*?::Mgmt::.*?::Models::/)
905
910
  rescue NameError
911
+ rescue TypeError
912
+ return struct
906
913
  end
907
914
 
908
915
  if struct.is_a?(Struct) or struct.class.ancestors.include?(Struct) or