linux_provision 0.9.3 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.linux_provision.json +3 -3
  3. data/CHANGES +4 -0
  4. data/Gemfile +8 -5
  5. data/Gemfile.lock +57 -9
  6. data/README.md +129 -35
  7. data/Vagrantfile +1 -1
  8. data/demo/.ruby-gemset +1 -0
  9. data/demo/.ruby-version +1 -0
  10. data/demo/Dockerfile +107 -0
  11. data/demo/Gemfile +7 -0
  12. data/demo/Gemfile.lock +45 -0
  13. data/demo/Rakefile +7 -0
  14. data/demo/app.rb +29 -0
  15. data/demo/bin/start-server.sh +7 -0
  16. data/demo/config.ru +3 -0
  17. data/demo/db/migrate/20140610203958_create_notes.rb +14 -0
  18. data/demo/db/migrate/20140610204302_add_notes.rb +7 -0
  19. data/demo/db/schema.rb +26 -0
  20. data/demo/db_setup.rb +11 -0
  21. data/demo/note.rb +2 -0
  22. data/demo/supervisord.conf +8 -0
  23. data/demo/views/index.erb +10 -0
  24. data/demo/views/layout.erb +8 -0
  25. data/demo/views/new.erb +12 -0
  26. data/demo/views/note.erb +3 -0
  27. data/docker/postgres/Dockerfile +61 -0
  28. data/docker/postgres/bin/create_db.sh +14 -0
  29. data/docker/sshd/Dockerfile +28 -0
  30. data/docker/supervisord/Dockerfile +28 -0
  31. data/docker/supervisord/supervisord.conf +8 -0
  32. data/lib/linux_provision/generic_provision.rb +28 -19
  33. data/lib/linux_provision/linux_provision.rb +7 -165
  34. data/lib/linux_provision/linux_provision_scripts.sh +65 -21
  35. data/lib/linux_provision/version.rb +1 -1
  36. data/presentation/virtualization/01-vagrant/slides.md +381 -0
  37. data/presentation/virtualization/02-provision/slides.md +400 -0
  38. data/presentation/virtualization/03-docker/slides.md +208 -0
  39. data/presentation/virtualization/04-conclusion/slides.md +36 -0
  40. data/presentation/virtualization/default.css +59 -0
  41. data/presentation/virtualization/default.tpl +2 -0
  42. data/presentation/virtualization/images/chef.jpg +0 -0
  43. data/presentation/virtualization/images/provisioning.jpg +0 -0
  44. data/presentation/virtualization/images/vagrant.jpg +0 -0
  45. data/presentation/virtualization/showoff.json +23 -0
  46. data/presentation/virtualization/simple.tpl +2 -0
  47. data/spec/linux_install_spec.rb +9 -2
  48. data/spec/linux_provision_spec.rb +1 -1
  49. data/stats/viewstats.json +1 -0
  50. data/thor/demo_scripts.sh +34 -0
  51. data/thor/docker.thor +31 -0
  52. data/thor/linux_install.thor +17 -115
  53. metadata +40 -2
@@ -0,0 +1,36 @@
1
+ !SLIDE title-and_content transition=cover
2
+
3
+ # Links
4
+
5
+ * [VirtualBox - *https://www.virtualbox.org/wiki/Downloads*](https://www.virtualbox.org/wiki/Downloads)
6
+ * [Vagrant - *http://www.vagrantup.com*](http://www.vagrantup.com)
7
+ * [Chef - *http://www.opscode.com*](http://www.opscode.com)
8
+ * [Chef Wiki - *http://wiki.opscode.com/display/chef/Home*](http://wiki.opscode.com/display/chef/Home)
9
+ * [Chef Public Cookbooks - *https://github.com/opscode-cookbooks*](https://github.com/opscode-cookbooks)
10
+ * [Setup multiple servers easily with Chef - *http://www.synbioz.com/blog/setup_multiple_servers_easily_with_chef*](http://www.synbioz.com/blog/setup_multiple_servers_easily_with_chef)
11
+
12
+
13
+
14
+ !SLIDE title-and-content transition=cover
15
+
16
+ # Links (continued)
17
+
18
+ * [OS X Workstation Management With Chef - *http://jtimberman.housepub.org/blog/2012/07/29/os-x-workstation-management-with-chef*](http://jtimberman.housepub.org/blog/2012/07/29/os-x-workstation-management-with-chef)
19
+ * [Puppet - *http://puppetlabs.com*](http://puppetlabs.com)
20
+ * [Getting Started with Chef Server - *http://leopard.in.ua*](http://leopard.in.ua)
21
+ * [Vagrant+Puppet presentation - *https://github.com/crohr/vagrant-presentation*](https://github.com/crohr/vagrant-presentation)
22
+
23
+
24
+
25
+ !SLIDE content transition=cover
26
+
27
+ >
28
+
29
+ * Thank You!
30
+ * Hola!
31
+ * Спасибо!
32
+ * 谢谢!
33
+ * Toda!
34
+
35
+ * Questions?
36
+ * Suggestions?
@@ -0,0 +1,59 @@
1
+ /* custom css and js files included at the top level of your presentation will
2
+ * will be included in your presentation */
3
+
4
+ /*.body {*/
5
+ /*color: red;*/
6
+ /*}*/
7
+
8
+ /*.title-slide h1 {*/
9
+ /*color: red;*/
10
+ /*}*/
11
+
12
+ .content {
13
+ color: black;
14
+ font-family: helvetica, arial;
15
+ font-size: 10px;
16
+ }
17
+
18
+ h1, h2 {
19
+ color: rgb(79, 180, 226);
20
+ font-family: Georgia;
21
+ }
22
+ /*.content::after {*/
23
+ /*position: absolute;*/
24
+ /*right: 120px;*/
25
+ /*bottom: 120px;*/
26
+ /*content: url(jay_small.png);*/
27
+ /*}*/
28
+
29
+ /*#preso, .slide {*/
30
+ /*background-color: #DDD;*/
31
+ /*width: 1500px;*/
32
+ /*height: 1024px;*/
33
+ /*}*/
34
+
35
+ /*#footer {*/
36
+ /*width: 1500px;*/
37
+ /*}*/
38
+
39
+ /*.slide .content h1 {*/
40
+ /*align: left;*/
41
+ /*font-size: 40px;*/
42
+ /*font-weight: bold;*/
43
+ /*}*/
44
+
45
+ /*#intro .content > ul {*/
46
+ /*padding-top: 150px;*/
47
+ /*list-style: none outside none;*/
48
+ /*}*/
49
+
50
+ /*.slide .content ul li {*/
51
+ /*text-align: left;*/
52
+ /*padding: 5px;*/
53
+ /*font-size: 30px;*/
54
+ /*list-style: inherit;*/
55
+ /*}*/
56
+
57
+ /*.slide .content p {*/
58
+ /*margin: 0;*/
59
+ /*}*/
@@ -0,0 +1,2 @@
1
+ <div class="border">~~~CONFIG:author~~~@~~~CURRENT_SLIDE~~~</div>
2
+ <div class="main">~~~CONTENT~~~<div>
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "Virtualization for your next ruby project",
3
+ "description": "Virtualization for your next ruby project",
4
+ "author": "Alexander Shvets",
5
+ "templates" : {
6
+ "special" : "simple.tpl"
7
+ },
8
+ "pause_msg": "Paused !!!",
9
+ "markdown" : "redcarpet",
10
+ "redcarpet": {
11
+ "fenced_code_blocks": true,
12
+ "autolink": true,
13
+ "smartypants": true,
14
+ "gh_blockcode": true,
15
+ "lax_spacing": true
16
+ },
17
+ "sections": [
18
+ // {"section":"01-vagrant"},
19
+ // {"section":"02-provision"},
20
+ {"section":"03-docker"}
21
+ // {"section":"04-conclusion"}
22
+ ]
23
+ }
@@ -0,0 +1,2 @@
1
+ <div class="border">~~~CONFIG:author~~~@~~~CURRENT_SLIDE~~~</div>
2
+ <div class="main">~~~CONTENT~~~<div>
@@ -3,13 +3,20 @@ require File.expand_path('spec_helper', File.dirname(__FILE__))
3
3
  require 'thor'
4
4
  load 'thor/linux_install.thor'
5
5
 
6
- # rdebug-ide --port 1234 --dispatcher-port 26162 -- ~/.rvm/gems/ruby-1.9.3-p545@linux_ruby_dev_install/bin/rdebug-ide ~/.rvm/gems/ruby-1.9.3-p545@linux_ruby_dev_install/bin/thor linux_install:test
6
+ require "thor/runner"
7
+ # $thor_runner = true
8
+
9
+ # rdebug-ide --port 1234 --dispatcher-port 26162 -- /Users/ashvets/.rvm/gems/ruby-1.9.3-p545@linux_provision/bin/rdebug-ide /Users/ashvets/Dropbox/alex/work/projects/linux_provision/Thorfile linux_install:test
7
10
 
8
11
  describe LinuxInstall do
9
12
 
10
13
  describe "#test" do
11
14
  it "calls test method" do
12
- subject.test
15
+ #subject.test
16
+ args = ARGV
17
+ args = ['linux_install:test']
18
+
19
+ Thor::Runner.start(args)
13
20
  end
14
21
  end
15
22
  end
@@ -3,7 +3,7 @@ require File.expand_path('spec_helper', File.dirname(__FILE__))
3
3
  require 'linux_provision/linux_provision'
4
4
 
5
5
  describe LinuxProvision do
6
- # subject { LinuxProvision.new ".linux_provision.json", "linux_provision_scripts.sh"}
6
+ subject { LinuxProvision.new ".linux_provision.json", ["thor/demo_scripts.sh"] }
7
7
 
8
8
  describe "#test" do
9
9
  it "calls test method" do
@@ -0,0 +1 @@
1
+ {}
@@ -0,0 +1,34 @@
1
+ #!/bin/sh
2
+
3
+ ##############################
4
+ [project]
5
+ # Installs demo sinatra project
6
+
7
+ USER_HOME="#{node.home}"
8
+
9
+ APP_HOME="#{project.home}"
10
+
11
+ cd $APP_HOME
12
+
13
+ source $USER_HOME/.rvm/scripts/rvm
14
+
15
+ rvm use #{project.ruby_version}@#{project.gemset}
16
+
17
+ bundle
18
+
19
+ rake db:migrate
20
+
21
+
22
+ ##############################
23
+ [rackup]
24
+ # Starts sinatra demo application
25
+
26
+ USER_HOME="#{node.home}"
27
+
28
+ APP_HOME="#{project.home}"
29
+
30
+ cd $APP_HOME
31
+
32
+ source $USER_HOME/.rvm/scripts/rvm
33
+
34
+ rackup
data/thor/docker.thor ADDED
@@ -0,0 +1,31 @@
1
+ $: << File.expand_path(File.dirname(__FILE__) + '/../lib')
2
+
3
+ class Docker < Thor
4
+ desc "execute", "execute"
5
+ def execute *params
6
+ ENV['DOCKER_HOST'] = "tcp://192.168.59.103:2375"
7
+
8
+ exec *params
9
+ end
10
+
11
+ desc "all", "all"
12
+ def all
13
+ # Build containers from Dockerfiles
14
+ execute <<-CODE
15
+ # Reset
16
+ # execute "docker stop $(docker ps -a -q)"
17
+ # execute "docker rm $(docker ps -a -q)"
18
+
19
+ # Build containers
20
+ # docker build -t postgres docker/postgres
21
+ docker build -t demo demo
22
+
23
+ # Run and link the containers
24
+ # docker run -d -p 5432:5432 --name postgres postgres:latest
25
+
26
+ # docker run --rm --name demo demo:latest /bin/bash -l -c "rake db:migrate"
27
+ # docker run --rm -p 22 -p 9292:9292 --name demo demo:latest /bin/bash -l -c "rackup"
28
+ # docker run -d -p 9292:9292 --name demo demo:latest /bin/bash -l -c "rackup"
29
+ CODE
30
+ end
31
+ end
@@ -3,17 +3,10 @@ $: << File.expand_path(File.dirname(__FILE__) + '/../lib')
3
3
  require 'linux_provision/linux_provision'
4
4
 
5
5
  class LinuxInstall < Thor
6
- attr_reader :installer
6
+ @installer = LinuxProvision.new self, ".linux_provision.json", [File.expand_path("demo_scripts.sh", File.dirname(__FILE__))]
7
7
 
8
- def initialize *params
9
- @installer = LinuxProvision.new
10
-
11
- super *params
12
- end
13
-
14
- desc "test", "test"
15
- def test
16
- installer.test
8
+ class << self
9
+ attr_reader :installer
17
10
  end
18
11
 
19
12
  desc "all", "Installs all required packages"
@@ -33,117 +26,26 @@ class LinuxInstall < Thor
33
26
  invoke :postgres_create_user
34
27
  invoke :postgres_create_schemas
35
28
 
36
- invoke :mysql_create_user
37
- invoke :mysql_create_schemas
29
+ # invoke :mysql_create_user
30
+ # invoke :mysql_create_schemas
38
31
 
39
32
  # invoke :selenium
40
33
 
41
- invoke :project
34
+ # invoke :project
42
35
  end
43
36
 
44
- # desc "postgres_create", "Initializes postgres"
45
- # def postgres_create
46
- # invoke :postgres_create_user
47
- # invoke :postgres_create_schemas
48
- # end
49
- #
50
- # desc "postgres_drop", "Drops postgres project schemas"
51
- # def postgres_drop
52
- # installer.postgres_drop env["app_user"], env["app_schemas"]
53
- # end
54
- #
55
- # desc "mysql_create", "Initializes mysql"
56
- # def mysql_create
57
- # invoke :mysql_create_user
58
- # invoke :mysql_create_schemas
59
- # end
60
-
61
- private
62
-
63
- def method_missing(method, *args, &block)
64
- installer.send(method, *args, &block)
37
+ desc "postgres_create_schemas", "Initializes postgres schemas"
38
+ def postgres_create_schemas
39
+ LinuxInstall.installer.postgres_create_schemas
65
40
  end
66
41
 
67
- # desc "prepare", "prepare"
68
- # def prepare
69
- # installer.prepare
70
- # end
71
-
72
- # desc "rvm", "Installs rvm"
73
- # def rvm
74
- # installer.rvm_install
75
- # end
76
-
77
- # desc "npm", "Installs npm"
78
- # def npm
79
- # installer.npm_install
80
- # end
81
-
82
- # desc "qt", "Installs qt"
83
- # def qt
84
- # installer.qt_install
85
- # end
86
-
87
- # desc "mysql", "Installs mysql server"
88
- # def mysql
89
- # installer.mysql_install
90
- # end
91
-
92
- # desc "mysql_restart", "Restarts mysql server"
93
- # def mysql_restart
94
- # installer.mysql_restart
95
- # end
96
- #
97
- # desc "postgres", "Installs postgres server"
98
- # def postgres
99
- # installer.postgres_install
100
- # end
101
- #
102
- # desc "postgres_restart", "Restarts postgres server"
103
- # def postgres_restart
104
- # installer.postgres_restart
105
- # end
106
- #
107
- # desc "postgres_stop", "Stop postgres server"
108
- # def postgres_stop
109
- # installer.postgres_stop
110
- # end
111
- #
112
- # desc "postgres_start", "Start postgres server"
113
- # def postgres_start
114
- # installer.postgres_start
115
- # end
116
- #
117
- # desc "ruby", "Installs ruby"
118
- # def ruby
119
- # installer.ruby_install
120
- # end
121
- #
122
- # desc "jenkins", "Installs jenkins server"
123
- # def jenkins
124
- # installer.jenkins_install
125
- # end
126
- #
127
- # desc "jenkins_restart", "Restart jenkins server"
128
- # def jenkins_restart
129
- # installer.jenkins_restart
130
- # end
131
- #
132
- # desc "selenium", "Installs selenium server"
133
- # def selenium
134
- # installer.selenium_install
135
- # end
136
- #
137
- # desc "selenium_restart", "Restarts selenium server"
138
- # def selenium_restart
139
- # installer.selenium_restart
140
- # end
141
-
142
- #
143
- # desc "postgres_test", "Test postgres schemas"
144
- # def postgres_test
145
- # installer.postgres_test env["app_user"]
146
- # end
147
- #
42
+ desc "postgres_drop_schemas", "Drops postgres schemas"
43
+ def postgres_drop_schemas
44
+ LinuxInstall.installer.postgres_drop_schemas
45
+ end
148
46
 
47
+ desc "mysql_create_schemas", "Initializes mysql schemas"
48
+ def mysql_create_schemas
49
+ LinuxInstall.installer.mysql_create_schemas
50
+ end
149
51
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: linux_provision
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 0.9.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Shvets
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-09 00:00:00.000000000 Z
11
+ date: 2014-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: text-interpolator
@@ -120,6 +120,30 @@ files:
120
120
  - Rakefile
121
121
  - Thorfile
122
122
  - Vagrantfile
123
+ - demo/.ruby-gemset
124
+ - demo/.ruby-version
125
+ - demo/Dockerfile
126
+ - demo/Gemfile
127
+ - demo/Gemfile.lock
128
+ - demo/Rakefile
129
+ - demo/app.rb
130
+ - demo/bin/start-server.sh
131
+ - demo/config.ru
132
+ - demo/db/migrate/20140610203958_create_notes.rb
133
+ - demo/db/migrate/20140610204302_add_notes.rb
134
+ - demo/db/schema.rb
135
+ - demo/db_setup.rb
136
+ - demo/note.rb
137
+ - demo/supervisord.conf
138
+ - demo/views/index.erb
139
+ - demo/views/layout.erb
140
+ - demo/views/new.erb
141
+ - demo/views/note.erb
142
+ - docker/postgres/Dockerfile
143
+ - docker/postgres/bin/create_db.sh
144
+ - docker/sshd/Dockerfile
145
+ - docker/supervisord/Dockerfile
146
+ - docker/supervisord/supervisord.conf
123
147
  - lib/linux_provision.rb
124
148
  - lib/linux_provision/generic_provision.rb
125
149
  - lib/linux_provision/linux_provision.rb
@@ -127,9 +151,23 @@ files:
127
151
  - lib/linux_provision/version.rb
128
152
  - linux_provision.gemspec
129
153
  - linux_provision.gemspec.erb
154
+ - presentation/virtualization/01-vagrant/slides.md
155
+ - presentation/virtualization/02-provision/slides.md
156
+ - presentation/virtualization/03-docker/slides.md
157
+ - presentation/virtualization/04-conclusion/slides.md
158
+ - presentation/virtualization/default.css
159
+ - presentation/virtualization/default.tpl
160
+ - presentation/virtualization/images/chef.jpg
161
+ - presentation/virtualization/images/provisioning.jpg
162
+ - presentation/virtualization/images/vagrant.jpg
163
+ - presentation/virtualization/showoff.json
164
+ - presentation/virtualization/simple.tpl
130
165
  - spec/linux_install_spec.rb
131
166
  - spec/linux_provision_spec.rb
132
167
  - spec/spec_helper.rb
168
+ - stats/viewstats.json
169
+ - thor/demo_scripts.sh
170
+ - thor/docker.thor
133
171
  - thor/linux_install.thor
134
172
  homepage: http://github.com/shvets/linux_provision
135
173
  licenses: