smartmachine 1.0.1 → 1.1.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/README.md +2 -14
- data/lib/smart_machine/apps/container.rb +1 -0
- data/lib/smart_machine/apps/manager.rb +1 -1
- data/lib/smart_machine/base.rb +6 -0
- data/lib/smart_machine/buildpackers/buildpacker.rb +49 -1
- data/lib/smart_machine/buildpackers/rails.rb +87 -12
- data/lib/smart_machine/commands/grid.rb +8 -0
- data/lib/smart_machine/commands/grid_commands/elasticsearch.rb +0 -3
- data/lib/smart_machine/commands/grid_commands/nextcloud.rb +65 -0
- data/lib/smart_machine/commands/grid_commands/terminal.rb +107 -0
- data/lib/smart_machine/commands/machine.rb +8 -0
- data/lib/smart_machine/configuration.rb +23 -1
- data/lib/smart_machine/credentials.rb +9 -0
- data/lib/smart_machine/docker.rb +10 -9
- data/lib/smart_machine/engine.rb +44 -9
- data/lib/smart_machine/grids/nextcloud.rb +93 -0
- data/lib/smart_machine/grids/prereceiver/Dockerfile +10 -13
- data/lib/smart_machine/grids/redis.rb +8 -3
- data/lib/smart_machine/grids/redmine.rb +61 -0
- data/lib/smart_machine/grids/terminal/entrypoint.rb +95 -0
- data/lib/smart_machine/grids/terminal/haproxy.cfg +45 -0
- data/lib/smart_machine/grids/terminal/init.el +310 -0
- data/lib/smart_machine/grids/terminal/wetty.rb +44 -0
- data/lib/smart_machine/grids/terminal.rb +179 -0
- data/lib/smart_machine/machine.rb +26 -5
- data/lib/smart_machine/syncer.rb +8 -7
- data/lib/smart_machine/templates/dotsmartmachine/config/nextcloud.yml +27 -0
- data/lib/smart_machine/templates/dotsmartmachine/config/redis.yml +6 -1
- data/lib/smart_machine/templates/dotsmartmachine/config/terminal.yml +13 -0
- data/lib/smart_machine/templates/dotsmartmachine/grids/nginx/fastcgi.conf +1 -1
- data/lib/smart_machine/templates/dotsmartmachine/grids/nginx/nginx.tmpl +448 -314
- data/lib/smart_machine/version.rb +3 -3
- data/lib/smart_machine.rb +3 -1
- metadata +57 -24
- data/lib/smart_machine/buildpackers/rails/Dockerfile +0 -21
- data/lib/smart_machine/commands/grid_commands/scheduler.rb +0 -15
- data/lib/smart_machine/engine/Dockerfile +0 -30
- data/lib/smart_machine/grids/elasticsearch/.keep +0 -0
- data/lib/smart_machine/grids/minio/.keep +0 -0
- data/lib/smart_machine/grids/nginx/.keep +0 -0
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/APKBUILD +0 -49
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/fcgiwrap.confd +0 -6
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/fcgiwrap.initd +0 -43
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/fcgiwrap.pre-install +0 -7
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/APKINDEX.tar.gz +0 -0
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-1.1.1-r4.apk +0 -0
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-doc-1.1.1-r4.apk +0 -0
- data/lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-openrc-1.1.1-r4.apk +0 -0
- data/lib/smart_machine/grids/redis/.keep +0 -0
- data/lib/smart_machine/grids/scheduler/Dockerfile +0 -14
- data/lib/smart_machine/grids/scheduler.rb +0 -188
- data/lib/smart_machine/templates/dotsmartmachine/grids/scheduler/crontabs/.keep +0 -0
@@ -16,8 +16,8 @@ module SmartMachine
|
|
16
16
|
|
17
17
|
module VERSION
|
18
18
|
MAJOR = 1
|
19
|
-
MINOR =
|
20
|
-
TINY =
|
19
|
+
MINOR = 1
|
20
|
+
TINY = 0
|
21
21
|
PRE = nil
|
22
22
|
|
23
23
|
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
|
@@ -26,7 +26,7 @@ module SmartMachine
|
|
26
26
|
module RUBY_VERSION
|
27
27
|
MAJOR = 2
|
28
28
|
MINOR = 7
|
29
|
-
TINY =
|
29
|
+
TINY = 7
|
30
30
|
PRE = nil
|
31
31
|
|
32
32
|
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
|
data/lib/smart_machine.rb
CHANGED
@@ -25,11 +25,13 @@ require 'smart_machine/buildpackers/rails'
|
|
25
25
|
require 'smart_machine/grids/elasticsearch'
|
26
26
|
require 'smart_machine/grids/minio'
|
27
27
|
require 'smart_machine/grids/mysql'
|
28
|
+
require 'smart_machine/grids/nextcloud'
|
28
29
|
require 'smart_machine/grids/nginx'
|
29
30
|
require 'smart_machine/grids/prereceiver'
|
30
31
|
require 'smart_machine/grids/redis'
|
31
|
-
# require 'smart_machine/grids/scheduler'
|
32
32
|
# require 'smart_machine/grids/solr'
|
33
|
+
require 'smart_machine/grids/terminal/wetty'
|
34
|
+
require 'smart_machine/grids/terminal'
|
33
35
|
|
34
36
|
module SmartMachine
|
35
37
|
class Error < StandardError; end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smartmachine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- plainsource
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-ssh
|
@@ -24,6 +24,46 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '6.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: ed25519
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.2'
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '2.0'
|
37
|
+
type: :runtime
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '1.2'
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '2.0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: bcrypt_pbkdf
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.0'
|
54
|
+
- - "<"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '2.0'
|
57
|
+
type: :runtime
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '1.0'
|
64
|
+
- - "<"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '2.0'
|
27
67
|
- !ruby/object:Gem::Dependency
|
28
68
|
name: bcrypt
|
29
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -133,7 +173,6 @@ files:
|
|
133
173
|
- lib/smart_machine/base.rb
|
134
174
|
- lib/smart_machine/buildpackers/buildpacker.rb
|
135
175
|
- lib/smart_machine/buildpackers/rails.rb
|
136
|
-
- lib/smart_machine/buildpackers/rails/Dockerfile
|
137
176
|
- lib/smart_machine/commands.rb
|
138
177
|
- lib/smart_machine/commands/app.rb
|
139
178
|
- lib/smart_machine/commands/buildpacker.rb
|
@@ -144,11 +183,12 @@ files:
|
|
144
183
|
- lib/smart_machine/commands/grid_commands/elasticsearch.rb
|
145
184
|
- lib/smart_machine/commands/grid_commands/minio.rb
|
146
185
|
- lib/smart_machine/commands/grid_commands/mysql.rb
|
186
|
+
- lib/smart_machine/commands/grid_commands/nextcloud.rb
|
147
187
|
- lib/smart_machine/commands/grid_commands/nginx.rb
|
148
188
|
- lib/smart_machine/commands/grid_commands/prereceiver.rb
|
149
189
|
- lib/smart_machine/commands/grid_commands/redis.rb
|
150
|
-
- lib/smart_machine/commands/grid_commands/scheduler.rb
|
151
190
|
- lib/smart_machine/commands/grid_commands/sub_thor.rb
|
191
|
+
- lib/smart_machine/commands/grid_commands/terminal.rb
|
152
192
|
- lib/smart_machine/commands/machine.rb
|
153
193
|
- lib/smart_machine/commands/syncer.rb
|
154
194
|
- lib/smart_machine/commands/utilities.rb
|
@@ -156,30 +196,17 @@ files:
|
|
156
196
|
- lib/smart_machine/credentials.rb
|
157
197
|
- lib/smart_machine/docker.rb
|
158
198
|
- lib/smart_machine/engine.rb
|
159
|
-
- lib/smart_machine/engine/Dockerfile
|
160
199
|
- lib/smart_machine/grids/elasticsearch.rb
|
161
|
-
- lib/smart_machine/grids/elasticsearch/.keep
|
162
200
|
- lib/smart_machine/grids/minio.rb
|
163
|
-
- lib/smart_machine/grids/minio/.keep
|
164
201
|
- lib/smart_machine/grids/mysql.rb
|
165
202
|
- lib/smart_machine/grids/mysql/docker-entrypoint-initdb.d/.keep
|
203
|
+
- lib/smart_machine/grids/nextcloud.rb
|
166
204
|
- lib/smart_machine/grids/nginx.rb
|
167
|
-
- lib/smart_machine/grids/nginx/.keep
|
168
205
|
- lib/smart_machine/grids/prereceiver.rb
|
169
206
|
- lib/smart_machine/grids/prereceiver/Dockerfile
|
170
|
-
- lib/smart_machine/grids/prereceiver/fcgiwrap/APKBUILD
|
171
|
-
- lib/smart_machine/grids/prereceiver/fcgiwrap/fcgiwrap.confd
|
172
|
-
- lib/smart_machine/grids/prereceiver/fcgiwrap/fcgiwrap.initd
|
173
|
-
- lib/smart_machine/grids/prereceiver/fcgiwrap/fcgiwrap.pre-install
|
174
|
-
- lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/APKINDEX.tar.gz
|
175
|
-
- lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-1.1.1-r4.apk
|
176
|
-
- lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-doc-1.1.1-r4.apk
|
177
|
-
- lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-openrc-1.1.1-r4.apk
|
178
207
|
- lib/smart_machine/grids/prereceiver/pre-receive
|
179
208
|
- lib/smart_machine/grids/redis.rb
|
180
|
-
- lib/smart_machine/grids/
|
181
|
-
- lib/smart_machine/grids/scheduler.rb
|
182
|
-
- lib/smart_machine/grids/scheduler/Dockerfile
|
209
|
+
- lib/smart_machine/grids/redmine.rb
|
183
210
|
- lib/smart_machine/grids/solr.rb
|
184
211
|
- lib/smart_machine/grids/solr/config/.keep
|
185
212
|
- lib/smart_machine/grids/solr/config/README.txt
|
@@ -344,6 +371,11 @@ files:
|
|
344
371
|
- lib/smart_machine/grids/solr/docker-entrypoint-initdb.d/.keep
|
345
372
|
- lib/smart_machine/grids/solr/sunspot/conf/schema.xml
|
346
373
|
- lib/smart_machine/grids/solr/sunspot/conf/solrconfig.xml
|
374
|
+
- lib/smart_machine/grids/terminal.rb
|
375
|
+
- lib/smart_machine/grids/terminal/entrypoint.rb
|
376
|
+
- lib/smart_machine/grids/terminal/haproxy.cfg
|
377
|
+
- lib/smart_machine/grids/terminal/init.el
|
378
|
+
- lib/smart_machine/grids/terminal/wetty.rb
|
347
379
|
- lib/smart_machine/logger.rb
|
348
380
|
- lib/smart_machine/machine.rb
|
349
381
|
- lib/smart_machine/scp.rb
|
@@ -357,15 +389,16 @@ files:
|
|
357
389
|
- lib/smart_machine/templates/dotsmartmachine/config/minio.yml
|
358
390
|
- lib/smart_machine/templates/dotsmartmachine/config/mysql.yml
|
359
391
|
- lib/smart_machine/templates/dotsmartmachine/config/mysql/schedule.rb
|
392
|
+
- lib/smart_machine/templates/dotsmartmachine/config/nextcloud.yml
|
360
393
|
- lib/smart_machine/templates/dotsmartmachine/config/prereceiver.yml
|
361
394
|
- lib/smart_machine/templates/dotsmartmachine/config/redis.yml
|
395
|
+
- lib/smart_machine/templates/dotsmartmachine/config/terminal.yml
|
362
396
|
- lib/smart_machine/templates/dotsmartmachine/config/users.yml
|
363
397
|
- lib/smart_machine/templates/dotsmartmachine/gitignore-template
|
364
398
|
- lib/smart_machine/templates/dotsmartmachine/grids/nginx/certificates/.keep
|
365
399
|
- lib/smart_machine/templates/dotsmartmachine/grids/nginx/fastcgi.conf
|
366
400
|
- lib/smart_machine/templates/dotsmartmachine/grids/nginx/htpasswd/.keep
|
367
401
|
- lib/smart_machine/templates/dotsmartmachine/grids/nginx/nginx.tmpl
|
368
|
-
- lib/smart_machine/templates/dotsmartmachine/grids/scheduler/crontabs/.keep
|
369
402
|
- lib/smart_machine/templates/dotsmartmachine/grids/solr/solr/.keep
|
370
403
|
- lib/smart_machine/templates/dotsmartmachine/tmp/.keep
|
371
404
|
- lib/smart_machine/templates/dotsmartmachine/vendor/.keep
|
@@ -376,8 +409,8 @@ licenses:
|
|
376
409
|
metadata:
|
377
410
|
homepage_uri: https://github.com/plainsource/smartmachine
|
378
411
|
bug_tracker_uri: https://github.com/plainsource/smartmachine/issues
|
379
|
-
changelog_uri: https://github.com/plainsource/smartmachine/releases/tag/v1.0
|
380
|
-
source_code_uri: https://github.com/plainsource/smartmachine/tree/v1.0
|
412
|
+
changelog_uri: https://github.com/plainsource/smartmachine/releases/tag/v1.1.0
|
413
|
+
source_code_uri: https://github.com/plainsource/smartmachine/tree/v1.1.0
|
381
414
|
post_install_message:
|
382
415
|
rdoc_options: []
|
383
416
|
require_paths:
|
@@ -386,14 +419,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
386
419
|
requirements:
|
387
420
|
- - ">="
|
388
421
|
- !ruby/object:Gem::Version
|
389
|
-
version: 2.7.
|
422
|
+
version: 2.7.7
|
390
423
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
391
424
|
requirements:
|
392
425
|
- - ">="
|
393
426
|
- !ruby/object:Gem::Version
|
394
427
|
version: 1.8.11
|
395
428
|
requirements: []
|
396
|
-
rubygems_version: 3.1.
|
429
|
+
rubygems_version: 3.1.6
|
397
430
|
signing_key:
|
398
431
|
specification_version: 4
|
399
432
|
summary: Full-stack deployment framework for Rails.
|
@@ -1,21 +0,0 @@
|
|
1
|
-
ARG SMARTMACHINE_VERSION
|
2
|
-
|
3
|
-
FROM smartmachine/smartengine:$SMARTMACHINE_VERSION
|
4
|
-
LABEL maintainer="plainsource <plainsource@humanmind.me>"
|
5
|
-
|
6
|
-
# Ruby on Rails Essentials
|
7
|
-
RUN apk add --update build-base && \
|
8
|
-
apk add --update tzdata && \
|
9
|
-
apk add --update nodejs && \
|
10
|
-
apk add --update yarn && \
|
11
|
-
apk add --update mariadb-dev && \
|
12
|
-
apk add --update imagemagick && \
|
13
|
-
apk add --update ffmpeg && \
|
14
|
-
apk add --update mupdf && \
|
15
|
-
apk add --update mupdf-tools && \
|
16
|
-
rm -rf /var/cache/apk/*
|
17
|
-
|
18
|
-
# Gems
|
19
|
-
RUN gem install bundler -v 2.1.4
|
20
|
-
|
21
|
-
CMD ["smartmachine", "buildpacker", "packer", "rails"]
|
@@ -1,30 +0,0 @@
|
|
1
|
-
FROM ruby:2.7.0-alpine3.11
|
2
|
-
LABEL maintainer="plainsource <plainsource@humanmind.me>"
|
3
|
-
|
4
|
-
# User
|
5
|
-
# --- Fix to change docker gid to 998 (if it is in use) so that addgroup is free to create a group with docker gid.
|
6
|
-
ARG USER_NAME
|
7
|
-
ARG USER_UID
|
8
|
-
ARG DOCKER_GID
|
9
|
-
ARG DOCKER_GNAME
|
10
|
-
RUN sed -i "s/$DOCKER_GID/998/" /etc/group && \
|
11
|
-
adduser --disabled-password --gecos "" --uid "$USER_UID" "$USER_NAME" && \
|
12
|
-
addgroup --gid "$DOCKER_GID" "$DOCKER_GNAME" && adduser "$USER_NAME" "$DOCKER_GNAME"
|
13
|
-
|
14
|
-
# Essentials
|
15
|
-
RUN apk add --update build-base && \
|
16
|
-
apk add --update xz && \
|
17
|
-
apk add --update docker && \
|
18
|
-
apk add --update git && \
|
19
|
-
apk add --update rsync && \
|
20
|
-
rm -rf /var/cache/apk/*
|
21
|
-
|
22
|
-
# smartmachine gem
|
23
|
-
ARG SMARTMACHINE_VERSION
|
24
|
-
COPY ./smartmachine-$SMARTMACHINE_VERSION.gem ./smartmachine-$SMARTMACHINE_VERSION.gem
|
25
|
-
RUN gem install --no-document ./smartmachine-$SMARTMACHINE_VERSION.gem && \
|
26
|
-
rm ./smartmachine-$SMARTMACHINE_VERSION.gem
|
27
|
-
|
28
|
-
# smartmachine master key
|
29
|
-
ARG SMARTMACHINE_MASTER_KEY
|
30
|
-
ENV SMARTMACHINE_MASTER_KEY=$SMARTMACHINE_MASTER_KEY
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,49 +0,0 @@
|
|
1
|
-
# Contributor: Eivind Uggedal <eu@eju.no>
|
2
|
-
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
|
3
|
-
pkgname=fcgiwrap
|
4
|
-
#pkgver=1.1.0
|
5
|
-
pkgver=1.1.1
|
6
|
-
#pkgrel=3
|
7
|
-
pkgrel=4
|
8
|
-
pkgdesc="Simple server for running CGI applications over FastCGI"
|
9
|
-
# This url has been changed to add no_buffering feature for fcgiwrap where has not been currently merged by gnosek
|
10
|
-
#url="https://github.com/gnosek/fcgiwrap"
|
11
|
-
url="https://github.com/notr1ch/fcgiwrap"
|
12
|
-
arch="all"
|
13
|
-
license="MIT"
|
14
|
-
pkgusers="fcgiwrap"
|
15
|
-
pkggroups="www-data"
|
16
|
-
install="$pkgname.pre-install"
|
17
|
-
makedepends="$depends_dev autoconf libtool automake fcgi-dev"
|
18
|
-
subpackages="$pkgname-doc $pkgname-openrc"
|
19
|
-
# This source has been changed to add no_buffering feature for fcgiwrap where has not been currently merged by gnosek. Please note the use of master branch instead of $pkgver.
|
20
|
-
#source="$pkgname-$pkgver.tar.gz::https://github.com/gnosek/$pkgname/archive/$pkgver.tar.gz
|
21
|
-
source="$pkgname-$pkgver.tar.gz::https://github.com/notr1ch/$pkgname/archive/master.tar.gz
|
22
|
-
$pkgname.initd
|
23
|
-
$pkgname.confd"
|
24
|
-
|
25
|
-
#builddir="$srcdir/$pkgname-$pkgver"
|
26
|
-
builddir="$srcdir/$pkgname-master"
|
27
|
-
|
28
|
-
build() {
|
29
|
-
cd "$builddir"
|
30
|
-
autoreconf --install
|
31
|
-
CFLAGS="$CFLAGS -Wno-implicit-fallthrough" \
|
32
|
-
./configure --prefix=/usr \
|
33
|
-
--mandir=/share/man \
|
34
|
-
--sbindir=/bin
|
35
|
-
make
|
36
|
-
}
|
37
|
-
|
38
|
-
package() {
|
39
|
-
cd "$builddir"
|
40
|
-
install -d -m2775 -o fcgiwrap -g www-data "$pkgdir"/run/fcgiwrap
|
41
|
-
make DESTDIR="$pkgdir" install
|
42
|
-
install -Dm755 $srcdir/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
|
43
|
-
install -Dm644 $srcdir/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
|
44
|
-
}
|
45
|
-
|
46
|
-
|
47
|
-
sha512sums="4ffacd247f48ff0827531da1e9fbf19262d51827668d90cde1ec30ea23139cdf6f45a3b2a955a2a3b8e9ddbc85e7e4fa4dd18217e71288441c8cabdff5c24846 fcgiwrap-1.1.1.tar.gz
|
48
|
-
0dbf5f4387e5dc5de6e9bd6d98247e175f1a7943fe1d04ea916881b1269fd0b62abfafac91f8c0dd2f4dc9c71118195ba9dd7cf9bb5e3d93e6e711ec7d770453 fcgiwrap.initd
|
49
|
-
893e9afa92c20c9d0dab68fffc806a1be1f2e28a7e73bbb497316386a9ee083be4bad68a90f660e489311a9812a512b50fb0edb8b9c49b12f6cd266ba53b01a6 fcgiwrap.confd"
|
@@ -1,43 +0,0 @@
|
|
1
|
-
#!/sbin/openrc-run
|
2
|
-
|
3
|
-
name="fcgiwrap"
|
4
|
-
description="fcgiwrap cgi daemon"
|
5
|
-
|
6
|
-
command="/usr/bin/fcgiwrap"
|
7
|
-
command_background="yes"
|
8
|
-
user="fcgiwrap"
|
9
|
-
group="www-data"
|
10
|
-
: ${socket:=unix:/run/fcgiwrap/fcgiwrap.sock}
|
11
|
-
|
12
|
-
depend() {
|
13
|
-
need net localmount
|
14
|
-
after firewall
|
15
|
-
}
|
16
|
-
|
17
|
-
start_pre() {
|
18
|
-
command_args="-c ${nproc:-$(nproc)} -s $socket"
|
19
|
-
case "$socket" in
|
20
|
-
unix:/*)
|
21
|
-
local socket_path=${socket#unix:}
|
22
|
-
checkpath --directory --mode 2775 --owner ${user}:${group} \
|
23
|
-
${socket_path%/*}
|
24
|
-
;;
|
25
|
-
esac
|
26
|
-
}
|
27
|
-
|
28
|
-
start() {
|
29
|
-
ebegin "Starting ${name}"
|
30
|
-
start-stop-daemon --exec ${command} \
|
31
|
-
--background \
|
32
|
-
-u ${user} -g ${group} \
|
33
|
-
--start -- ${command_args}
|
34
|
-
eend $?
|
35
|
-
}
|
36
|
-
|
37
|
-
stop_post() {
|
38
|
-
case "$socket" in
|
39
|
-
unix:/*)
|
40
|
-
rm -f "${socket#unix:}"
|
41
|
-
;;
|
42
|
-
esac
|
43
|
-
}
|
Binary file
|
data/lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-1.1.1-r4.apk
DELETED
Binary file
|
data/lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-doc-1.1.1-r4.apk
DELETED
Binary file
|
data/lib/smart_machine/grids/prereceiver/fcgiwrap/packages/main/x86_64/fcgiwrap-openrc-1.1.1-r4.apk
DELETED
Binary file
|
File without changes
|
@@ -1,14 +0,0 @@
|
|
1
|
-
ARG SMARTMACHINE_VERSION
|
2
|
-
|
3
|
-
FROM smartmachine:$SMARTMACHINE_VERSION
|
4
|
-
LABEL maintainer="plainsource <plainsource@humanmind.me>"
|
5
|
-
|
6
|
-
# Scheduler Essentials
|
7
|
-
RUN apk add --update busybox-suid && \
|
8
|
-
apk add --update bash && \
|
9
|
-
rm -rf /var/cache/apk/*
|
10
|
-
|
11
|
-
# Gems
|
12
|
-
RUN gem install whenever -v 1.0.0
|
13
|
-
|
14
|
-
CMD ["crond", "-f", "-l", "0", "-L", "/dev/stdout"]
|
@@ -1,188 +0,0 @@
|
|
1
|
-
# The main SmartMachine Grids Scheduler driver
|
2
|
-
module SmartMachine
|
3
|
-
class Grids
|
4
|
-
class Scheduler < SmartMachine::Base
|
5
|
-
|
6
|
-
def initialize
|
7
|
-
end
|
8
|
-
|
9
|
-
def install
|
10
|
-
puts "-----> Installing Scheduler"
|
11
|
-
|
12
|
-
ssh = SmartMachine::SSH.new
|
13
|
-
commands = ["smartmachine runner scheduler create"]
|
14
|
-
ssh.run commands
|
15
|
-
|
16
|
-
puts "-----> Scheduler Installation Complete"
|
17
|
-
end
|
18
|
-
|
19
|
-
def uninstall
|
20
|
-
puts "-----> Uninstalling Scheduler"
|
21
|
-
|
22
|
-
ssh = SmartMachine::SSH.new
|
23
|
-
commands = ["smartmachine runner scheduler destroy"]
|
24
|
-
ssh.run commands
|
25
|
-
|
26
|
-
puts "-----> Scheduler Uninstallation Complete"
|
27
|
-
end
|
28
|
-
|
29
|
-
def update
|
30
|
-
uninstall
|
31
|
-
install
|
32
|
-
end
|
33
|
-
|
34
|
-
def create
|
35
|
-
unless system("docker image inspect #{scheduler_image_name}", [:out, :err] => File::NULL)
|
36
|
-
print "-----> Creating image #{scheduler_image_name} ... "
|
37
|
-
if system("docker image build -t #{scheduler_image_name} \
|
38
|
-
--build-arg SMARTMACHINE_VERSION=#{SmartMachine.version} \
|
39
|
-
#{SmartMachine.config.root_path}/lib/smart_machine/grids/scheduler", out: File::NULL)
|
40
|
-
puts "done"
|
41
|
-
|
42
|
-
up
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def destroy
|
48
|
-
down
|
49
|
-
|
50
|
-
if system("docker image inspect #{scheduler_image_name}", [:out, :err] => File::NULL)
|
51
|
-
print "-----> Removing image #{scheduler_image_name} ... "
|
52
|
-
if system("docker image rm #{scheduler_image_name}", out: File::NULL)
|
53
|
-
puts "done"
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
def up
|
59
|
-
if SmartMachine::Docker.running?
|
60
|
-
if system("docker image inspect #{scheduler_image_name}", [:out, :err] => File::NULL)
|
61
|
-
print "-----> Creating container scheduler with image #{scheduler_image_name} ... "
|
62
|
-
if system("docker create \
|
63
|
-
--name='scheduler' \
|
64
|
-
--env MAILTO=#{SmartMachine.config.sysadmin_email} \
|
65
|
-
--user `id -u` \
|
66
|
-
--workdir /home/`id -un`/.smartmachine \
|
67
|
-
--volume='#{SmartMachine.config.user_home_path}/.smartmachine/config:#{SmartMachine.config.user_home_path}/.smartmachine/config' \
|
68
|
-
--volume='#{SmartMachine.config.user_home_path}/.smartmachine/grids/scheduler:#{SmartMachine.config.user_home_path}/.smartmachine/grids/scheduler' \
|
69
|
-
--volume='#{SmartMachine.config.user_home_path}/.smartmachine/bin/smartmachine.sh:/usr/local/bundle/bin/smartmachine' \
|
70
|
-
--volume='/var/run/docker.sock:/var/run/docker.sock:ro' \
|
71
|
-
--restart='always' \
|
72
|
-
#{scheduler_image_name}", out: File::NULL)
|
73
|
-
puts "done"
|
74
|
-
|
75
|
-
print "-----> Starting container scheduler with image #{scheduler_image_name} ... "
|
76
|
-
if system("docker start scheduler", out: File::NULL)
|
77
|
-
puts "done"
|
78
|
-
|
79
|
-
restore_crontabs
|
80
|
-
else
|
81
|
-
puts "error"
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
def down
|
89
|
-
if SmartMachine::Docker.running?
|
90
|
-
# Stopping & Removing containers - in reverse order
|
91
|
-
if system("docker inspect -f '{{.State.Running}}' 'scheduler'", [:out, :err] => File::NULL)
|
92
|
-
print "-----> Stopping container scheduler with image #{scheduler_image_name} ... "
|
93
|
-
if system("docker stop 'scheduler'", out: File::NULL)
|
94
|
-
puts "done"
|
95
|
-
|
96
|
-
print "-----> Removing container scheduler with image #{scheduler_image_name} ... "
|
97
|
-
if system("docker rm 'scheduler'", out: File::NULL)
|
98
|
-
puts "done"
|
99
|
-
end
|
100
|
-
end
|
101
|
-
else
|
102
|
-
puts "-----> Container 'scheduler' is currently not running."
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
|
108
|
-
def start(*args)
|
109
|
-
args.flatten!
|
110
|
-
type = args.empty? ? '--all' : args.shift
|
111
|
-
|
112
|
-
self.class.running!
|
113
|
-
|
114
|
-
if type == '--mysql'
|
115
|
-
system("docker exec -i scheduler sh -c 'exec scheduler start --mysql'")
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
def stop(*args)
|
120
|
-
args.flatten!
|
121
|
-
type = args.empty? ? '--all' : args.shift
|
122
|
-
|
123
|
-
self.class.running!
|
124
|
-
|
125
|
-
if type == '--mysql'
|
126
|
-
system("docker exec -i scheduler sh -c 'exec scheduler stop --mysql'")
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
def mysql(*args)
|
131
|
-
args.flatten!
|
132
|
-
action = args.empty? ? '' : args.shift
|
133
|
-
|
134
|
-
return unless ['start', 'stop'].include? action
|
135
|
-
|
136
|
-
command = "whenever --set 'output=#{SmartMachine.config.user_home_path}/.smartmachine/grids/scheduler/crontabs/crontabs.log' --load-file #{SmartMachine.config.user_home_path}/.smartmachine/config/mysql/schedule.rb"
|
137
|
-
|
138
|
-
if action == 'start'
|
139
|
-
command += " --update-crontab"
|
140
|
-
action_text = "Starting"
|
141
|
-
elsif action == 'stop'
|
142
|
-
command += " --clear-crontab"
|
143
|
-
action_text = "Stopping"
|
144
|
-
end
|
145
|
-
|
146
|
-
print "-----> #{action_text} automatic backup schedule for mysql ... "
|
147
|
-
if system(command, out: File::NULL)
|
148
|
-
puts "done"
|
149
|
-
else
|
150
|
-
puts "error"
|
151
|
-
end
|
152
|
-
ensure
|
153
|
-
backup_crontabs
|
154
|
-
end
|
155
|
-
|
156
|
-
def scheduler_image_name
|
157
|
-
"smartmachine/scheduler:#{SmartMachine.version}"
|
158
|
-
end
|
159
|
-
|
160
|
-
def restore_crontabs
|
161
|
-
if system("docker exec scheduler sh -c 'exec test -f #{SmartMachine.config.user_home_path}/.smartmachine/grids/scheduler/crontabs/`id -un`'")
|
162
|
-
print "-----> Restoring latest crontabs ... "
|
163
|
-
|
164
|
-
if system("docker exec scheduler sh -c 'exec crontab - < #{SmartMachine.config.user_home_path}/.smartmachine/grids/scheduler/crontabs/`id -un`'")
|
165
|
-
puts "done"
|
166
|
-
else
|
167
|
-
puts "error"
|
168
|
-
end
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
|
-
def backup_crontabs
|
173
|
-
print "-----> Backing up latest crontabs ... "
|
174
|
-
if system("crontab -l > #{SmartMachine.config.user_home_path}/.smartmachine/grids/scheduler/crontabs/`id -un`", out: File::NULL)
|
175
|
-
puts "done"
|
176
|
-
else
|
177
|
-
puts "error"
|
178
|
-
end
|
179
|
-
end
|
180
|
-
|
181
|
-
def self.running!
|
182
|
-
unless system("docker inspect -f '{{.State.Running}}' 'scheduler'", [:out, :err] => File::NULL)
|
183
|
-
raise "Scheduler is not running. Please start scheduler before scheduling"
|
184
|
-
end
|
185
|
-
end
|
186
|
-
end
|
187
|
-
end
|
188
|
-
end
|
File without changes
|