cloud-mu 3.2.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.
- checksums.yaml +4 -4
- data/Dockerfile +1 -1
- data/ansible/roles/mu-nat/tasks/main.yml +3 -0
- data/bin/mu-adopt +12 -1
- data/bin/mu-aws-setup +41 -7
- data/bin/mu-azure-setup +34 -0
- data/bin/mu-configure +214 -119
- data/bin/mu-gcp-setup +37 -2
- data/bin/mu-load-config.rb +2 -1
- data/bin/mu-node-manage +3 -0
- data/bin/mu-refresh-ssl +67 -0
- data/bin/mu-run-tests +28 -6
- data/bin/mu-self-update +30 -10
- data/bin/mu-upload-chef-artifacts +30 -26
- data/cloud-mu.gemspec +10 -8
- 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 +14 -7
- data/modules/mu/adoption.rb +5 -5
- data/modules/mu/cleanup.rb +47 -25
- data/modules/mu/cloud.rb +29 -1
- data/modules/mu/cloud/dnszone.rb +0 -2
- data/modules/mu/cloud/machine_images.rb +1 -1
- data/modules/mu/cloud/providers.rb +6 -1
- data/modules/mu/cloud/resource_base.rb +16 -7
- data/modules/mu/cloud/ssh_sessions.rb +5 -1
- data/modules/mu/cloud/wrappers.rb +20 -7
- data/modules/mu/config.rb +28 -12
- data/modules/mu/config/bucket.rb +31 -2
- data/modules/mu/config/cache_cluster.rb +1 -1
- data/modules/mu/config/cdn.rb +100 -0
- data/modules/mu/config/container_cluster.rb +1 -1
- data/modules/mu/config/database.rb +3 -3
- data/modules/mu/config/dnszone.rb +4 -3
- data/modules/mu/config/endpoint.rb +1 -0
- data/modules/mu/config/firewall_rule.rb +1 -1
- data/modules/mu/config/function.rb +16 -7
- data/modules/mu/config/job.rb +89 -0
- data/modules/mu/config/notifier.rb +7 -18
- data/modules/mu/config/ref.rb +55 -9
- data/modules/mu/config/schema_helpers.rb +12 -3
- data/modules/mu/config/server.rb +11 -5
- data/modules/mu/config/server_pool.rb +2 -2
- data/modules/mu/config/vpc.rb +11 -10
- data/modules/mu/defaults/AWS.yaml +106 -106
- data/modules/mu/deploy.rb +40 -14
- data/modules/mu/groomers/chef.rb +2 -2
- data/modules/mu/master.rb +70 -3
- data/modules/mu/mommacat.rb +28 -9
- data/modules/mu/mommacat/daemon.rb +13 -7
- 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 +298 -85
- data/modules/mu/providers/aws/alarm.rb +5 -5
- data/modules/mu/providers/aws/bucket.rb +284 -50
- data/modules/mu/providers/aws/cache_cluster.rb +26 -26
- data/modules/mu/providers/aws/cdn.rb +782 -0
- data/modules/mu/providers/aws/collection.rb +16 -16
- data/modules/mu/providers/aws/container_cluster.rb +84 -64
- data/modules/mu/providers/aws/database.rb +59 -55
- data/modules/mu/providers/aws/dnszone.rb +29 -12
- data/modules/mu/providers/aws/endpoint.rb +535 -50
- data/modules/mu/providers/aws/firewall_rule.rb +32 -26
- data/modules/mu/providers/aws/folder.rb +1 -1
- data/modules/mu/providers/aws/function.rb +300 -134
- data/modules/mu/providers/aws/group.rb +16 -14
- data/modules/mu/providers/aws/habitat.rb +4 -4
- data/modules/mu/providers/aws/job.rb +469 -0
- data/modules/mu/providers/aws/loadbalancer.rb +67 -45
- data/modules/mu/providers/aws/log.rb +17 -17
- data/modules/mu/providers/aws/msg_queue.rb +22 -13
- data/modules/mu/providers/aws/nosqldb.rb +99 -8
- data/modules/mu/providers/aws/notifier.rb +137 -65
- data/modules/mu/providers/aws/role.rb +119 -83
- data/modules/mu/providers/aws/search_domain.rb +166 -30
- data/modules/mu/providers/aws/server.rb +209 -118
- data/modules/mu/providers/aws/server_pool.rb +95 -130
- data/modules/mu/providers/aws/storage_pool.rb +19 -11
- data/modules/mu/providers/aws/user.rb +5 -5
- data/modules/mu/providers/aws/userdata/linux.erb +5 -4
- data/modules/mu/providers/aws/vpc.rb +109 -54
- data/modules/mu/providers/aws/vpc_subnet.rb +43 -39
- data/modules/mu/providers/azure.rb +78 -12
- data/modules/mu/providers/azure/server.rb +20 -4
- data/modules/mu/providers/cloudformation/server.rb +1 -1
- data/modules/mu/providers/google.rb +21 -5
- data/modules/mu/providers/google/bucket.rb +1 -1
- data/modules/mu/providers/google/container_cluster.rb +1 -1
- data/modules/mu/providers/google/database.rb +1 -1
- data/modules/mu/providers/google/firewall_rule.rb +1 -1
- data/modules/mu/providers/google/folder.rb +7 -3
- data/modules/mu/providers/google/function.rb +66 -31
- data/modules/mu/providers/google/group.rb +1 -1
- data/modules/mu/providers/google/habitat.rb +1 -1
- data/modules/mu/providers/google/loadbalancer.rb +1 -1
- data/modules/mu/providers/google/role.rb +6 -3
- data/modules/mu/providers/google/server.rb +1 -1
- data/modules/mu/providers/google/server_pool.rb +1 -1
- data/modules/mu/providers/google/user.rb +1 -1
- data/modules/mu/providers/google/vpc.rb +28 -3
- data/modules/tests/aws-jobs-functions.yaml +46 -0
- data/modules/tests/aws-servers-with-handrolled-iam.yaml +37 -0
- data/modules/tests/centos6.yaml +4 -0
- data/modules/tests/centos7.yaml +4 -0
- data/modules/tests/ecs.yaml +2 -2
- data/modules/tests/eks.yaml +1 -1
- data/modules/tests/functions/node-function/lambda_function.js +10 -0
- data/modules/tests/functions/python-function/lambda_function.py +12 -0
- data/modules/tests/k8s.yaml +1 -1
- data/modules/tests/microservice_app.yaml +288 -0
- data/modules/tests/rds.yaml +5 -5
- data/modules/tests/regrooms/rds.yaml +5 -5
- data/modules/tests/server-with-scrub-muisms.yaml +1 -1
- data/modules/tests/super_complex_bok.yml +2 -2
- data/modules/tests/super_simple_bok.yml +2 -2
- metadata +42 -17
|
@@ -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'
|
|
@@ -299,8 +297,8 @@ module MU
|
|
|
299
297
|
# Wrapper class for temporary Exceptions. Gives our internals something to
|
|
300
298
|
# inherit that will log a notice message appropriately before bubbling up.
|
|
301
299
|
class MuNonFatal < StandardError
|
|
302
|
-
def initialize(message = nil, silent: false)
|
|
303
|
-
MU.log message, MU::NOTICE if !message.nil? and !silent
|
|
300
|
+
def initialize(message = nil, silent: false, details: nil)
|
|
301
|
+
MU.log message, MU::NOTICE, details: details if !message.nil? and !silent
|
|
304
302
|
if MU.verbosity == MU::Logger::SILENT
|
|
305
303
|
super ""
|
|
306
304
|
else
|
|
@@ -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
|