pauper 0.2.1 → 0.2.2
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 +101 -0
- data/lib/pauper.rb +10 -4
- data/lib/pauper/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f0dab255dae6b6196868eea8e2016270e5ea73f
|
4
|
+
data.tar.gz: cfa3ea39f81b96138e5e9a88a74c0c68828ad0ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 812e2334e9c6175ea488e9591d17d41ae5fc3878ab296ce460dab41569be2cbdbac973b001f16dc22a0e769cf155edf53b5c0fbbae059f6e10d36b08281e1e8e
|
7
|
+
data.tar.gz: 381672d09740e94c5efe17e6eb3da403040aece3acc5456b6ea24e054711564f2c9f3699d70d5b7c4c83062ee478bf8eb08f5da423e3afc8f99ef59e15d98afb
|
data/README.md
CHANGED
@@ -1 +1,102 @@
|
|
1
1
|
See https://fastly.atlassian.net/wiki/display/DOC/DeveloperSetupMac
|
2
|
+
|
3
|
+
WHAT AM I
|
4
|
+
-------------------------------------------------------------------------------
|
5
|
+
Pauper is suppose to setup lxc's defined in a Pauperfile.
|
6
|
+
We use this to build out dev environment.
|
7
|
+
In the beginning it was created by fastly because the alternatives available
|
8
|
+
where not filling our needs.
|
9
|
+
|
10
|
+
Base Commands
|
11
|
+
-------------------------------------------------------------------------------
|
12
|
+
```bash
|
13
|
+
pauper bootstrap [lucid|precise] # Initialize the base image
|
14
|
+
pauper create [NODENAME] # Create a VM
|
15
|
+
pauper destroy [NODENAME] # Completely destroy a VM
|
16
|
+
pauper halt # Stop all nodes on your vm from local!
|
17
|
+
pauper help [COMMAND] # Describe available commands or one specific command
|
18
|
+
pauper reload # Basically an up then a halt...
|
19
|
+
pauper resume [NODENAME] # Resume a VM
|
20
|
+
pauper setup [NODENAME] # Refresh configs and run Chef on a VM
|
21
|
+
pauper setup_osx [VMNAME] # Set up things for OS X
|
22
|
+
pauper start [NODENAME] # Start a VM
|
23
|
+
pauper stop [NODENAME] # Stop a VM
|
24
|
+
pauper suspend [NODENAME] # Suspends a VM
|
25
|
+
pauper up # Start all nodes on your vm from local!
|
26
|
+
pauper write_hosts # Write out a new /etc/hosts file
|
27
|
+
pauper vm SUBCOMMAND # Operations dealing with VMware Fusion
|
28
|
+
|
29
|
+
Options:
|
30
|
+
[--pauperfile=PAUPERFILE] # defults to ./Pauperfile
|
31
|
+
```
|
32
|
+
|
33
|
+
VM Sub Commands
|
34
|
+
-------------------------------------------------------------------------------
|
35
|
+
This attempts to manage an OSX VMware Fusion VM instance headlessly.
|
36
|
+
Please run `pauper vm setup` before asking for help when it does not work...
|
37
|
+
|
38
|
+
The vm subcommand really only works for OSX users running VMWare Fusion.
|
39
|
+
It relies entirely on VMWares vm-run scripts
|
40
|
+
|
41
|
+
__!!IMPORTANT!!__ pauper vm setup should rid of most of the prompts and other
|
42
|
+
things that are not need for headless vm operation but as a precaution you
|
43
|
+
should `stop/start` using the GUI at least once and check all __"never show
|
44
|
+
this to me again"__ boxes just to be safe.
|
45
|
+
|
46
|
+
```bash
|
47
|
+
Commands:
|
48
|
+
pauper vm help [COMMAND] # Describe subcommands or one specific subcommand
|
49
|
+
pauper vm list # List running fusion VMs
|
50
|
+
pauper vm pause # Pause given fusion VM
|
51
|
+
pauper vm reset # Reset given fusion VM
|
52
|
+
pauper vm setup # Setup your pauper vm experience
|
53
|
+
pauper vm start # Starts your fusion VM
|
54
|
+
pauper vm stop # Stop given fusion VM
|
55
|
+
pauper vm suspend # Suspend given fusion VM
|
56
|
+
pauper vm unpause # Unpause given fusion VM
|
57
|
+
pauper vm vmruner # A tube straight to the vmrun command...
|
58
|
+
|
59
|
+
Options:
|
60
|
+
[--vmpath=VMPATH] # Defaults to "/Applications/VMware Fusion.app/Contents/Library/vmrun"
|
61
|
+
[--vmrunpath=VMRUNPATH] # Defaults to "#{ENV['HOME']}/Documents/Virtual Machines*/*.vmwarevm"
|
62
|
+
```
|
63
|
+
|
64
|
+
GPG
|
65
|
+
-------------------------------------------------------------------------------
|
66
|
+
We use GPG for key generation. It needs some amount of entropy to do its thing
|
67
|
+
with any amount of haste. On a new VM there is very little entropy and very
|
68
|
+
little happening that will generate entropy...
|
69
|
+
|
70
|
+
If you notice that `pauper bootstrap` is hanging for a long time on a call
|
71
|
+
involving gpg, attempt this on your VM:
|
72
|
+
```bash
|
73
|
+
sudo apt-get install haveged
|
74
|
+
haveged
|
75
|
+
```
|
76
|
+
haveged generates the needed entropy for you and should slove this issue. Feel
|
77
|
+
free to `kill` haveged when you are done (it will run forever, hiding in the
|
78
|
+
background if you do not :P )
|
79
|
+
|
80
|
+
|
81
|
+
TIPS
|
82
|
+
--------------------------------------------------------------------------------
|
83
|
+
Are things not working for you right now?
|
84
|
+
Try this (probably overkill) way to fix things!
|
85
|
+
|
86
|
+
First try running `./start.sh` from the pauper-env directory.
|
87
|
+
|
88
|
+
If this script does not exist you may have to pull master or if you
|
89
|
+
would prefer to do it the hard way...
|
90
|
+
|
91
|
+
OSX users:
|
92
|
+
1. SSH into your VM
|
93
|
+
2. `cd` into your `pauper-env` directory
|
94
|
+
3. `pauper stop`
|
95
|
+
4. `pauper start`
|
96
|
+
5. `pauper write_hosts`
|
97
|
+
6. `sudo iptables -F`
|
98
|
+
7. Return to your OSX cmd-line
|
99
|
+
8. `cd` into your `pauper-env` directory
|
100
|
+
9. `pauper setup_osx`
|
101
|
+
|
102
|
+
This will hopefully get you into a happy state... Hopefully...
|
data/lib/pauper.rb
CHANGED
@@ -183,11 +183,12 @@ class Pauper
|
|
183
183
|
bootstrap(release)
|
184
184
|
end
|
185
185
|
|
186
|
-
puts "Cloning #{base_name}..."
|
187
|
-
clone_base(base_name, node_name)
|
188
186
|
mac = generate_mac
|
189
187
|
ip = "#{@pauper_config.config[:subnet]}.#{node_config.config[:last_octet]}"
|
190
188
|
|
189
|
+
puts "Cloning #{base_name}..."
|
190
|
+
clone_base(base_name, node_name, ip)
|
191
|
+
|
191
192
|
lxc = LXC.new(node_name)
|
192
193
|
lxc.interface = @pauper_config.config[:bridge]
|
193
194
|
lxc.mac = mac
|
@@ -265,7 +266,7 @@ EOF
|
|
265
266
|
end
|
266
267
|
|
267
268
|
if vm_exists?(node_name)
|
268
|
-
|
269
|
+
stop(node_name)
|
269
270
|
|
270
271
|
chef_node = "#{node_name}#{@pauper_config.config[:node_suffix]}"
|
271
272
|
puts "Removing #{node_name} from Chef..."
|
@@ -561,11 +562,16 @@ EOF
|
|
561
562
|
`sudo lxc-info -n '#{node_name}'`.include?("FROZEN")
|
562
563
|
end
|
563
564
|
|
564
|
-
def clone_base(base_name, node_name)
|
565
|
+
def clone_base(base_name, node_name, ip)
|
565
566
|
cmd "sudo cp -ax #{DEFAULT_VM_PATH}/#{base_name} #{DEFAULT_VM_PATH}/#{node_name}"
|
566
567
|
cmd "sudo rm -f #{DEFAULT_VM_PATH}/#{node_name}/rootfs/etc/chef/client.pem"
|
567
568
|
cmd "sudo rm -f #{DEFAULT_VM_PATH}/#{node_name}/rootfs/etc/ssh/ssh*key*"
|
568
569
|
cmd "sudo sed -i \"s/#{base_name}/#{node_name}/g\" /var/lib/lxc/#{node_name}/rootfs/etc/hostname /var/lib/lxc/#{node_name}/rootfs/etc/chef/client.rb"
|
570
|
+
# The chef run in the base wrote base's IP into /etc/hosts. Once we run chef
|
571
|
+
# in the copied lxc, its /etc/hosts will be rewritten. However, we need
|
572
|
+
# the node's hostname in /etc/hosts in the copy before we run chef in it,
|
573
|
+
# so that sudo lets us put files for chef in place and chef can run.
|
574
|
+
cmd "sudo sh -c 'echo #{ip} #{node_name} >> #{DEFAULT_VM_PATH}/#{node_name}/rootfs/etc/hosts'"
|
569
575
|
end
|
570
576
|
|
571
577
|
def vm_config(node_name)
|
data/lib/pauper/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pauper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tyler McMullen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-04-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -116,3 +116,4 @@ summary: A semi-sane way to manage a multi-vm dev environment
|
|
116
116
|
test_files:
|
117
117
|
- test/pauper_test.rb
|
118
118
|
- test/test_helper.rb
|
119
|
+
has_rdoc:
|