Size: 113
Comment:
|
Size: 8771
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
== Vagrant on Slackware 14 32 bit == Ruby version: ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-linux] VirtualBox version, Oracle VM VirtualBox Manager 4.2.8 === Install Vagrant from source === Based on [[https://github.com/mitchellh/vagrant/wiki/Installing-Vagrant-from-source]] As root run the following: * cd /tmp * mkdir gitVagrant * cd gitVagrant * git clone https://github.com/mitchellh/vagrant.git * cd vagrant * gem install bundle #it may not be installed * bundle install * rake install * vagrant -v #check vagrant version === Install VirtualBox on Slackware 14 32 bit === Get VirtualBox 4.2.8 for Linux, i386, all distributions [[http://download.virtualbox.org/virtualbox/4.2.8/VirtualBox-4.2.8-83876-Linux_x86.run]]. For 4.2.18 [[http://download.virtualbox.org/virtualbox/4.2.18/VirtualBox-4.2.18-88781-Linux_x86.run]] As root run the following commands: * cd <place where the downloaded virtualbox installer is> * chmod 755 VirtualBox-4.2.8-83876-Linux_x86.run * ./VirtualBox-4.2.8-83876-Linux_x86.run * usermod -a -G vboxusers <username> * id <username> #check user groups As a normal user run the following: * virtualbox --help # check the version and parameters * virtualbox #start virtualbox === Get and run a base box - Ubuntu Lucid32 === In [[http://www.vagrantbox.es/]] there is a list of available vagrant boxes. As normal user run the following * mkdir -p /tmp/vgbox * cd /tmp/vgbox * wget http://files.vagrantup.com/lucid32.box #Ubuntu 10.04 LTS * vagrant box add UbuntuLucid32 lucid32.box * vagrant init UbuntuLucid32 * vagrant up * vagrant ssh #access the VM through SSH * ping www.sapo.pt #inside VM ... does not reply * exit * vagrant suspend Run the following as stated in [[http://serverfault.com/questions/453185/vagrant-virtualbox-dns-10-0-2-3-not-working]]: * VBoxManage list vms * VBoxManage modifyvm "vgbox_1372194938" --natdnsproxy1 on * VBoxManage modifyvm "vgbox_1372194938" --natdnshostresolver1 on * vagrant resume * vagrant ssh * ping www.sapo.pt # OK ! it gets ping replies * dpkg -l | more # show all installed packages Running '''cat /etc/debian_version''' show its based on '''squeeze/sid'''. Running '''cat /etc/issue.net''' show it's '''Ubuntu 10.04.4 LTS''' [[http://releases.ubuntu.com/lucid/]]. Current user and pass for the lucid32 box is '''vagrant''' '''vagrant'''. To get superuser access run '''sudo bash'''. Inspecting the file '''/etc/shadow''' we can see that only the user vagrant has a password defined. In '''/etc/sudoers''' it is said that all users belonging to group can gain root privileges with supplying a password. In '''/etc/group''' it is stated that vagrant belongs to the admin group. === Ubuntu Precise32 === In [[http://www.vagrantbox.es/]] there is a list of available vagrant boxes. As normal user run the following * mkdir -p ~/Downloads/vagrantBoxes/ * cd ~/Downloads/vagrantBoxes/ * wget http://files.vagrantup.com/precise32.box #Ubuntu 12.04 LTS * mkdir -p /tmp/precise32 * cd /tmp/precise32 * vagrant box add UbuntuPrecise32 ~/Downloads/vagrantBoxes/precise32.box * vagrant init UbuntuPrecise32 * vagrant up * vagrant ssh #access the VM through SSH * ping www.sapo.pt * exit * vagrant suspend == Slackware NAT router with Pen 3G == Configure Slackware PC to share a 3G internet connection (TMN portuguese ISP). === Internet connection === The used '''APN''' is '''internet'''. There is no PIN defined in the used SIM card. Edit '''/etc/ppp/peers/tmnpub''' * /dev/ttyUSB0 * 460800 * connect 'chat -v -f /etc/ppp/chat/tmnpub' * defaultroute * usepeerdns Edit '''/etc/ppp/chat/tmnpub''' * ABORT 'BUSY' * ABORT 'NO CARRIER' * ABORT 'ERROR' * ABORT 'SIM PIN' * ABORT 'SIM PUK' * '' AT * OK AT+CGDCONT=1,"IP","internet" * OK AT+CPIN? * READY ATDT*99# * CONNECT To connect to the internet we must use the command: * pppd call tmnpub Using the command '''ifconfig''' we should see the device '''ppp0''' in the output. Issuing a command '''ping www.google.com''' we should get a reply with the IP address from Google. === Configure NAT (Network Address Translation) router === Translate internal network addresses (source address) to a public/usable IP address given to the 3G modem. View the routing table: * route -n It should appear the devices ppp0 and eth0, and based on the Destination and Netmask the destination interface. Enable IP forwarding: * echo 1 > /proc/sys/net/ipv4/ip_forward Configure iptables to translate the address after they are forwarded to the correct interface, from '''eth0''' to '''ppp0''': * iptables -F * iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE To view the iptables configuration run the commands: * iptables -L -t nat -v * iptables -L -t filter -v {{{#!highligth bash #script #Enable IP forwarding: echo 1 > /proc/sys/net/ipv4/ip_forward #Configure iptables to translate the address after they are forwarded to the correct interface, from eth0 to ppp0: iptables -F iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE }}} === Configure client computer === The routing table must be configure to use the NAT on Slackware, that will act as a router. Check the current default gateway: * route -n The line with destination equal to 0.0.0.0 and gateway 0.0.0.0, is the default router/gateway and must be deleted. We must run a command to do that, adapted to the current situation: * route del -net 0.0.0.0 gw 192.168.1.1 The previous command is to delete a route with destination 0.0.0.0 and gateway 192.168.1.1. If the NAT router have the IP 192.168.1.123 then the following command must be sent: * route add default gw 192.168.1.123 * route -n After that running '''route -n''' should return a line with: * Gateway: 192.168.1.123 * Netmask: 0.0.0.0 * Destination: 0.0.0.0 * Iface: eth0 Running a '''ping www.google.com''' from the client computer should return the IP address from Google. Running a '''traceroute www.google.com''' should show the IP address from the NAT router. == Generic kernel == The “generic” kernel on the other hand, is a kernel which has virtually no drivers built in. All drivers will be loaded into RAM on demand. {{{ #/usr/share/mkinitrd/mkinitrd_command_generator.sh # # mkinitrd_command_generator.sh revision 1.45 # # This script will now make a recommendation about the command to use # in case you require an initrd image to boot a kernel that does not # have support for your storage or root filesystem built in # (such as the Slackware 'generic' kernels'). # A suitable 'mkinitrd' command will be: mkinitrd -c -k 3.2.45-smp -f ext4 -r /dev/sda1 -m usb-storage:ehci-hcd:usbhid:uhci-hcd:mbcache:jbd2:ext4 -u -o /boot/initrd.gz # Add to /etc/lilo.conf image = /boot/vmlinuz-generic-smp-3.2.45-smp initrd = /boot/initrd.gz # add this line so that lilo sees initrd.gz root = /dev/sda1 label = SlackwareGeneric read-only # run lilo -v }}} == USB boot in VirtualBox == $VBoxManage convertfromraw -format VDI usbboot.img usbboot.vdi == Generic on Slackware64 14.0 == * /usr/share/mkinitrd/mkinitrd_command_generator.sh * mkinitrd -c -k 3.2.29 -f ext4 -r /dev/sda5 -m usbhid:ehci-hcd:mbcache:jbd2:ext4 -u -o /boot/initrd.gz Add to /etc/lilo.conf {{{ image = /boot/vmlinuz-generic-3.2.29 initrd = /boot/initrd.gz # add this line so that lilo sees initrd.gz root = /dev/sda5 label = SlackGen read-only }}} * lilo -v == System V (Sys V) init == Slackware since 7.0 also allows Sys V inits. Sample service /etc/init.d/blah: {{{#!highlight bash #! /bin/sh # /etc/init.d/blah # # Some things that run always touch /var/lock/blah # Carry out specific functions when asked to by the system case "$1" in start) echo "Starting script blah " echo "Could do more here" ;; stop) echo "Stopping script blah" echo "Could do more here" ;; *) echo "Usage: /etc/init.d/blah {start|stop}" exit 1 ;; esac exit 0 }}} Mark script as executable: * chmod 755 /etc/init.d/blah Default runlevels (2 3 4 5): * ln -s /etc/init.d/blah /etc/rc2.d/S99blah * ln -s /etc/init.d/blah /etc/rc2.d/K10blah * ln -s /etc/init.d/blah /etc/rc3.d/S99blah * ln -s /etc/init.d/blah /etc/rc3.d/K10blah * ln -s /etc/init.d/blah /etc/rc4.d/S99blah * ln -s /etc/init.d/blah /etc/rc4.d/K10blah * ln -s /etc/init.d/blah /etc/rc5.d/S99blah * ln -s /etc/init.d/blah /etc/rc5.d/K10blah |
Slackware
The original Linux distribution, geared towards power and stability.
Vagrant on Slackware 14 32 bit
Ruby version: ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-linux]
VirtualBox version, Oracle VM VirtualBox Manager 4.2.8
Install Vagrant from source
Based on https://github.com/mitchellh/vagrant/wiki/Installing-Vagrant-from-source
As root run the following:
- cd /tmp
- mkdir gitVagrant
- cd gitVagrant
git clone https://github.com/mitchellh/vagrant.git
- cd vagrant
- gem install bundle #it may not be installed
- bundle install
- rake install
- vagrant -v #check vagrant version
Install VirtualBox on Slackware 14 32 bit
Get VirtualBox 4.2.8 for Linux, i386, all distributions http://download.virtualbox.org/virtualbox/4.2.8/VirtualBox-4.2.8-83876-Linux_x86.run.
For 4.2.18 http://download.virtualbox.org/virtualbox/4.2.18/VirtualBox-4.2.18-88781-Linux_x86.run
As root run the following commands:
cd <place where the downloaded virtualbox installer is>
chmod 755 VirtualBox-4.2.8-83876-Linux_x86.run
./VirtualBox-4.2.8-83876-Linux_x86.run
usermod -a -G vboxusers <username>
id <username> #check user groups
As a normal user run the following:
- virtualbox --help # check the version and parameters
- virtualbox #start virtualbox
Get and run a base box - Ubuntu Lucid32
In http://www.vagrantbox.es/ there is a list of available vagrant boxes.
As normal user run the following
- mkdir -p /tmp/vgbox
- cd /tmp/vgbox
wget http://files.vagrantup.com/lucid32.box #Ubuntu 10.04 LTS
vagrant box add UbuntuLucid32 lucid32.box
vagrant init UbuntuLucid32
- vagrant up
- vagrant ssh #access the VM through SSH
- ping www.sapo.pt #inside VM ... does not reply
- exit
- vagrant suspend
Run the following as stated in http://serverfault.com/questions/453185/vagrant-virtualbox-dns-10-0-2-3-not-working:
- VBoxManage list vms
- VBoxManage modifyvm "vgbox_1372194938" --natdnsproxy1 on
- VBoxManage modifyvm "vgbox_1372194938" --natdnshostresolver1 on
- vagrant resume
- vagrant ssh
- ping www.sapo.pt # OK ! it gets ping replies
- dpkg -l | more # show all installed packages
Running cat /etc/debian_version show its based on squeeze/sid.
Running cat /etc/issue.net show it's Ubuntu 10.04.4 LTS http://releases.ubuntu.com/lucid/.
Current user and pass for the lucid32 box is vagrant vagrant. To get superuser access run sudo bash.
Inspecting the file /etc/shadow we can see that only the user vagrant has a password defined.
In /etc/sudoers it is said that all users belonging to group can gain root privileges with supplying a password.
In /etc/group it is stated that vagrant belongs to the admin group.
Ubuntu Precise32
In http://www.vagrantbox.es/ there is a list of available vagrant boxes.
As normal user run the following
- mkdir -p ~/Downloads/vagrantBoxes/
- cd ~/Downloads/vagrantBoxes/
wget http://files.vagrantup.com/precise32.box #Ubuntu 12.04 LTS
- mkdir -p /tmp/precise32
- cd /tmp/precise32
vagrant box add UbuntuPrecise32 ~/Downloads/vagrantBoxes/precise32.box
vagrant init UbuntuPrecise32
- vagrant up
- vagrant ssh #access the VM through SSH
- ping www.sapo.pt
- exit
- vagrant suspend
Slackware NAT router with Pen 3G
Configure Slackware PC to share a 3G internet connection (TMN portuguese ISP).
Internet connection
The used APN is internet.
There is no PIN defined in the used SIM card.
Edit /etc/ppp/peers/tmnpub
- /dev/ttyUSB0
- 460800
- connect 'chat -v -f /etc/ppp/chat/tmnpub'
- defaultroute
- usepeerdns
Edit /etc/ppp/chat/tmnpub
- ABORT 'BUSY'
- ABORT 'NO CARRIER'
- ABORT 'ERROR'
- ABORT 'SIM PIN'
- ABORT 'SIM PUK'
'' AT
- OK AT+CGDCONT=1,"IP","internet"
- OK AT+CPIN?
- READY ATDT*99#
- CONNECT
To connect to the internet we must use the command:
- pppd call tmnpub
Using the command ifconfig we should see the device ppp0 in the output.
Issuing a command ping www.google.com we should get a reply with the IP address from Google.
Configure NAT (Network Address Translation) router
Translate internal network addresses (source address) to a public/usable IP address given to the 3G modem.
View the routing table:
- route -n
It should appear the devices ppp0 and eth0, and based on the Destination and Netmask the destination interface.
Enable IP forwarding:
echo 1 > /proc/sys/net/ipv4/ip_forward
Configure iptables to translate the address after they are forwarded to the correct interface, from eth0 to ppp0:
- iptables -F
- iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
To view the iptables configuration run the commands:
- iptables -L -t nat -v
- iptables -L -t filter -v
#script #Enable IP forwarding: echo 1 > /proc/sys/net/ipv4/ip_forward #Configure iptables to translate the address after they are forwarded to the correct interface, from eth0 to ppp0: iptables -F iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Configure client computer
The routing table must be configure to use the NAT on Slackware, that will act as a router.
Check the current default gateway:
- route -n
The line with destination equal to 0.0.0.0 and gateway 0.0.0.0, is the default router/gateway and must be deleted. We must run a command to do that, adapted to the current situation:
- route del -net 0.0.0.0 gw 192.168.1.1
The previous command is to delete a route with destination 0.0.0.0 and gateway 192.168.1.1.
If the NAT router have the IP 192.168.1.123 then the following command must be sent:
- route add default gw 192.168.1.123
- route -n
After that running route -n should return a line with:
- Gateway: 192.168.1.123
- Netmask: 0.0.0.0
- Destination: 0.0.0.0
- Iface: eth0
Running a ping www.google.com from the client computer should return the IP address from Google.
Running a traceroute www.google.com should show the IP address from the NAT router.
Generic kernel
The “generic” kernel on the other hand, is a kernel which has virtually no drivers built in. All drivers will be loaded into RAM on demand.
#/usr/share/mkinitrd/mkinitrd_command_generator.sh # # mkinitrd_command_generator.sh revision 1.45 # # This script will now make a recommendation about the command to use # in case you require an initrd image to boot a kernel that does not # have support for your storage or root filesystem built in # (such as the Slackware 'generic' kernels'). # A suitable 'mkinitrd' command will be: mkinitrd -c -k 3.2.45-smp -f ext4 -r /dev/sda1 -m usb-storage:ehci-hcd:usbhid:uhci-hcd:mbcache:jbd2:ext4 -u -o /boot/initrd.gz # Add to /etc/lilo.conf image = /boot/vmlinuz-generic-smp-3.2.45-smp initrd = /boot/initrd.gz # add this line so that lilo sees initrd.gz root = /dev/sda1 label = SlackwareGeneric read-only # run lilo -v
USB boot in VirtualBox
$VBoxManage convertfromraw -format VDI usbboot.img usbboot.vdi
Generic on Slackware64 14.0
- /usr/share/mkinitrd/mkinitrd_command_generator.sh
- mkinitrd -c -k 3.2.29 -f ext4 -r /dev/sda5 -m usbhid:ehci-hcd:mbcache:jbd2:ext4 -u -o /boot/initrd.gz
Add to /etc/lilo.conf
image = /boot/vmlinuz-generic-3.2.29 initrd = /boot/initrd.gz # add this line so that lilo sees initrd.gz root = /dev/sda5 label = SlackGen read-only
- lilo -v
System V (Sys V) init
Slackware since 7.0 also allows Sys V inits.
Sample service /etc/init.d/blah:
1 #! /bin/sh
2 # /etc/init.d/blah
3 #
4
5 # Some things that run always
6 touch /var/lock/blah
7
8 # Carry out specific functions when asked to by the system
9 case "$1" in
10 start)
11 echo "Starting script blah "
12 echo "Could do more here"
13 ;;
14 stop)
15 echo "Stopping script blah"
16 echo "Could do more here"
17 ;;
18 *)
19 echo "Usage: /etc/init.d/blah {start|stop}"
20 exit 1
21 ;;
22 esac
23
24 exit 0
Mark script as executable:
- chmod 755 /etc/init.d/blah
Default runlevels (2 3 4 5):
- ln -s /etc/init.d/blah /etc/rc2.d/S99blah
- ln -s /etc/init.d/blah /etc/rc2.d/K10blah
- ln -s /etc/init.d/blah /etc/rc3.d/S99blah
- ln -s /etc/init.d/blah /etc/rc3.d/K10blah
- ln -s /etc/init.d/blah /etc/rc4.d/S99blah
- ln -s /etc/init.d/blah /etc/rc4.d/K10blah
- ln -s /etc/init.d/blah /etc/rc5.d/S99blah
- ln -s /etc/init.d/blah /etc/rc5.d/K10blah