smartcloud 0.0.198 → 0.0.199

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc8b9476cdd5ed8a6993d84f26b2ce1e6ebe966fd35f193622dff8532fd39ef2
4
- data.tar.gz: 4922222e91746feb348eb887346567fc45cd3290dc3c875dbc882eb3bad11de1
3
+ metadata.gz: 4eb9601ae182ffa7449229b5f2f55e8906b0fc08124b0d16f06de5b1b422ced4
4
+ data.tar.gz: a60b68ec73a41fb8ba992b47087890a43556901dcda3187eaa0ab4c9d2091031
5
5
  SHA512:
6
- metadata.gz: 605b518da4a5d290f628198ddaa92aa060be0ec9cceadef487fa1dd1046e3929532aec9569a27db3afe13ecfd5722e7381427bc22eae29806d78ab9d8d0ee107
7
- data.tar.gz: 720b3575168ecec626b12faedaf9cebd1c30b3d94f7a9dbbdbc7115afcd41e51b7ad30e84b82c028f463d280340460b0309145bd74835f150c7c952e79661cac
6
+ metadata.gz: f3695721dde058c095120dfdc08358dc34478e0de4d2952011cd446e5a91c4bea8c89f46350f3ff45708bfdbefe7c3040bfb17f71466499231646ec7696841eb
7
+ data.tar.gz: a01c908ce88720241c3e3b055670a3c71ded477502536ade1828e18c1e4958e5a81815f8d8a08c83cd1deef860d30451876b8ad1a08fc4feeaf104d7e573a157
data/bin/smartcloud CHANGED
@@ -9,6 +9,24 @@ elsif !Smartcloud::Boot.initialized?
9
9
  exit
10
10
  end
11
11
 
12
+ # if ARGV[0] == 'new'
13
+ # machine = Smartcloud::Machine.new
14
+ # raise "Please specify machine name" unless ARGV[1]
15
+ # machine.create(ARGV[1])
16
+ # elsif ARGV[0] == 'install'
17
+ # machine = Smartcloud::Machine.new
18
+ # machine.install_docker
19
+ # machine.install_engine
20
+ # elsif ARGV[0] == 'uninstall'
21
+ # machine = Smartcloud::Machine.new
22
+ # machine.uninstall_engine
23
+ # machine.uninstall_docker
24
+ # elsif ARGV[0] == 'run'
25
+ # machine = Smartcloud::Machine.new
26
+ # ARGV.shift
27
+ # raise "Please specify command to run" unless ARGV[0]
28
+ # machine.run(ARGV)
29
+
12
30
  if ARGV[0] == 'docker'
13
31
  if ARGV[1] == 'install'
14
32
  Smartcloud::Docker.install
@@ -51,4 +69,5 @@ elsif ARGV[0] == 'grids'
51
69
  # elsif ARGV[1] == 'destroy'
52
70
  # Smartcloud::User.destroy(ARGV[2], ARGV[3])
53
71
  # end
54
- end
72
+ end
73
+ puts "Specify a command to execute."
@@ -83,12 +83,14 @@ module Smartcloud
83
83
  end
84
84
 
85
85
  require 'smartcloud/machine'
86
- require 'smartcloud/docker'
87
86
 
88
- require 'smartcloud/grids/nginx'
89
- require 'smartcloud/grids/runner'
90
- require 'smartcloud/grids/buildpacker'
91
- require 'smartcloud/grids/solr'
92
- require 'smartcloud/grids/mysql'
87
+ require 'smartcloud/engine'
88
+ require 'smartcloud/docker'
93
89
 
94
90
  require 'smartcloud/user'
91
+
92
+ require 'smartcloud/grids/mysql'
93
+ require 'smartcloud/grids/solr'
94
+ require 'smartcloud/grids/buildpacker'
95
+ require 'smartcloud/grids/runner'
96
+ require 'smartcloud/grids/nginx'
@@ -0,0 +1,38 @@
1
+ # The main Smartcloud Engine driver
2
+ module Smartcloud
3
+ class Engine < Smartcloud::Base
4
+ def initialize
5
+ end
6
+
7
+ def create_images
8
+ # unless system("docker image inspect smartcloud", [:out, :err] => File::NULL)
9
+ # print "-----> Creating image smartcloud ... "
10
+ # if system("docker image build -t smartcloud \
11
+ # --build-arg DOCKER_GID=`getent group docker | cut -d: -f3` \
12
+ # --build-arg USER_UID=`id -u` \
13
+ # --build-arg USER_NAME=`id -un` \
14
+ # #{Smartcloud.config.root_path}/lib/smartcloud/engine")
15
+ # puts "done"
16
+ # end
17
+ # end
18
+
19
+ #docker build -t smartcloud \
20
+ # --build-arg USER_UID=`id -u` \
21
+ # --build-arg USER_GID=`id -g` \
22
+ # --build-arg USER_NAME=`id -un` \
23
+ # .
24
+
25
+ # docker run -it --rm -v "/home/$(whoami)/.smartcloud:/home/$(whoami)/.smartcloud" smartcloud
26
+ #
27
+ # system("docker create \
28
+ # --name='smartcloud' \
29
+ # --volume='#{Smartcloud.config.user_home_path}/.gem:#{Smartcloud.config.user_home_path}/.gem' \
30
+ # --volume='#{Smartcloud.config.user_home_path}/.smartcloud/config:#{Smartcloud.config.user_home_path}/.smartcloud/config' \
31
+ # --volume='#{Smartcloud.config.user_home_path}/.smartcloud/grids/grid-runner:#{Smartcloud.config.user_home_path}/.smartcloud/grids/grid-runner' \
32
+ # --volume='/var/run/docker.sock:/var/run/docker.sock' \
33
+ # --restart='always' \
34
+ # --network='nginx-network' \
35
+ # smartcloud/runner", out: File::NULL)
36
+ end
37
+ end
38
+ end
@@ -1,6 +1,9 @@
1
1
  FROM ruby:2.6.4-alpine3.10
2
2
  MAINTAINER Timeboard <hello@timeboard.me>
3
3
 
4
+ RUN apk add --update docker && \
5
+ rm -rf /var/cache/apk/*
6
+
4
7
  # Setting up group and user
5
8
  # - envs
6
9
  ARG USER_NAME
@@ -13,18 +16,14 @@ RUN sed -i "s/999/99/" /etc/group && \
13
16
  adduser --disabled-password --gecos "" --uid $USER_UID $USER_NAME && \
14
17
  addgroup --gid $USER_GID $USER_NAME && adduser $USER_NAME $USER_NAME && \
15
18
  addgroup --gid $DOCKER_GID "docker" && adduser $USER_NAME docker
19
+
16
20
  USER "$USER_NAME"
17
21
  WORKDIR "/home/$USER_NAME/.smartcloud"
18
22
 
19
23
  # Generating entrypoint file
20
24
  RUN echo -e '#!/bin/sh\n\
21
25
  gem install --no-document smartcloud\n\
22
- exec "$@"' >> "/home/$(whoami)/entrypoint"; chmod +x "/home/$(whoami)/entrypoint"
23
-
24
- RUN apk add --update docker && \
25
- rm -rf /var/cache/apk/*
26
+ exec smartcloud "$@"' >> "/home/$(whoami)/entrypoint"; chmod +x "/home/$(whoami)/entrypoint"
26
27
 
27
28
  # Set entrypoint
28
29
  ENTRYPOINT "/home/$(whoami)/entrypoint"
29
-
30
- CMD ["smartcloud"]
@@ -24,7 +24,7 @@ module Smartcloud
24
24
  exit 0
25
25
  end
26
26
 
27
- # Perform bundle install
27
+ # Perform bundle install
28
28
  def bundle_install?
29
29
  logger.info "Performing bundle install ..."
30
30
 
@@ -43,7 +43,7 @@ module Smartcloud
43
43
  return false
44
44
  end
45
45
  end
46
-
46
+
47
47
  # Perform pre-compiling of assets
48
48
  def precompile_assets?
49
49
  logger.info "Installing Javascript dependencies & pre-compiling assets ..."
@@ -63,7 +63,7 @@ module Smartcloud
63
63
  return false
64
64
  end
65
65
  end
66
-
66
+
67
67
  # Perform starting of web server
68
68
  def start_web_server?
69
69
  logger.debug "Starting Web Server ..."
@@ -76,7 +76,7 @@ module Smartcloud
76
76
  # end
77
77
  # return false
78
78
  end
79
-
79
+
80
80
  def set_logger_formatter_arrow
81
81
  logger.formatter = proc do |severity, datetime, progname, message|
82
82
  severity_text = { "DEBUG" => "\u{1f527} #{severity}:", "INFO" => " \u{276f}", "WARN" => "\u{2757} #{severity}:",
@@ -85,7 +85,7 @@ module Smartcloud
85
85
  "\t\t\t\t#{severity_text[severity]} #{message}\n"
86
86
  end
87
87
  end
88
-
88
+
89
89
  def set_logger_formatter_tabs
90
90
  logger.formatter = proc do |severity, datetime, progname, message|
91
91
  "\t\t\t\t #{message}"
@@ -1,18 +1,6 @@
1
1
  FROM ruby:2.6.4-alpine3.10
2
2
  MAINTAINER Timeboard <hello@timeboard.me>
3
3
 
4
- # Setting up group and user
5
- # - envs
6
- ARG DOCKER_GID
7
- ARG USER_UID
8
- ARG USER_NAME
9
- # - fix to change gid of 999 to 99 so that addgroup is free to create a group with 999 as gid
10
- # - Create group & user. Then add user to group
11
- RUN sed -i "s/999/99/" /etc/group && \
12
- addgroup --gid "$DOCKER_GID" "docker" && \
13
- adduser --disabled-password --gecos "" --uid "$USER_UID" "$USER_NAME" && \
14
- adduser "$USER_NAME" "docker"
15
- USER "$USER_NAME"
16
4
  # We need the following:
17
5
  # - fcgiwrap, because that is how nginx does CGI
18
6
  # ----- IMPORTANT NOTE: This is custom build fcgiwrap package to account for NO_BUFFERING option.
@@ -32,12 +20,25 @@ RUN apk add --update coreutils && \
32
20
  apk add --update spawn-fcgi && \
33
21
  rm -rf /var/cache/apk/*
34
22
 
23
+ # Setting up group and user
24
+ # - envs
25
+ ARG USER_NAME
26
+ ARG USER_UID
27
+ ARG USER_GID
28
+ ARG DOCKER_GID
29
+ # - fix to change gid of 999 to 99 so that addgroup is free to create a group with 999 as gid
30
+ # - Create group & user. Then add user to group
31
+ RUN sed -i "s/999/99/" /etc/group && \
32
+ adduser --disabled-password --gecos "" --uid $USER_UID $USER_NAME && \
33
+ addgroup --gid $USER_GID $USER_NAME && adduser $USER_NAME $USER_NAME && \
34
+ addgroup --gid $DOCKER_GID "docker" && adduser $USER_NAME docker
35
+
35
36
  USER "$USER_NAME"
36
37
  WORKDIR "/home/$USER_NAME/.smartcloud/grids/grid-runner/apps"
37
38
 
38
39
  # Generating entrypoint file
39
40
  RUN echo -e '#!/bin/sh\n\
40
- gem install --no-document --local smartcloud\n\
41
+ gem install --no-document smartcloud\n\
41
42
  exec "$@"' >> "/home/$(whoami)/entrypoint"; chmod +x "/home/$(whoami)/entrypoint"
42
43
 
43
44
  # Set entrypoint
@@ -1,13 +1,6 @@
1
1
  FROM ruby:2.6.4-alpine3.10
2
2
  MAINTAINER Timeboard <hello@timeboard.me>
3
3
 
4
- # Setting up user
5
- # - envs
6
- ARG USER_UID
7
- ARG USER_NAME
8
- # - Create user.
9
- RUN adduser --disabled-password --gecos "" --uid "$USER_UID" "$USER_NAME"
10
-
11
4
  # Install Ruby on Rails Essentials
12
5
  RUN apk add --update build-base && \
13
6
  apk add --update tzdata && \
@@ -20,6 +13,13 @@ RUN apk add --update build-base && \
20
13
  apk add --update mupdf-tools && \
21
14
  rm -rf /var/cache/apk/*
22
15
 
16
+ # Setting up user
17
+ # - envs
18
+ ARG USER_UID
19
+ ARG USER_NAME
20
+ # - Create user.
21
+ RUN adduser --disabled-password --gecos "" --uid "$USER_UID" "$USER_NAME"
22
+
23
23
  USER "$USER_NAME"
24
24
  WORKDIR "/app"
25
25
 
@@ -29,7 +29,7 @@ RUN gem install bundler && \
29
29
 
30
30
  # Generating entrypoint file
31
31
  RUN echo -e '#!/bin/sh\n\
32
- gem install --no-document --local smartcloud\n\
32
+ gem install --no-document smartcloud\n\
33
33
  exec "$@"' >> "/home/$(whoami)/entrypoint"; chmod +x "/home/$(whoami)/entrypoint"
34
34
 
35
35
  # Set entrypoint
@@ -111,9 +111,10 @@ module Smartcloud
111
111
  unless system("docker image inspect smartcloud/runner", [:out, :err] => File::NULL)
112
112
  print "-----> Creating image smartcloud/runner ... "
113
113
  if system("docker image build -t smartcloud/runner \
114
- --build-arg DOCKER_GID=`getent group docker | cut -d: -f3` \
115
- --build-arg USER_UID=`id -u` \
116
114
  --build-arg USER_NAME=`id -un` \
115
+ --build-arg USER_UID=`id -u` \
116
+ --build-arg USER_GID=`id -g` \
117
+ --build-arg DOCKER_GID=`getent group docker | cut -d: -f3` \
117
118
  #{Smartcloud.config.root_path}/lib/smartcloud/grids/grid-runner")
118
119
  puts "done"
119
120
  end
@@ -346,7 +347,7 @@ module Smartcloud
346
347
  self.clean_up(container_path)
347
348
  logger.info "Launched Application ... Success."
348
349
  exit 0
349
- end
350
+ end
350
351
  else
351
352
  self.stop_app("#{appname}_new")
352
353
  end
@@ -1,3 +1,5 @@
1
+ require "net/ssh"
2
+
1
3
  # The main Smartcloud Machine driver
2
4
  module Smartcloud
3
5
  class Machine < Smartcloud::Base
@@ -59,5 +61,26 @@ module Smartcloud
59
61
  # sudo fail2ban-client reload
60
62
  # sudo fail2ban-client status
61
63
  end
64
+
65
+ # def create(name)
66
+ # FileUtils.mkdir_p name
67
+ # FileUtils.cp_r "#{Smartcloud.config.root_path}/lib/smartcloud/templates/machine/.", "#{name}"
68
+ # puts "Please fill details in your config folder before proceeding."
69
+ # end
70
+ #
71
+ # def run(*args)
72
+ # end
73
+ #
74
+ # def install_docker
75
+ # end
76
+ #
77
+ # def uninstall_docker
78
+ # end
79
+ #
80
+ # def install_engine
81
+ # end
82
+ #
83
+ # def uninstall_engine
84
+ # end
62
85
  end
63
86
  end
@@ -0,0 +1,5 @@
1
+ machine:
2
+ name: example
3
+ host: 122.122.122.122
4
+ username: exampleuser
5
+ password: examplepassword
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smartcloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.198
4
+ version: 0.0.199
5
5
  platform: ruby
6
6
  authors:
7
7
  - Timeboard
@@ -9,7 +9,21 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2019-09-04 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: net-ssh
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '5.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '5.2'
13
27
  description: Smartcloud is a full-stack deployment framework for rails optimized for
14
28
  programmer happiness and peaceful administration. It encourages natural simplicity
15
29
  by favoring convention over configuration.
@@ -30,6 +44,7 @@ files:
30
44
  - lib/smartcloud/base.rb
31
45
  - lib/smartcloud/boot.rb
32
46
  - lib/smartcloud/docker.rb
47
+ - lib/smartcloud/engine.rb
33
48
  - lib/smartcloud/engine/Dockerfile
34
49
  - lib/smartcloud/grids/buildpacker.rb
35
50
  - lib/smartcloud/grids/grid-buildpacker/.keep
@@ -224,6 +239,7 @@ files:
224
239
  - lib/smartcloud/templates/dotsmartcloud/grids/grid-solr/data/lib/.keep
225
240
  - lib/smartcloud/templates/dotsmartcloud/grids/grid-solr/data/solr.xml
226
241
  - lib/smartcloud/templates/dotsmartcloud/grids/grid-solr/data/zoo.cfg
242
+ - lib/smartcloud/templates/machine/config/machine.yml
227
243
  - lib/smartcloud/user.rb
228
244
  homepage: https://github.com/timeboardme/smartcloud
229
245
  licenses: