cloud-mu 3.3.0 → 3.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ansible/roles/mu-nat/tasks/main.yml +3 -0
- data/bin/mu-aws-setup +41 -7
- data/bin/mu-azure-setup +36 -2
- data/bin/mu-configure +214 -119
- data/bin/mu-gcp-setup +37 -2
- data/bin/mu-node-manage +3 -0
- data/bin/mu-refresh-ssl +67 -0
- data/bin/mu-run-tests +14 -4
- data/bin/mu-self-update +30 -10
- data/bin/mu-upload-chef-artifacts +30 -26
- data/cloud-mu.gemspec +9 -7
- data/cookbooks/mu-master/attributes/default.rb +5 -1
- data/cookbooks/mu-master/metadata.rb +2 -2
- data/cookbooks/mu-master/recipes/default.rb +81 -26
- data/cookbooks/mu-master/recipes/init.rb +197 -62
- data/cookbooks/mu-master/recipes/update_nagios_only.rb +1 -1
- data/cookbooks/mu-master/recipes/vault.rb +78 -77
- data/cookbooks/mu-master/templates/default/mods/rewrite.conf.erb +1 -0
- data/cookbooks/mu-master/templates/default/nagios.conf.erb +103 -0
- data/cookbooks/mu-master/templates/default/web_app.conf.erb +14 -30
- data/cookbooks/mu-tools/attributes/default.rb +12 -0
- data/cookbooks/mu-tools/files/centos-6/CentOS-Base.repo +47 -0
- data/cookbooks/mu-tools/libraries/helper.rb +98 -4
- data/cookbooks/mu-tools/libraries/monkey.rb +1 -1
- data/cookbooks/mu-tools/recipes/apply_security.rb +31 -9
- data/cookbooks/mu-tools/recipes/aws_api.rb +8 -2
- data/cookbooks/mu-tools/recipes/base_repositories.rb +1 -1
- data/cookbooks/mu-tools/recipes/gcloud.rb +2 -9
- data/cookbooks/mu-tools/recipes/google_api.rb +7 -0
- data/cookbooks/mu-tools/recipes/rsyslog.rb +8 -1
- data/cookbooks/mu-tools/resources/disk.rb +113 -42
- data/cookbooks/mu-tools/resources/mommacat_request.rb +1 -2
- data/cookbooks/mu-tools/templates/centos-8/sshd_config.erb +215 -0
- data/extras/Gemfile.lock.bootstrap +394 -0
- data/extras/bucketstubs/error.html +0 -0
- data/extras/bucketstubs/index.html +0 -0
- data/extras/clean-stock-amis +11 -3
- data/extras/generate-stock-images +6 -3
- data/extras/git_rpm/build.sh +20 -0
- data/extras/git_rpm/mugit.spec +53 -0
- data/extras/image-generators/AWS/centos7.yaml +19 -16
- data/extras/image-generators/AWS/{rhel7.yaml → rhel71.yaml} +0 -0
- data/extras/image-generators/AWS/{win2k12.yaml → win2k12r2.yaml} +0 -0
- data/extras/image-generators/VMWare/centos8.yaml +15 -0
- data/extras/openssl_rpm/build.sh +19 -0
- data/extras/openssl_rpm/mussl.spec +46 -0
- data/extras/python_rpm/muthon.spec +14 -4
- data/extras/ruby_rpm/muby.spec +9 -5
- data/extras/sqlite_rpm/build.sh +19 -0
- data/extras/sqlite_rpm/muqlite.spec +47 -0
- data/install/installer +7 -5
- data/modules/mommacat.ru +2 -2
- data/modules/mu.rb +12 -5
- data/modules/mu/cloud/machine_images.rb +1 -1
- data/modules/mu/cloud/providers.rb +6 -1
- data/modules/mu/cloud/resource_base.rb +7 -4
- data/modules/mu/cloud/ssh_sessions.rb +5 -1
- data/modules/mu/cloud/wrappers.rb +16 -7
- data/modules/mu/config.rb +28 -12
- data/modules/mu/config/database.rb +2 -2
- data/modules/mu/config/firewall_rule.rb +1 -1
- data/modules/mu/config/ref.rb +3 -3
- data/modules/mu/config/schema_helpers.rb +12 -3
- data/modules/mu/config/server.rb +10 -4
- data/modules/mu/config/server_pool.rb +2 -2
- data/modules/mu/config/vpc.rb +10 -10
- data/modules/mu/defaults/AWS.yaml +96 -96
- data/modules/mu/deploy.rb +27 -14
- data/modules/mu/groomers/chef.rb +2 -2
- data/modules/mu/master.rb +49 -3
- data/modules/mu/mommacat.rb +27 -9
- data/modules/mu/mommacat/naming.rb +2 -2
- data/modules/mu/mommacat/search.rb +16 -5
- data/modules/mu/mommacat/storage.rb +67 -32
- data/modules/mu/providers/aws.rb +185 -71
- data/modules/mu/providers/aws/alarm.rb +3 -3
- data/modules/mu/providers/aws/bucket.rb +19 -19
- data/modules/mu/providers/aws/cache_cluster.rb +22 -22
- data/modules/mu/providers/aws/cdn.rb +2 -2
- data/modules/mu/providers/aws/collection.rb +14 -14
- data/modules/mu/providers/aws/container_cluster.rb +27 -27
- data/modules/mu/providers/aws/database.rb +49 -45
- data/modules/mu/providers/aws/dnszone.rb +5 -5
- data/modules/mu/providers/aws/endpoint.rb +35 -35
- data/modules/mu/providers/aws/firewall_rule.rb +26 -23
- data/modules/mu/providers/aws/function.rb +35 -32
- data/modules/mu/providers/aws/group.rb +7 -7
- data/modules/mu/providers/aws/habitat.rb +2 -2
- data/modules/mu/providers/aws/job.rb +35 -32
- data/modules/mu/providers/aws/loadbalancer.rb +58 -37
- data/modules/mu/providers/aws/log.rb +14 -14
- data/modules/mu/providers/aws/msg_queue.rb +10 -10
- data/modules/mu/providers/aws/nosqldb.rb +8 -8
- data/modules/mu/providers/aws/notifier.rb +7 -7
- data/modules/mu/providers/aws/role.rb +69 -47
- data/modules/mu/providers/aws/search_domain.rb +10 -10
- data/modules/mu/providers/aws/server.rb +198 -110
- data/modules/mu/providers/aws/server_pool.rb +71 -119
- data/modules/mu/providers/aws/storage_pool.rb +17 -9
- data/modules/mu/providers/aws/user.rb +1 -1
- data/modules/mu/providers/aws/vpc.rb +106 -51
- data/modules/mu/providers/aws/vpc_subnet.rb +43 -39
- data/modules/mu/providers/azure.rb +82 -16
- data/modules/mu/providers/azure/server.rb +18 -3
- data/modules/mu/providers/cloudformation/server.rb +1 -1
- data/modules/mu/providers/google.rb +20 -5
- data/modules/mu/providers/google/folder.rb +6 -2
- data/modules/mu/providers/google/function.rb +65 -30
- data/modules/mu/providers/google/role.rb +2 -1
- data/modules/mu/providers/google/vpc.rb +27 -2
- data/modules/tests/aws-servers-with-handrolled-iam.yaml +37 -0
- data/modules/tests/k8s.yaml +1 -1
- metadata +32 -15
@@ -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
|
@@ -1,17 +1,20 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
2
|
+
appname: mu
|
3
|
+
servers:
|
4
|
+
- name: centos7
|
5
|
+
platform: centos7
|
6
|
+
size: m4.large
|
7
|
+
vpc:
|
8
|
+
name: c7vpc
|
9
|
+
scrub_groomer: true
|
10
|
+
run_list:
|
11
|
+
- recipe[mu-tools::apply_security]
|
12
|
+
- recipe[mu-tools::updates]
|
13
|
+
- recipe[mu-tools::split_var_partitions]
|
14
|
+
create_image:
|
15
|
+
image_then_destroy: true
|
16
|
+
public: true
|
17
|
+
copy_to_regions:
|
18
|
+
- "#ALL"
|
19
|
+
vpcs:
|
20
|
+
- name: c7vpc
|
File without changes
|
File without changes
|
@@ -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:
|
4
|
+
Version: 3.8.3
|
5
5
|
Release: 1%{dist}
|
6
6
|
Group: Development/Languages
|
7
|
-
License:
|
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
|
-
|
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/
|
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/
|
data/extras/ruby_rpm/muby.spec
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
Summary: Ruby for Mu(by)
|
2
2
|
BuildArch: x86_64
|
3
3
|
Name: muby
|
4
|
-
Version: 2.
|
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.
|
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.
|
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="
|
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/mommacat.ru
CHANGED
@@ -387,7 +387,7 @@ app = proc do |env|
|
|
387
387
|
|
388
388
|
# XXX We can't assume AWS anymore. What does this look like otherwise?
|
389
389
|
# If this is an already-groomed instance, try to get a real object for it
|
390
|
-
instance = MU::MommaCat.findStray("AWS", "server", cloud_id: req["mu_instance_id"], region: server_cfg["region"], deploy_id: req["mu_id"], name: req["mu_resource_name"], dummy_ok:
|
390
|
+
instance = MU::MommaCat.findStray("AWS", "server", cloud_id: req["mu_instance_id"], region: server_cfg["region"], deploy_id: req["mu_id"], name: req["mu_resource_name"], dummy_ok: true, calling_deploy: kittenpile).first
|
391
391
|
mu_name = nil
|
392
392
|
if instance.nil?
|
393
393
|
# Now we're just checking for existence in the cloud provider, really
|
@@ -416,7 +416,7 @@ app = proc do |env|
|
|
416
416
|
if instance.respond_to?(:addVolume)
|
417
417
|
# XXX make sure we handle mangled input safely
|
418
418
|
params = JSON.parse(Base64.decode64(req["add_volume"]))
|
419
|
-
MU.log "
|
419
|
+
MU.log "add_volume request", MU::NOTICE, details: params
|
420
420
|
instance.addVolume(params["dev"], params["size"], delete_on_termination: params["delete_on_termination"])
|
421
421
|
else
|
422
422
|
returnval = throw500 "I don't know how to add a volume for #{instance}"
|
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 %
|
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
|