Compare commits

...

2 Commits

Author SHA1 Message Date
Adrian af7fee31a6 Update Debootstrap Guide 2015-12-15 14:17:04 +01:00
Adrian 62b1ed3cfd Various cleanups and clarifications 2015-12-15 14:16:53 +01:00
8 changed files with 93 additions and 57 deletions

View File

@ -3,6 +3,6 @@ prompt 1
timeout 1 timeout 1
label linux label linux
menu label Debian Testing menu label Debian
linux /vmlinuz linux /vmlinuz
append initrd=/initrd.img init=/bin/systemd ro quiet vga=0x314 root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx append initrd=/initrd.img ro quiet vga=0x314 root=LABEL=System

View File

@ -5,7 +5,7 @@ These are carefully crafted Nginx config files.
Do not forget the following: Do not forget the following:
sudo chown -R wwwrun.www /var/lib/nginx sudo chown -R wwwrun.www /var/lib/nginx # if on openSUSE
cd /etc/nginx/sites-conf cd /etc/nginx/sites-conf
sudo ln -s example.ssl default.ssl sudo ln -s example.ssl default.ssl

View File

@ -1,4 +1,7 @@
user wwwrun www; user www-data;
# Or, if on openSUSE:
# user wwwrun www;
worker_processes auto; worker_processes auto;
pid /run/nginx.pid; pid /run/nginx.pid;

View File

@ -2,11 +2,11 @@
A `chroot` environment can be used to modify a system installed to a different location. A `chroot` environment can be used to modify a system installed to a different location.
Combined with `aufs`, the technique can be used, for example, to modify an ISO live image. Combined with `aufs`, the technique can be used, for example, to modify a mounted ISO image.
## Setup ## Setup
MNT=/tmp/mnt/rootfs MNT=/mnt
mount -o bind /dev $MNT/dev mount -o bind /dev $MNT/dev
mount -o bind /dev/pts $MNT/dev/pts mount -o bind /dev/pts $MNT/dev/pts
mount -t proc none $MNT/proc mount -t proc none $MNT/proc
@ -15,6 +15,8 @@ Combined with `aufs`, the technique can be used, for example, to modify an ISO l
cp /etc/resolv.conf $MNT/etc/resolv.conf cp /etc/resolv.conf $MNT/etc/resolv.conf
chroot $MNT chroot $MNT
`$MNT/etc/mtab` should be edited manually to correctly point to the root file system.
Umount the chroot environment: Umount the chroot environment:
umount $MNT/{sys,proc,dev/pts,dev} umount $MNT/{sys,proc,dev/pts,dev}
@ -23,6 +25,7 @@ Umount the chroot environment:
## AUFS Overlay ## AUFS Overlay
Mount a writeable version of `/tmp/mnt/rootfs` to `/tmp/mnt/rootrw` Mount a writeable version of `/tmp/mnt/root` to `/tmp/mnt/rootrw`
mount -t aufs -o br:/tmp/mnt/aufs:/tmp/mnt/rootfs none /tmp/mnt/rootrw mkdir -p /tmp/mnt/{root,rootrw,aufs}
mount -t aufs -o br:/tmp/mnt/aufs:/tmp/mnt/root none /tmp/mnt/rootrw

View File

@ -2,21 +2,23 @@ Prepare Image
============= =============
* Use the **VMDK format** * Use the **VMDK format**
* Use SCSI adapter type in VM, or:
* Add **mptspi** (SCSI driver) to the initrd * Add **mptspi** (SCSI driver) to the initrd
* openSUSE: Edit `/etc/dracut.conf` * openSUSE: Edit `/etc/dracut.conf`
Change the line `#add_drivers+=""` to `add_drivers+="mptspi"` 1. Change the line `#add_drivers+=""` to `add_drivers+="mptspi"`
Then execute `dracut -f` 2. Execute `dracut -f`
* openSUSE < 13.2: * openSUSE < 13.2:
1. Edit `/etc/sysconfig/kernel` 1. Edit `/etc/sysconfig/kernel`
2. Add it to `INITRD_MODULES` 2. Add it to `INITRD_MODULES`
3. Update initrd: `mkinitrd` 3. Update initrd: `mkinitrd`
* Debian
1. Edit `/etc/initramfs-tools/modules`
2. Execute `update-initramfs -u`
Copy VM to ESX Copy VM to ESX
============== ==============
1. Create a new VM using the vSphere Client 1. Create a new VM using the vSphere Client
* Create a disk image, but it will not be used afterwards.
2. Upload the VMDK disk image files 2. Upload the VMDK disk image files

View File

@ -6,6 +6,8 @@ a basic copy of a Debian derivative into a folder.
This guide explains how to install a full Kubuntu system with debootstrap. This guide explains how to install a full Kubuntu system with debootstrap.
However, any Ubuntu flavour can be installed this way. However, any Ubuntu flavour can be installed this way.
This guide uses Bashisms.
# Procedure # Procedure
## Basic Minimal Installation ## Basic Minimal Installation
@ -17,8 +19,13 @@ The subsequent commands are all executed inside a
## Basic Configuration ## Basic Configuration
### Mark packages
apt-mark showmanual | xargs apt-mark auto
### Set language ### Set language
apt-get install locales
locale-gen en_US.UTF-8 locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8 update-locale LANG=en_US.UTF-8
@ -28,23 +35,37 @@ The subsequent commands are all executed inside a
### Basic configuration ### Basic configuration
Do not forget to edit `fstab`, `hostname`, and `hosts` in /etc. echo > /etc/fstab
echo "LABEL=System / ext4 errors=remount-ro,noatime 0 1" >> /etc/fstab
An example fstab might look like: echo > /etc/hosts
echo "127.0.0.1 localhost" >> /etc/hosts
echo "127.0.0.1 your-host" >> /etc/hosts
echo "::1 ip6-localhost ip6-loopback" >> /etc/hosts
echo "your-host" > /etc/hostname
LABEL=System / ext4 errors=remount-ro,noatime,discard 0 1 echo > /etc/network/interfaces.d/eth0
echo auto eth0 >> /etc/network/interfaces.d/eth0
echo iface eth0 inet dhcp >> /etc/network/interfaces.d/eth0
Note: `discard` is useful for SSD disks. Note: The option `discard` can be added in `/etc/fstab` for SSD disks.
### Optionally, configure keyboard ### Configure keyboard (optional)
dpkg-reconfigure keyboard-configuration dpkg-reconfigure keyboard-configuration
### Optionally, configure APT ### Configure APT (optional)
# /etc/apt/apt.conf.d/99recommends echo 'APT::AutoRemove::RecommendsImportant "true";' >> /etc/apt/apt.conf.d/99no-recommends
APT::AutoRemove::RecommendsImportant echo 'APT::Install-Recommends "false";' >> /etc/apt/apt.conf.d/99no-recommends
APT::Install-Recommends echo 'APT::Get::Purge "true";' >> /etc/apt/apt.conf.d/99always-purge
### ACPI support (optional)
apt-get install acpi-support-base
systemctl enable acpid
Note: This enables ACPI shutdown as commonly used in VMs.
## Ubuntu Installation ## Ubuntu Installation
@ -52,9 +73,8 @@ Note: `discard` is useful for SSD disks.
apt-get install ubuntu-minimal apt-get install ubuntu-minimal
ubuntu-minimal contains useful packages `ubuntu-minimal` contains useful packages
which would have to be installed manually in Debian. which would have to be installed manually in Debian.
These include: `cron logrotate nano netbase net-tools isc-dhcp-client sudo rsyslog` These include: `cron logrotate nano netbase net-tools isc-dhcp-client sudo rsyslog`
### Add a regular user ### Add a regular user
@ -70,14 +90,24 @@ In Ubuntu, the default secondary user groups are:
To install a bootable system, the kernel and a bootloader To install a bootable system, the kernel and a bootloader
have to be installed. have to be installed.
apt-get install linux-generic
The following command installs Grub for EFI with Secure Boot enabled: The following command installs Grub for EFI with Secure Boot enabled:
apt-get install linux-generic grub-efi-amd64-signed shim-signed apt-get install grub-efi-amd64-signed shim-signed
For BIOS, `grub-pc` has to be installed. For BIOS:
Alternatively, extlinux can be installed instead of grub. apt-get install grub-pc
That section has yet to be written though...
Alternatively, extlinux can be installed:
apt-get install extlinux
mkdir /boot/extlinux
extlinux -i /boot/extlinux
cat /usr/lib/EXTLINUX/mbr.bin > /dev/sda
Copy [extlinux.conf](../conf/extlinux.conf) to `/boot/extlinux`.
### Install desktop system ### Install desktop system
@ -89,18 +119,18 @@ It is a good time to add some repositories.
All Ubuntu repositories are enabled using the following configuration: All Ubuntu repositories are enabled using the following configuration:
# /etc/apt/sources.list echo > /etc/apt/sources.list
deb http://ch.archive.ubuntu.com/ubuntu/ wily main restricted universe multiverse echo "deb http://ch.archive.ubuntu.com/ubuntu wily main restricted universe multiverse" >> /etc/apt/sources.list
deb http://ch.archive.ubuntu.com/ubuntu/ wily-security main restricted universe multiverse echo "deb http://ch.archive.ubuntu.com/ubuntu wily-security main restricted universe multiverse" >> /etc/apt/sources.list
deb http://ch.archive.ubuntu.com/ubuntu/ wily-updates main restricted universe multiverse echo "deb http://ch.archive.ubuntu.com/ubuntu wily-updates main restricted universe multiverse" >> /etc/apt/sources.list
deb http://archive.canonical.com/ubuntu wily partner echo "deb http://archive.canonical.com/ubuntu wily partner" >> /etc/apt/sources.list
Also refer to the [Ubuntu Help](https://help.ubuntu.com/community/Repositories/Ubuntu) Also refer to the [Ubuntu Help](https://help.ubuntu.com/community/Repositories/Ubuntu)
to find about the different components. to read about the different components.
Some PPAs are needed to be sure to get the latest software versions. Some PPAs are needed to ensure the latest software versions are installed.
First the `add-apt-repository` helper is installed, First, the `add-apt-repository` helper is installed,
and then those repositories are added: and then, those repositories are added:
apt-get install software-properties-common apt-get install software-properties-common
apt-mark auto software-properties-common apt-mark auto software-properties-common
@ -108,13 +138,12 @@ and then those repositories are added:
add-apt-repository ppa:libreoffice/ppa add-apt-repository ppa:libreoffice/ppa
add-apt-repository ppa:rvm/smplayer add-apt-repository ppa:rvm/smplayer
add-apt-repository ppa:qtbittorrent-team/qtbittorrent-stable add-apt-repository ppa:qtbittorrent-team/qtbittorrent-stable
echo deb http://debian-mirrors.sdinet.de/debian-multimedia testing main \ echo "deb http://debian-mirrors.sdinet.de/debian-multimedia testing main" > /etc/apt/sources.list.d/deb-multimedia.list
> /etc/apt/sources.list.d/deb-multimedia.list
#### Install desktop packages #### Install desktop packages
Now do an `apt-get update` and install the desktop system: apt-get update
apt-get install --allow-unauthenticated -y deb-multimedia-keyring
apt-get install --install-recommends ubuntu-standard kubuntu-desktop kubuntu-restricted-extras language-pack-kde-en apt-get install --install-recommends ubuntu-standard kubuntu-desktop kubuntu-restricted-extras language-pack-kde-en
Personally, I like to use Chrome and SMPlayer: Personally, I like to use Chrome and SMPlayer:
@ -126,5 +155,3 @@ Personally, I like to use Chrome and SMPlayer:
Sometimes, some packages have to be pulled Sometimes, some packages have to be pulled
from [packages.debian.org](http://packages.debian.org) manually. from [packages.debian.org](http://packages.debian.org) manually.
## Finished!

View File

@ -50,9 +50,9 @@ Security
* Disable root account (put an asterisk `*` as password) * Disable root account (put an asterisk `*` as password)
* Create SSH user: * Create SSH user:
* /etc/passwd: `sshuser:x:999:65534::/run:/bin/bash` * `echo "sshuser:x:999:65534::/run:/bin/bash" >> /etc/passwd`
* /etc/shadow: `sshuser:*:16436:0:99999::::` * `echo "sshuser:*:16436:0:99999::::" >> /etc/shadow`
* Change its password: `$ sudo passwd sshuser` * Change the password: `sudo passwd sshuser`
* Edit SSH config `/etc/ssh/sshd_config`: * Edit SSH config `/etc/ssh/sshd_config`:
Port xxx Port xxx
@ -119,19 +119,18 @@ Debian `/etc/cron.*` times:
AWstats AWstats
======= =======
mkdir /usr/local/awstats; cd /usr/local/awstats mkdir /usr/local/awstats && cd /usr/local/awstats && git init
git init git remote add origin https://github.com/eldy/awstats.git
git remote add origin git://git.code.sf.net/p/awstats/code git fetch --depth=1 origin tag AWSTATS_7_4
git fetch --depth=1 origin tag AWSTATS_7_3 git checkout AWSTATS_7_4
git checkout AWSTATS_7_3
mkdir /usr/local/share/cgi-bin
ln -s /usr/local/awstats/wwwroot /usr/local/share/cgi-bin/awstats
Check version tags: Check version tags:
git ls-remote git ls-remote
To use it with [AWstats](../conf/nginx/sites-available/example),
set: `DirIcons="/awstatsicons"`
Free Space Free Space
========== ==========

View File

@ -37,8 +37,7 @@ The safe update script which is listed below.
## Universal Safe Update ## Universal Safe Update
The script is located in [scripts/git-safe-update.sh](../scripts/git-safe-update.sh). Copy the file [git-safe-update.sh](../scripts/git-safe-update.sh) and make it executable.
Copy the file to `/path/to/safe-update` and make it executable.
It can be used to update any repository. It takes two arguments: It can be used to update any repository. It takes two arguments:
@ -63,7 +62,7 @@ It executes `safe-update` only when the master branch is updated.
read oldid newid ref read oldid newid ref
if [ "$ref" = "refs/heads/master" ]; then if [ "$ref" = "refs/heads/master" ]; then
sudo /path/to/safe-update /path/to/deploy-target wwwrun.www sudo /path/to/safe-update /path/to/deploy-target www-data.www-data
fi fi
``` ```
@ -75,8 +74,11 @@ a `file:` URL as the remote.
The *master* branch is assumed to be a deployable version. The *master* branch is assumed to be a deployable version.
Hence, use the following command to add the remote: Hence, use the following command to add the remote:
cd /path/to/deploy-target
git init
git remote add -t master origin file:///path/to/main.git git remote add -t master origin file:///path/to/main.git
git branch -u origin/master git fetch --depth=1
git checkout master
## Sudo Configuration ## Sudo Configuration