machines 0.5.1
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.
- data/.gitignore +11 -0
- data/EXAMPLES.md +18 -0
- data/Gemfile +4 -0
- data/Guardfile +14 -0
- data/INSTALL.md +25 -0
- data/LICENSE +23 -0
- data/README.md +271 -0
- data/Rakefile +60 -0
- data/TODO.md +92 -0
- data/bin/machines +6 -0
- data/lib/machines/app_settings.rb +54 -0
- data/lib/machines/base.rb +13 -0
- data/lib/machines/checks.rb +63 -0
- data/lib/machines/cloud_machine.rb +33 -0
- data/lib/machines/command.rb +86 -0
- data/lib/machines/commandline.rb +148 -0
- data/lib/machines/configuration.rb +49 -0
- data/lib/machines/core.rb +117 -0
- data/lib/machines/database.rb +17 -0
- data/lib/machines/file_operations.rb +104 -0
- data/lib/machines/help.rb +30 -0
- data/lib/machines/installation.rb +151 -0
- data/lib/machines/log_command.rb +22 -0
- data/lib/machines/logger.rb +65 -0
- data/lib/machines/machinesfile.rb +25 -0
- data/lib/machines/named_buffer.rb +9 -0
- data/lib/machines/questions.rb +15 -0
- data/lib/machines/services.rb +24 -0
- data/lib/machines/upload.rb +29 -0
- data/lib/machines/version.rb +4 -0
- data/lib/machines.rb +19 -0
- data/lib/packages/abiword.rb +11 -0
- data/lib/packages/amazon_mp3.rb +4 -0
- data/lib/packages/awstats.rb +16 -0
- data/lib/packages/base.rb +14 -0
- data/lib/packages/chrome.rb +12 -0
- data/lib/packages/cruisecontrol.rb +22 -0
- data/lib/packages/dependencies.rb +10 -0
- data/lib/packages/docky.rb +36 -0
- data/lib/packages/dotfiles.rb +26 -0
- data/lib/packages/file_roller.rb +12 -0
- data/lib/packages/finalise.rb +4 -0
- data/lib/packages/firefox.rb +4 -0
- data/lib/packages/gedit.rb +11 -0
- data/lib/packages/git.rb +4 -0
- data/lib/packages/gmate.rb +33 -0
- data/lib/packages/gnome.rb +10 -0
- data/lib/packages/gnumeric.rb +11 -0
- data/lib/packages/hosts.rb +13 -0
- data/lib/packages/load_machines.rb +38 -0
- data/lib/packages/monit.rb +10 -0
- data/lib/packages/mysql.rb +46 -0
- data/lib/packages/nginx.rb +22 -0
- data/lib/packages/nginx_logrotate.rb +26 -0
- data/lib/packages/openbox.rb +35 -0
- data/lib/packages/passenger.rb +14 -0
- data/lib/packages/passenger_nginx.rb +8 -0
- data/lib/packages/postfix.rb +10 -0
- data/lib/packages/questions.rb +5 -0
- data/lib/packages/rbenv.rb +27 -0
- data/lib/packages/rvm.rb +20 -0
- data/lib/packages/save_machines.rb +4 -0
- data/lib/packages/slim.rb +6 -0
- data/lib/packages/sqlserver.rb +5 -0
- data/lib/packages/subtle.rb +29 -0
- data/lib/packages/sudo_mods.rb +6 -0
- data/lib/packages/time.rb +6 -0
- data/lib/packages/time_daily.rb +5 -0
- data/lib/packages/timezone.rb +10 -0
- data/lib/packages/unison.rb +5 -0
- data/lib/packages/virtualbox.rb +11 -0
- data/lib/packages/virtualbox_guest.rb +7 -0
- data/lib/packages/webapps.rb +36 -0
- data/lib/template/Machinesfile +48 -0
- data/lib/template/certificates/example.com.crt +0 -0
- data/lib/template/certificates/example.com.key +0 -0
- data/lib/template/certificates/selfsigned.crt +14 -0
- data/lib/template/certificates/selfsigned.key +16 -0
- data/lib/template/config.yml +98 -0
- data/lib/template/logrotate/app.erb +10 -0
- data/lib/template/logrotate/nginx.erb +12 -0
- data/lib/template/machines.yml +179 -0
- data/lib/template/misc/awstats.conf.erb +7 -0
- data/lib/template/misc/ntp.conf +7 -0
- data/lib/template/monit/conf.d/delayed_job.erb +11 -0
- data/lib/template/monit/conf.d/mysql.erb +7 -0
- data/lib/template/monit/conf.d/nginx +5 -0
- data/lib/template/monit/conf.d/postfix +7 -0
- data/lib/template/monit/conf.d/ssh +6 -0
- data/lib/template/monit/conf.d/system.erb +14 -0
- data/lib/template/monit/monitrc.erb +10 -0
- data/lib/template/monit/upstart.conf +16 -0
- data/lib/template/mysql/dbmaster.cnf +7 -0
- data/lib/template/mysql/dbslave.cnf +3 -0
- data/lib/template/nginx/app_server.conf.erb +87 -0
- data/lib/template/nginx/nginx.conf.erb +46 -0
- data/lib/template/nginx/upstart.conf.erb +21 -0
- data/lib/template/packages/custom.rb +17 -0
- data/lib/template/packages/productivity.rb +18 -0
- data/lib/template/slim/themes/dark/background.jpg +0 -0
- data/lib/template/slim/themes/dark/panel.png +0 -0
- data/lib/template/slim/themes/dark/slim.theme +39 -0
- data/lib/template/users/phil/dotfiles/bash_aliases +45 -0
- data/lib/template/users/phil/dotfiles/config/Trolltech.conf +4 -0
- data/lib/template/users/phil/dotfiles/config/gtk-3.0/settings.ini +9 -0
- data/lib/template/users/phil/dotfiles/config/openbox/autostart.sh +14 -0
- data/lib/template/users/phil/dotfiles/config/openbox/rc.xml +482 -0
- data/lib/template/users/phil/dotfiles/config/terminator/config +10 -0
- data/lib/template/users/phil/dotfiles/fonts.conf +15 -0
- data/lib/template/users/phil/dotfiles/gitconfig +27 -0
- data/lib/template/users/phil/dotfiles/gtkrc-2.0 +16 -0
- data/lib/template/users/phil/dotfiles/local/share/applications/mimeapps.list +4 -0
- data/lib/template/users/phil/dotfiles/unison/default.prf +33 -0
- data/lib/template/users/www/authorized_keys +0 -0
- data/lib/template/users/www/dotfiles/bash_aliases +40 -0
- data/lib/template/webapps.yml +75 -0
- data/machines.gemspec +44 -0
- data/spec/acceptance/dev_machine_spec.rb +22 -0
- data/spec/lib/machines/app_settings_spec.rb +106 -0
- data/spec/lib/machines/checks_spec.rb +105 -0
- data/spec/lib/machines/cloud_machine_spec.rb +36 -0
- data/spec/lib/machines/command_spec.rb +184 -0
- data/spec/lib/machines/commandline_spec.rb +299 -0
- data/spec/lib/machines/configuration_spec.rb +61 -0
- data/spec/lib/machines/core_spec.rb +299 -0
- data/spec/lib/machines/database_spec.rb +51 -0
- data/spec/lib/machines/file_operations_spec.rb +124 -0
- data/spec/lib/machines/help_spec.rb +22 -0
- data/spec/lib/machines/installation_spec.rb +176 -0
- data/spec/lib/machines/log_command_spec.rb +16 -0
- data/spec/lib/machines/logger_spec.rb +70 -0
- data/spec/lib/machines/machinesfile_spec.rb +34 -0
- data/spec/lib/machines/questions_spec.rb +73 -0
- data/spec/lib/machines/services_spec.rb +26 -0
- data/spec/lib/machines/upload_spec.rb +86 -0
- data/spec/lib/packages/abiword_spec.rb +20 -0
- data/spec/lib/packages/amazon_mp3_spec.rb +17 -0
- data/spec/lib/packages/awstats_spec.rb +26 -0
- data/spec/lib/packages/base_spec.rb +21 -0
- data/spec/lib/packages/chrome_spec.rb +30 -0
- data/spec/lib/packages/cruisecontrol_spec.rb +33 -0
- data/spec/lib/packages/dependencies_spec.rb +20 -0
- data/spec/lib/packages/docky_spec.rb +32 -0
- data/spec/lib/packages/dotfiles_spec.rb +44 -0
- data/spec/lib/packages/file_roller_spec.rb +69 -0
- data/spec/lib/packages/firefox_spec.rb +16 -0
- data/spec/lib/packages/gedit_spec.rb +20 -0
- data/spec/lib/packages/git_spec.rb +16 -0
- data/spec/lib/packages/gmate_spec.rb +39 -0
- data/spec/lib/packages/gnome_spec.rb +22 -0
- data/spec/lib/packages/gnumeric_spec.rb +21 -0
- data/spec/lib/packages/hosts_spec.rb +41 -0
- data/spec/lib/packages/load_machines_spec.rb +118 -0
- data/spec/lib/packages/monit_spec.rb +34 -0
- data/spec/lib/packages/mysql_spec.rb +69 -0
- data/spec/lib/packages/nginx_logrotate_spec.rb +80 -0
- data/spec/lib/packages/nginx_spec.rb +46 -0
- data/spec/lib/packages/openbox_spec.rb +41 -0
- data/spec/lib/packages/passenger_nginx_spec.rb +20 -0
- data/spec/lib/packages/passenger_spec.rb +26 -0
- data/spec/lib/packages/postfix_spec.rb +19 -0
- data/spec/lib/packages/questions_spec.rb +29 -0
- data/spec/lib/packages/rbenv_spec.rb +32 -0
- data/spec/lib/packages/rvm_spec.rb +31 -0
- data/spec/lib/packages/save_machines_spec.rb +51 -0
- data/spec/lib/packages/slim_spec.rb +22 -0
- data/spec/lib/packages/sqlserver_spec.rb +17 -0
- data/spec/lib/packages/timezone_spec.rb +27 -0
- data/spec/lib/packages/unison_spec.rb +17 -0
- data/spec/lib/packages/virtualbox_guest_spec.rb +25 -0
- data/spec/lib/packages/virtualbox_spec.rb +23 -0
- data/spec/lib/packages/webapps_spec.rb +70 -0
- data/spec/spec_helper.rb +103 -0
- data/spec/support/coverage.rb +8 -0
- data/spec/support/fake_out.rb +22 -0
- data/spec/support/fakefs_additions.rb +10 -0
- data/spec/support/minitest.rb +69 -0
- data/spec/support/vm_control.rb +54 -0
- data/tmp/.gitkeep +0 -0
- metadata +581 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/awstats' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('awstats')
|
|
6
|
+
$conf.webapps = {'name' => AppBuilder.new({:name => 'appname', :path => 'apppath'})}
|
|
7
|
+
FileUtils.mkdir('misc')
|
|
8
|
+
File.open('misc/awstats.conf.erb', 'w') {}
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it 'adds the following commands' do
|
|
12
|
+
eval_package
|
|
13
|
+
$conf.commands.map(&:info).join("\n").must_equal [
|
|
14
|
+
"TASK awstats - Install AWStats",
|
|
15
|
+
"SUDO apt-get -q -y install awstats",
|
|
16
|
+
"SUDO wget https://raw.github.com/PhilT/bin/master/awstats_render -O /usr/local/bin/awstats_render",
|
|
17
|
+
"SUDO chmod +x /usr/local/bin/awstats_render",
|
|
18
|
+
"UPLOAD buffer from misc/awstats.conf.erb to /tmp/awstats..conf",
|
|
19
|
+
"SUDO cp -rf /tmp/awstats..conf /etc/awstats/awstats..conf",
|
|
20
|
+
"RUN rm -rf /tmp/awstats..conf",
|
|
21
|
+
"RUN mkdir -p /name_stats/data",
|
|
22
|
+
"RUN mkdir -p /name_stats/public",
|
|
23
|
+
].join("\n")
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/base' do
|
|
4
|
+
it 'adds the following commands' do
|
|
5
|
+
load_package('base')
|
|
6
|
+
eval_package
|
|
7
|
+
$conf.commands.map(&:info).join("\n").must_equal [
|
|
8
|
+
"TASK base - Install base packages for compiling Ruby and libraries",
|
|
9
|
+
"SUDO apt-get -q -y install build-essential",
|
|
10
|
+
"SUDO apt-get -q -y install zlib1g-dev",
|
|
11
|
+
"SUDO apt-get -q -y install libpcre3-dev",
|
|
12
|
+
"SUDO apt-get -q -y install ruby1.9.1-dev",
|
|
13
|
+
"SUDO apt-get -q -y install libreadline-dev",
|
|
14
|
+
"SUDO apt-get -q -y install libxml2-dev",
|
|
15
|
+
"SUDO apt-get -q -y install libxslt1-dev",
|
|
16
|
+
"SUDO apt-get -q -y install libssl-dev",
|
|
17
|
+
"SUDO apt-get -q -y install libncurses5-dev"
|
|
18
|
+
].join("\n")
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/chrome' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('chrome')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'adds chrome ppa and installs' do
|
|
9
|
+
eval_package
|
|
10
|
+
$conf.commands.map(&:info).must_equal [
|
|
11
|
+
"TASK chrome - Add chrome stable repo and installs (set use_opensource to use chromium)",
|
|
12
|
+
"SUDO echo deb http://dl.google.com/linux/deb/ stable main >> /etc/apt/sources.list",
|
|
13
|
+
"SUDO wget -q https://dl-ssl.google.com/linux/linux_signing_key.pub -O - | apt-key add -",
|
|
14
|
+
"SUDO apt-get -q -y update > /tmp/apt-update.log",
|
|
15
|
+
"SUDO apt-get -q -y install google-chrome-stable"
|
|
16
|
+
]
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it 'adds chromium ppa and installs' do
|
|
20
|
+
$conf.use_opensource = true
|
|
21
|
+
eval_package
|
|
22
|
+
$conf.commands.map(&:info).must_equal [
|
|
23
|
+
"TASK chrome - Add chrome stable repo and installs (set use_opensource to use chromium)",
|
|
24
|
+
"SUDO add-apt-repository ppa:chromium-daily/stable",
|
|
25
|
+
"SUDO apt-get -q -y update > /tmp/apt-update.log",
|
|
26
|
+
"SUDO apt-get -q -y install chromium-browser"
|
|
27
|
+
]
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/cruisecontrol' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('cruisecontrol')
|
|
6
|
+
$conf.from_hash(ruby: {gems_path: 'ruby/gems'})
|
|
7
|
+
$conf.webapps = {'application' =>
|
|
8
|
+
AppBuilder.new(
|
|
9
|
+
'scm' => 'github.com/project',
|
|
10
|
+
'title' => 'Application'
|
|
11
|
+
)
|
|
12
|
+
}
|
|
13
|
+
$conf.from_hash(:mail => {address: 'mailserver', domain: 'domain.net' })
|
|
14
|
+
$conf.user = 'user'
|
|
15
|
+
$conf.user_home = '/home/user'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it 'adds the following commands' do
|
|
19
|
+
eval_package
|
|
20
|
+
$conf.commands.map(&:info).join("\n").must_equal [
|
|
21
|
+
"TASK cruisecontrol - Install, configure and set to start on boot",
|
|
22
|
+
"RUN git clone --quiet https://github.com/thoughtworks/cruisecontrol.rb.git",
|
|
23
|
+
"RUN cd cruisecontrol.rb && bundle",
|
|
24
|
+
"RUN cd cruisecontrol.rb && ruby ./cruise add Application -r github.com/project",
|
|
25
|
+
"SUDO cp -rf cruisecontrol.rb/daemon/cruise /etc/init.d/cruise",
|
|
26
|
+
"SUDO update-rc.d cruise defaults",
|
|
27
|
+
"SUDO sed -i \"s/CRUISE_USER = .*/CRUISE_USER = 'user'/\" /etc/init.d/cruise",
|
|
28
|
+
"SUDO sed -i \"s/CRUISE_HOME = .*/CRUISE_HOME = '\\/home\\/user\\/cruisecontrol.rb'/\" /etc/init.d/cruise",
|
|
29
|
+
"RUN grep \"ActionMailer::Base.smtp_settings = {address: 'mailserver', domain: 'domain.net'}\" .cruise/site_config.rb || echo \"ActionMailer::Base.smtp_settings = {address: 'mailserver', domain: 'domain.net'}\" >> .cruise/site_config.rb"
|
|
30
|
+
].join("\n")
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/dependencies' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('dependencies')
|
|
6
|
+
$conf.hostname = 'hostname'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it 'adds the following commands' do
|
|
10
|
+
eval_package
|
|
11
|
+
$conf.commands.map(&:info).must_equal [
|
|
12
|
+
"TASK dependencies - Dependencies required for various commands to run",
|
|
13
|
+
"SUDO apt-get -q -y update > /tmp/apt-update.log",
|
|
14
|
+
"SUDO apt-get -q -y install debconf-utils",
|
|
15
|
+
"SUDO apt-get -q -y install python-software-properties",
|
|
16
|
+
"SUDO apt-get -q -y install gconf2",
|
|
17
|
+
]
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/docky' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('docky')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'adds the following commands' do
|
|
9
|
+
eval_package
|
|
10
|
+
$conf.commands.map(&:info).must_equal [
|
|
11
|
+
"TASK docky - Install and configure Docky a dock and app launcher",
|
|
12
|
+
"SUDO apt-get -q -y install docky",
|
|
13
|
+
"SUDO apt-get -q -y install gnome-system-monitor",
|
|
14
|
+
"RUN gconftool-2 --set \"/apps/docky-2/Docky/Interface/DockPreferences/FirstRun\" --type bool false",
|
|
15
|
+
"RUN gconftool-2 --set \"/apps/docky-2/Docky/Interface/DockPreferences/Dock1/ZoomPercent\" --type float 1.5",
|
|
16
|
+
"RUN gconftool-2 --set \"/apps/docky-2/Docky/Interface/DockPreferences/Dock1/Autohide\" --type string \"Intellihide\"",
|
|
17
|
+
"RUN gconftool-2 --set \"/apps/docky-2/Docky/Interface/DockPreferences/Dock1/FadeOnHide\" --type bool true",
|
|
18
|
+
"RUN gconftool-2 --set \"/apps/docky-2/Docky/Interface/DockPreferences/Dock1/FadeOpacity\" --type int 50",
|
|
19
|
+
"RUN gconftool-2 --set \"/apps/docky-2/Docky/Interface/DockPreferences/Dock1/Launchers\" --type list --list-type=string [\"file:///usr/share/applications/pcmanfm.desktop\",\"file:///usr/share/applications/google-chrome.desktop\",\"file:///usr/share/applications/firefox.desktop\",\"file:///usr/share/applications/terminator.desktop\",\"file:///usr/share/applications/gedit.desktop\",\"file:///usr/share/applications/abiword.desktop\",\"file:///usr/share/applications/gnumeric.desktop\",\"file:///usr/share/applications/gimp.desktop\",\"file:///usr/share/applications/inkscape.desktop\",\"file:///usr/share/applications/audacious2.desktop\"]",
|
|
20
|
+
"RUN gconftool-2 --set \"/apps/docky-2/Docky/Interface/DockPreferences/Dock1/SortList\" --type list --list-type=string [\"/usr/share/applications/pcmanfm.desktop\",\"/usr/share/applications/google-chrome.desktop\",\"/usr/share/applications/firefox.desktop\",\"/usr/share/applications/terminator.desktop\",\"/usr/share/applications/gedit.desktop\",\"/usr/share/applications/abiword.desktop\",\"/usr/share/applications/gnumeric.desktop\",\"/usr/share/applications/gimp.desktop\",\"/usr/share/applications/inkscape.desktop\",\"/usr/share/applications/audacious2.desktop\"]",
|
|
21
|
+
"RUN gconftool-2 --set \"/apps/docky-2/Docky/Interface/DockPreferences/Dock1/Plugins\" --type list --list-type=string [\"Trash\",\"Clock\",\"GMail\",\"Weather\"]",
|
|
22
|
+
"RUN gconftool-2 --set \"/apps/docky-2/Clock/ClockDockItem/ShowDate\" --type bool true",
|
|
23
|
+
"RUN gconftool-2 --set \"/apps/docky-2/Clock/ClockDockItem/ShowDigital\" --type bool true",
|
|
24
|
+
"RUN gconftool-2 --set \"/apps/docky-2/Clock/ClockDockItem/ShowMilitary\" --type bool true",
|
|
25
|
+
"RUN gconftool-2 --set \"/apps/docky-2/GMail/GMailPreferences/RefreshRate\" --type int 10",
|
|
26
|
+
"RUN gconftool-2 --set \"/apps/docky-2/GMail/GMailPreferences/User\" --type string \"phil@\"",
|
|
27
|
+
"RUN gconftool-2 --set \"/apps/docky-2/WeatherDocklet/WeatherPreferences/Location\" --type list --list-type=string [\"London\\\\, United Kingdom\"]",
|
|
28
|
+
"RUN gconftool-2 --set \"/apps/docky-2/WeatherDocklet/WeatherPreferences/Metric\" --type bool true"
|
|
29
|
+
]
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/dotfiles' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('dotfiles')
|
|
6
|
+
$conf.machine = AppConf.new
|
|
7
|
+
$conf.machine.user = 'username'
|
|
8
|
+
$conf.appsroot = 'appsroot'
|
|
9
|
+
$conf.environment = 'railsenv'
|
|
10
|
+
$conf.from_hash(:hosts => {'somehost' => '1.1.1.1'})
|
|
11
|
+
|
|
12
|
+
FileUtils.mkdir_p 'users/username/dotfiles'
|
|
13
|
+
FileUtils.touch 'users/username/dotfiles/bashrc'
|
|
14
|
+
FileUtils.touch 'users/username/authorized_keys'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'adds the following commands' do
|
|
18
|
+
eval_package
|
|
19
|
+
$conf.commands.map(&:info).join("\n").must_equal [
|
|
20
|
+
"TASK dotfiles - Upload files in users/username/dotfiles, prepend a dot and substitute some bashrc vars",
|
|
21
|
+
"UPLOAD #{File.expand_path('users/username/dotfiles/bashrc')} to .bashrc",
|
|
22
|
+
"RUN mkdir -p $HOME/.ssh",
|
|
23
|
+
"RUN chmod 700 $HOME/.ssh",
|
|
24
|
+
"RUN ssh-keyscan -H somehost >> $HOME/.ssh/known_hosts",
|
|
25
|
+
"RUN grep \"export RAILS_ENV=railsenv\" .profile || echo \"export RAILS_ENV=railsenv\" >> .profile",
|
|
26
|
+
"RUN grep \"export CDPATH=appsroot\" .profile || echo \"export CDPATH=appsroot\" >> .profile",
|
|
27
|
+
"UPLOAD users/username/authorized_keys to .ssh/authorized_keys",
|
|
28
|
+
"RUN chmod 600 .ssh/authorized_keys"
|
|
29
|
+
].join("\n")
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it 'sets RAILS_ENV when specified in set_rails_env_for' do
|
|
33
|
+
$conf.set_rails_env_for = ['railsenv']
|
|
34
|
+
eval_package
|
|
35
|
+
$conf.commands.map(&:info).join("\n").must_match /RUN grep \"export RAILS_ENV=railsenv\" .profile || echo \"export RAILS_ENV=railsenv\" >> .profile/
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it 'RAILS_ENV not set when not specified in set_rails_env_for' do
|
|
39
|
+
$conf.set_rails_env_for = ['some_other_env']
|
|
40
|
+
eval_package
|
|
41
|
+
$conf.commands.map(&:info).join("\n").wont_match /RUN grep \"export RAILS_ENV=railsenv\" .profile \|\| echo \"export RAILS_ENV=railsenv\" >> .profile/
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/apps' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('file_roller')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def append_command text
|
|
9
|
+
"RUN grep \"#{text}\" .local/share/applications/mimeapps.list || echo \"#{text}\" >> .local/share/applications/mimeapps.list"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it 'adds the following commands' do
|
|
13
|
+
eval_package
|
|
14
|
+
$conf.commands.map(&:info).must_equal [
|
|
15
|
+
"TASK file_roller - Install file-roller archive manager",
|
|
16
|
+
"SUDO apt-get -q -y install file-roller",
|
|
17
|
+
"TASK file_roller_associations - Setup file associations for file-roller",
|
|
18
|
+
append_command('application/x-7z-compressed=file-roller.desktop'),
|
|
19
|
+
append_command('application/x-7z-compressed-tar=file-roller.desktop'),
|
|
20
|
+
append_command('application/x-ace=file-roller.desktop'),
|
|
21
|
+
append_command('application/x-alz=file-roller.desktop'),
|
|
22
|
+
append_command('application/x-ar=file-roller.desktop'),
|
|
23
|
+
append_command('application/x-arj=file-roller.desktop'),
|
|
24
|
+
append_command('application/x-bzip=file-roller.desktop'),
|
|
25
|
+
append_command('application/x-bzip-compressed-tar=file-roller.desktop'),
|
|
26
|
+
append_command('application/x-bzip1=file-roller.desktop'),
|
|
27
|
+
append_command('application/x-bzip1-compressed-tar=file-roller.desktop'),
|
|
28
|
+
append_command('application/x-cabinet=file-roller.desktop'),
|
|
29
|
+
append_command('application/x-cbr=file-roller.desktop'),
|
|
30
|
+
append_command('application/x-cbz=file-roller.desktop'),
|
|
31
|
+
append_command('application/x-cd-image=file-roller.desktop'),
|
|
32
|
+
append_command('application/x-compress=file-roller.desktop'),
|
|
33
|
+
append_command('application/x-compressed-tar=file-roller.desktop'),
|
|
34
|
+
append_command('application/x-cpio=file-roller.desktop'),
|
|
35
|
+
append_command('application/x-deb=file-roller.desktop'),
|
|
36
|
+
append_command('application/x-ear=file-roller.desktop'),
|
|
37
|
+
append_command('application/x-ms-dos-executable=file-roller.desktop'),
|
|
38
|
+
append_command('application/x-gtar=file-roller.desktop'),
|
|
39
|
+
append_command('application/x-gzip=file-roller.desktop'),
|
|
40
|
+
append_command('application/x-gzpostscript=file-roller.desktop'),
|
|
41
|
+
append_command('application/x-java-archive=file-roller.desktop'),
|
|
42
|
+
append_command('application/x-lha=file-roller.desktop'),
|
|
43
|
+
append_command('application/x-lhz=file-roller.desktop'),
|
|
44
|
+
append_command('application/x-lrzip=file-roller.desktop'),
|
|
45
|
+
append_command('application/x-lrzip-compressed-tar=file-roller.desktop'),
|
|
46
|
+
append_command('application/x-lzip=file-roller.desktop'),
|
|
47
|
+
append_command('application/x-lzip-compressed-tar=file-roller.desktop'),
|
|
48
|
+
append_command('application/x-lzma=file-roller.desktop'),
|
|
49
|
+
append_command('application/x-lzma-compressed-tar=file-roller.desktop'),
|
|
50
|
+
append_command('application/x-lzop=file-roller.desktop'),
|
|
51
|
+
append_command('application/x-lzop-compressed-tar=file-roller.desktop'),
|
|
52
|
+
append_command('application/x-rar=file-roller.desktop'),
|
|
53
|
+
append_command('application/x-rar-compressed=file-roller.desktop'),
|
|
54
|
+
append_command('application/x-rpm=file-roller.desktop'),
|
|
55
|
+
append_command('application/x-rzip=file-roller.desktop'),
|
|
56
|
+
append_command('application/x-tar=file-roller.desktop'),
|
|
57
|
+
append_command('application/x-tarz=file-roller.desktop'),
|
|
58
|
+
append_command('application/x-stuffit=file-roller.desktop'),
|
|
59
|
+
append_command('application/x-war=file-roller.desktop'),
|
|
60
|
+
append_command('application/x-xz=file-roller.desktop'),
|
|
61
|
+
append_command('application/x-xz-compressed-tar=file-roller.desktop'),
|
|
62
|
+
append_command('application/x-zip=file-roller.desktop'),
|
|
63
|
+
append_command('application/x-zip-compressed=file-roller.desktop'),
|
|
64
|
+
append_command('application/x-zoo=file-roller.desktop'),
|
|
65
|
+
append_command('application/zip=file-roller.desktop')
|
|
66
|
+
]
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/firefox' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('firefox')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'adds the following commands' do
|
|
9
|
+
eval_package
|
|
10
|
+
$conf.commands.map(&:info).must_equal [
|
|
11
|
+
"TASK firefox - install firefox",
|
|
12
|
+
"SUDO apt-get -q -y install firefox"
|
|
13
|
+
]
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/apps' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('gedit')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'adds the following commands' do
|
|
9
|
+
eval_package
|
|
10
|
+
$conf.commands.map(&:info).join("\n").must_equal [
|
|
11
|
+
"TASK gedit - Install basic programmers editor and set associations",
|
|
12
|
+
"SUDO apt-get -q -y install python-gi-cairo",
|
|
13
|
+
"SUDO apt-get -q -y install gedit",
|
|
14
|
+
"RUN grep \"text/plain=gedit.desktop\" .local/share/applications/mimeapps.list || echo \"text/plain=gedit.desktop\" >> .local/share/applications/mimeapps.list",
|
|
15
|
+
"RUN grep \"application/x-ruby=gedit.desktop\" .local/share/applications/mimeapps.list || echo \"application/x-ruby=gedit.desktop\" >> .local/share/applications/mimeapps.list",
|
|
16
|
+
"RUN grep \"application/x-shellscript=gedit.desktop\" .local/share/applications/mimeapps.list || echo \"application/x-shellscript=gedit.desktop\" >> .local/share/applications/mimeapps.list",
|
|
17
|
+
].join("\n")
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/git' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('git')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'adds the following commands' do
|
|
9
|
+
eval_package
|
|
10
|
+
$conf.commands.map(&:info).must_equal [
|
|
11
|
+
"TASK git - Install Git",
|
|
12
|
+
'SUDO apt-get -q -y install git-core'
|
|
13
|
+
]
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/gmate' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('gmate')
|
|
6
|
+
$conf.appsroot = 'apps_root'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it 'adds the following commands' do
|
|
10
|
+
eval_package
|
|
11
|
+
$conf.commands.map(&:info).must_equal [
|
|
12
|
+
"TASK gmate - Clone and install gmate for gEdit from Github and set some preferences and plugins",
|
|
13
|
+
"SUDO apt-get -q -y install python-pyinotify",
|
|
14
|
+
"SUDO apt-get -q -y install ack-grep",
|
|
15
|
+
"RUN git clone --quiet git://github.com/gmate/gmate.git apps_root/gmate",
|
|
16
|
+
"RUN cd apps_root/gmate && echo \\n | ./install.sh",
|
|
17
|
+
'RUN gconftool-2 --set "/apps/gedit-2/plugins/active-plugins" --type list --list-type=string ["text_tools","smart_indent","align","rails_hotkeys","trailsave","gemini","rubyonrailsloader","gedit_openfiles","quickhighlightmode","completion","time","docinfo","filebrowser","snippets","spell","indent","tabswitch"]',
|
|
18
|
+
'RUN gconftool-2 --set "/apps/gedit-2/plugins/smart_indent/haml_tab_size" --type int 2',
|
|
19
|
+
'RUN gconftool-2 --set "/apps/gedit-2/plugins/smart_indent/js_tab_size" --type int 2',
|
|
20
|
+
'RUN gconftool-2 --set "/apps/gedit-2/plugins/smart_indent/markdown_tab_size" --type int 2',
|
|
21
|
+
'RUN gconftool-2 --set "/apps/gedit-2/plugins/smart_indent/plain_text_tab_size" --type int 2',
|
|
22
|
+
'RUN gconftool-2 --set "/apps/gedit-2/plugins/smart_indent/sass_tab_size" --type int 2',
|
|
23
|
+
'RUN gconftool-2 --set "/apps/gedit-2/plugins/smart_indent/yaml_tab_size" --type int 2',
|
|
24
|
+
'RUN gconftool-2 --set "/apps/gedit-2/preferences/editor/bracket_matching/bracket_matching" --type bool true',
|
|
25
|
+
'RUN gconftool-2 --set "/apps/gedit-2/preferences/editor/current_line/highlight_current_line" --type bool true',
|
|
26
|
+
'RUN gconftool-2 --set "/apps/gedit-2/preferences/editor/cursor_position/restore_cursor_position" --type bool true',
|
|
27
|
+
'RUN gconftool-2 --set "/apps/gedit-2/preferences/editor/line_numbers/display_line_numbers" --type bool true',
|
|
28
|
+
'RUN gconftool-2 --set "/apps/gedit-2/preferences/editor/right_margin/display_right_margin" --type bool true',
|
|
29
|
+
'RUN gconftool-2 --set "/apps/gedit-2/preferences/editor/right_margin/right_margin_position" --type int 120',
|
|
30
|
+
'RUN gconftool-2 --set "/apps/gedit-2/preferences/editor/colors/scheme" --type string "railscasts"',
|
|
31
|
+
'RUN gconftool-2 --set "/apps/gedit-2/preferences/editor/tabs/insert_spaces" --type bool true',
|
|
32
|
+
'RUN gconftool-2 --set "/apps/gedit-2/preferences/editor/tabs/tabs_size" --type int 2',
|
|
33
|
+
'RUN gconftool-2 --set "/apps/gedit-2/preferences/editor/wrap_mode/wrap_mode" --type string "GTK_WRAP_NONE"',
|
|
34
|
+
'RUN gconftool-2 --set "/apps/gedit-2/preferences/editor/save/create_backup_copy" --type bool false',
|
|
35
|
+
'RUN gconftool-2 --set "/apps/gedit-2/preferences/ui/toolbar/toolbar_visible" --type bool false'
|
|
36
|
+
]
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/gnome' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('gnome')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'adds the following commands' do
|
|
9
|
+
eval_package
|
|
10
|
+
$conf.commands.map(&:info).must_equal [
|
|
11
|
+
"TASK gnome - Set Gnome display preferences",
|
|
12
|
+
'RUN gconftool-2 --set "/apps/metacity/general/titlebar_font" --type string "Arial Bold 10"',
|
|
13
|
+
'RUN gconftool-2 --set "/apps/metacity/general/num_workspaces" --type int 1',
|
|
14
|
+
'RUN gconftool-2 --set "/apps/nautilus/preferences/desktop_font" --type string "Sans 9"',
|
|
15
|
+
'RUN gconftool-2 --set "/apps/nautilus/preferences/default_folder_viewer" --type string "compact_view"',
|
|
16
|
+
'RUN gconftool-2 --set "/desktop/gnome/interface/font_name" --type string "Sans 9"',
|
|
17
|
+
'RUN gconftool-2 --set "/desktop/gnome/interface/document_font_name" --type string "Sans 9"',
|
|
18
|
+
'RUN gconftool-2 --set "/desktop/gnome/interface/monospace_font_name" --type string "Monospace 10"'
|
|
19
|
+
]
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/apps' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('gnumeric')
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'adds the following commands' do
|
|
9
|
+
eval_package
|
|
10
|
+
$conf.commands.map(&:info).must_equal [
|
|
11
|
+
"TASK gnumeric - Install gnumeric lightweight spreadsheet",
|
|
12
|
+
"SUDO apt-get -q -y install gnumeric",
|
|
13
|
+
"TASK gnumeric_associations - Setup file associations for Gnumeric",
|
|
14
|
+
"RUN grep \"application/x-gnumeric=gnumeric.desktop\" .local/share/applications/mimeapps.list || echo \"application/x-gnumeric=gnumeric.desktop\" >> .local/share/applications/mimeapps.list",
|
|
15
|
+
"RUN grep \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=gnumeric.desktop\" .local/share/applications/mimeapps.list || echo \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=gnumeric.desktop\" >> .local/share/applications/mimeapps.list",
|
|
16
|
+
"RUN grep \"text/csv=gnumeric.desktop\" .local/share/applications/mimeapps.list || echo \"text/csv=gnumeric.desktop\" >> .local/share/applications/mimeapps.list",
|
|
17
|
+
"RUN grep \"application/msexcel=gnumeric.desktop\" .local/share/applications/mimeapps.list || echo \"application/msexcel=gnumeric.desktop\" >> .local/share/applications/mimeapps.list"
|
|
18
|
+
]
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/hosts' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('hosts')
|
|
6
|
+
$conf.machine = AppConf.new
|
|
7
|
+
$conf.machine.hostname = 'hostname'
|
|
8
|
+
$conf.from_hash(:hosts => {'some.domain' => '1.2.3.4'})
|
|
9
|
+
@hosts = [
|
|
10
|
+
"TASK hosts - Setup /etc/hosts",
|
|
11
|
+
"UPLOAD unnamed buffer to /tmp/hosts",
|
|
12
|
+
"SUDO cp -rf /tmp/hosts /etc/hosts",
|
|
13
|
+
"RUN rm -rf /tmp/hosts",
|
|
14
|
+
"UPLOAD unnamed buffer to /tmp/hostname",
|
|
15
|
+
"SUDO cp -rf /tmp/hostname /etc/hostname",
|
|
16
|
+
"RUN rm -rf /tmp/hostname",
|
|
17
|
+
"SUDO service hostname start",
|
|
18
|
+
"SUDO grep \"1.2.3.4 some.domain\" /etc/hosts || echo \"1.2.3.4 some.domain\" >> /etc/hosts",
|
|
19
|
+
]
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'adds the following commands' do
|
|
23
|
+
eval_package
|
|
24
|
+
$conf.commands.map(&:info).join("\n").must_equal (@hosts).join("\n")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'does not add hosts when nil' do
|
|
28
|
+
$conf.clear :hosts
|
|
29
|
+
@hosts.pop
|
|
30
|
+
eval_package
|
|
31
|
+
$conf.commands.map(&:info).join("\n").must_equal (@hosts).join("\n")
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it 'does not add host when address is nil' do
|
|
35
|
+
$conf.from_hash(:hosts => {'some.domain' => nil})
|
|
36
|
+
@hosts.pop
|
|
37
|
+
eval_package
|
|
38
|
+
$conf.commands.map(&:info).join("\n").must_equal (@hosts).join("\n")
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/load_machines' do
|
|
4
|
+
let(:settings) do
|
|
5
|
+
{'machines' => {'a_machine' => {'hostname' => 'something', 'user' => 'phil', 'address' => '1.2.3.4'}}}
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def save_settings
|
|
9
|
+
File.open('machines.yml', 'w') {|f| f.puts settings.to_yaml }
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
before(:each) do
|
|
13
|
+
load_package('load_machines')
|
|
14
|
+
$conf.machine_name = 'a_machine'
|
|
15
|
+
$conf.from_hash('appsroots' => {'phil' => '/home/phil'})
|
|
16
|
+
stubs(:load_app_settings)
|
|
17
|
+
stubs(:connect)
|
|
18
|
+
stubs(:run_instance)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe 'loading machines.yml' do
|
|
22
|
+
before(:each) do
|
|
23
|
+
save_settings
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'loads the machines.yml file' do
|
|
27
|
+
eval_package
|
|
28
|
+
$conf.machines.a_machine.hostname.must_equal 'something'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'sets $conf.machine using $conf.machine_name' do
|
|
32
|
+
eval_package
|
|
33
|
+
$conf.machine.hostname.must_equal 'something'
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
describe 'setting db_server' do
|
|
38
|
+
it 'sets the db_server using the selected machines db_server' do
|
|
39
|
+
settings['machines']['a_machine']['db_server'] = 'other_machine'
|
|
40
|
+
settings['machines']['other_machine'] = {'hostname' => 'name', 'user' => 'fred', 'address' => '1.1.1.1'}
|
|
41
|
+
save_settings
|
|
42
|
+
eval_package
|
|
43
|
+
$conf.db_server.user.must_equal 'fred'
|
|
44
|
+
$conf.db_server.address.must_equal '1.1.1.1'
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
describe 'setting address' do
|
|
49
|
+
it 'raises an exception when no address' do
|
|
50
|
+
settings['machines']['a_machine']['address'] = nil
|
|
51
|
+
save_settings
|
|
52
|
+
lambda { eval_package }.must_raise ConfigError
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
describe 'when EC2' do
|
|
56
|
+
before(:each) do
|
|
57
|
+
settings['machines']['a_machine']['ec2'] = {}
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
it 'does not throw or connect when address set' do
|
|
61
|
+
save_settings
|
|
62
|
+
expects(:connect).never
|
|
63
|
+
eval_package
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it 'starts a new instance when no address' do
|
|
67
|
+
settings['machines']['a_machine']['address'] = nil
|
|
68
|
+
save_settings
|
|
69
|
+
expects(:connect).returns true
|
|
70
|
+
expects(:run_instance)
|
|
71
|
+
eval_package
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
it 'sets root_pass when not set' do
|
|
77
|
+
stubs(:generate_password).returns '1234'
|
|
78
|
+
save_settings
|
|
79
|
+
eval_package
|
|
80
|
+
$conf.machines.a_machine.root_pass.must_equal '1234'
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
it 'sets $conf.machines_changed when passwords are generated' do
|
|
84
|
+
stubs(:generate_password).returns '1234'
|
|
85
|
+
save_settings
|
|
86
|
+
eval_package
|
|
87
|
+
$conf.machines_changed.wont_equal nil
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
it '$conf.machines_changed not set when no passwords are generated' do
|
|
91
|
+
settings['machines']['a_machine']['root_pass'] = '1234'
|
|
92
|
+
save_settings
|
|
93
|
+
eval_package
|
|
94
|
+
$conf.machines_changed.must_equal nil
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
it 'does not overwrite root_pass' do
|
|
98
|
+
expects(:generate_password).never
|
|
99
|
+
settings['machines']['a_machine']['root_pass'] = 'something'
|
|
100
|
+
save_settings
|
|
101
|
+
eval_package
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
it 'sets user' do
|
|
105
|
+
save_settings
|
|
106
|
+
eval_package
|
|
107
|
+
$conf.machine.user.must_equal 'phil'
|
|
108
|
+
$conf.user.must_equal 'phil'
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
it 'loads app settings' do
|
|
112
|
+
settings['machines']['a_machine']['apps'] = ['app1', 'app2']
|
|
113
|
+
save_settings
|
|
114
|
+
expects(:load_app_settings).with(['app1', 'app2'])
|
|
115
|
+
eval_package
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe 'packages/monit' do
|
|
4
|
+
before(:each) do
|
|
5
|
+
load_package('monit')
|
|
6
|
+
FileUtils.mkdir_p 'monit/conf.d'
|
|
7
|
+
File.open('monit/monitrc.erb', 'w') {}
|
|
8
|
+
File.open('monit/upstart.conf.erb', 'w') {}
|
|
9
|
+
File.open('monit/conf.d/system.erb', 'w') {}
|
|
10
|
+
File.open('monit/conf.d/ssh', 'w') {}
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'adds the following commands' do
|
|
14
|
+
eval_package
|
|
15
|
+
$conf.commands.map(&:info).join("\n").must_equal [
|
|
16
|
+
"TASK monit - Install and configure monit",
|
|
17
|
+
"SUDO apt-get -q -y install monit",
|
|
18
|
+
"SUDO /etc/init.d/monit stop && update-rc.d -f monit remove",
|
|
19
|
+
"UPLOAD monit/upstart.conf to /tmp/monit.conf",
|
|
20
|
+
"SUDO cp -rf /tmp/monit.conf /etc/init/monit.conf",
|
|
21
|
+
"RUN rm -rf /tmp/monit.conf",
|
|
22
|
+
"UPLOAD buffer from monit/monitrc.erb to /tmp/monitrc",
|
|
23
|
+
"SUDO cp -rf /tmp/monitrc /etc/monit/monitrc",
|
|
24
|
+
"RUN rm -rf /tmp/monitrc",
|
|
25
|
+
"UPLOAD buffer from monit/conf.d/system.erb to /tmp/system",
|
|
26
|
+
"SUDO cp -rf /tmp/system /etc/monit/conf.d/system",
|
|
27
|
+
"RUN rm -rf /tmp/system",
|
|
28
|
+
"UPLOAD monit/conf.d/ssh to /tmp/ssh",
|
|
29
|
+
"SUDO cp -rf /tmp/ssh /etc/monit/conf.d/ssh",
|
|
30
|
+
"RUN rm -rf /tmp/ssh"
|
|
31
|
+
].join("\n")
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|