Initial scripts commit
This commit is contained in:
parent
bb58f64d5a
commit
60f31b4cd4
102
OVH-SYS_Hard_RAID_KVMServer.sh
Normal file
102
OVH-SYS_Hard_RAID_KVMServer.sh
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
|
||||||
|
# /dev/sda1 /, /dev/sda2 /home.
|
||||||
|
# / doit être sur /dev/sda1. Sinon adapter le script !
|
||||||
|
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
swapoff -a
|
||||||
|
cd /mnt
|
||||||
|
mkdir root_in_ram rootfs home var usr log
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
mount /dev/sda1 /mnt/rootfs/
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
umount /mnt/rootfs
|
||||||
|
# Create a GPT label. (Removes all parts).
|
||||||
|
parted -s /dev/sda mklabel gpt
|
||||||
|
# bios_grub GPT *mandatory*
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary 0M 1M
|
||||||
|
parted -s /dev/sda set 1 bios_grub on
|
||||||
|
# /boot
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 1M 200M
|
||||||
|
parted -s /dev/sda set 2 boot on
|
||||||
|
mkfs.ext4 -LBOOT /dev/sda2 >/dev/null
|
||||||
|
# /
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 200M 1200M
|
||||||
|
mkfs.ext4 -LROOTFS /dev/sda3 >/dev/null
|
||||||
|
# /var
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 1200M 11200M
|
||||||
|
mkfs.ext4 -LVAR /dev/sda4 >/dev/null
|
||||||
|
# /usr
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 11200M 16200M
|
||||||
|
mkfs.ext4 -LUSR /dev/sda5 >/dev/null
|
||||||
|
# LVM
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 16200M 100%
|
||||||
|
parted -s /dev/sda set 6 lvm on
|
||||||
|
|
||||||
|
|
||||||
|
# Add LVM with a VG for all of the free space.
|
||||||
|
pvcreate /dev/sda6
|
||||||
|
vgcreate ssd0 /dev/sda6
|
||||||
|
pvcreate /dev/sdb
|
||||||
|
vgcreate hdd0 /dev/sdb
|
||||||
|
lvcreate --size 1G --name tmp ssd0
|
||||||
|
mkfs.ext4 -LTMP /dev/mapper/ssd0-tmp >/dev/null
|
||||||
|
lvcreate --size 10G --name swap1 ssd0
|
||||||
|
lvcreate --size 10G --name swap2 hdd0
|
||||||
|
mkswap -f -LSWAP1 /dev/mapper/ssd0-swap1
|
||||||
|
mkswap -f -LSWAP2 /dev/mapper/hdd0-swap2
|
||||||
|
lvcreate --size 20G --name home hdd0
|
||||||
|
mkfs.ext4 -LHOME /dev/mapper/hdd0-home >/dev/null
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mount -LHOME home
|
||||||
|
mount -LVAR var
|
||||||
|
mount -LUSR usr
|
||||||
|
rsync -a root_in_ram/home/ home/
|
||||||
|
rsync -a root_in_ram/var/ var/
|
||||||
|
rsync -a root_in_ram/usr/ usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
umount home var usr
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT>rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 0
|
||||||
|
LABEL=SWAP2 none swap sw 0 0
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot and install lvm2 + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
export LC_ALL=C
|
||||||
|
mount /boot
|
||||||
|
mount /usr
|
||||||
|
mount /var
|
||||||
|
mount /tmp
|
||||||
|
chmod 1777 /tmp
|
||||||
|
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
# LVM2 déjà OK sur machines OVH
|
||||||
|
#apt install -y lvm2
|
||||||
|
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-amd64
|
||||||
|
passwd
|
||||||
|
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
154
OVH-SYS_Hard_RAID_KVMServer_EFI.sh
Normal file
154
OVH-SYS_Hard_RAID_KVMServer_EFI.sh
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
|
||||||
|
# / doit être sur /dev/sda2. Sinon adapter le script !
|
||||||
|
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
|
||||||
|
swapoff -a
|
||||||
|
|
||||||
|
cd /mnt
|
||||||
|
|
||||||
|
mkdir root_in_ram rootfs home var usr log
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
mount /dev/sda2 /mnt/rootfs/
|
||||||
|
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
|
||||||
|
umount /mnt/rootfs
|
||||||
|
# Create a GPT label. (Removes all parts).
|
||||||
|
parted -s /dev/sda mklabel gpt
|
||||||
|
sleep 2
|
||||||
|
# BOOT EFI *mandatory* 100 Mo
|
||||||
|
parted -a minimal -s /dev/sda mkpart ESP fat32 0M 100M
|
||||||
|
parted -s /dev/sda set 1 esp on
|
||||||
|
parted -s /dev/sda set 1 boot on
|
||||||
|
mkfs.vfat -F32 /dev/sda1 >/dev/null
|
||||||
|
fatlabel /dev/sda1 EFI_SYSPART
|
||||||
|
sleep 2
|
||||||
|
# /boot 500 Mo
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 100M 600M
|
||||||
|
mkfs.ext4 -LBOOT /dev/sda2 >/dev/null
|
||||||
|
sleep 2
|
||||||
|
# / 500 Mo
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 600M 1100M
|
||||||
|
mkfs.ext4 -LROOTFS /dev/sda3 >/dev/null
|
||||||
|
sleep 2
|
||||||
|
# /usr 6 Go
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 1100M 7100M
|
||||||
|
mkfs.ext4 -LUSR /dev/sda4 >/dev/null
|
||||||
|
sleep 2
|
||||||
|
# swap1 10 Go
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 7100M 17100M
|
||||||
|
mkswap -f -LSWAP1 /dev/sda5
|
||||||
|
sleep 2
|
||||||
|
# swap2 10 Go
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 17100M 27100M
|
||||||
|
mkswap -f -LSWAP2 /dev/sda6
|
||||||
|
sleep 2
|
||||||
|
# LVM 100%
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 27100M 100%
|
||||||
|
parted -s /dev/sda set 7 lvm on
|
||||||
|
sleep 2
|
||||||
|
# Add LVM with a VG for all of the free space.
|
||||||
|
pvcreate /dev/sda7
|
||||||
|
vgcreate vg0 /dev/sda7
|
||||||
|
sleep 2
|
||||||
|
# TMP
|
||||||
|
lvcreate --size 1G --name tmp vg0
|
||||||
|
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
|
||||||
|
sleep 2
|
||||||
|
# VAR
|
||||||
|
lvcreate --size 5G --name var vg0
|
||||||
|
mkfs.ext4 -LVAR /dev/mapper/vg0-var >/dev/null
|
||||||
|
sleep 2
|
||||||
|
# HOME
|
||||||
|
lvcreate --size 50G --name home vg0
|
||||||
|
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
# Le reste du disque est laissé tel quel
|
||||||
|
|
||||||
|
# Mount partitions
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mount -LHOME home
|
||||||
|
mount -LVAR var
|
||||||
|
mkdir rootfs/usr
|
||||||
|
mount -LUSR rootfs/usr
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
rsync -a root_in_ram/home/ home/
|
||||||
|
rsync -a root_in_ram/var/ var/
|
||||||
|
rsync -a root_in_ram/usr/ rootfs/usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
|
||||||
|
umount home var
|
||||||
|
# si on démonte usr, le chroot n'est pas possible (bash n'est pas trouvé)
|
||||||
|
# umount rootfs/usr
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT>rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 2
|
||||||
|
LABEL=SWAP2 none swap sw 0 2
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot and install lvm2 + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
|
||||||
|
mount /boot
|
||||||
|
mount /boot/efi
|
||||||
|
# /usr est déjà monté depuis l'extérieur du chroot
|
||||||
|
mount /var
|
||||||
|
mount /tmp
|
||||||
|
chmod 1777 /tmp
|
||||||
|
|
||||||
|
# purge des paquets de Grub et du noyau, pour réinitialiser complètement les config
|
||||||
|
# * Remove GRUB 2 from /boot/grub? Yes
|
||||||
|
apt purge -y os-prober grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-pc grub2-common
|
||||||
|
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
|
||||||
|
# réinstallation des paquets
|
||||||
|
apt install -y lvm2 grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64
|
||||||
|
|
||||||
|
grub-install /dev/sda
|
||||||
|
|
||||||
|
# Questions "update-grub":
|
||||||
|
# * Linux command line:
|
||||||
|
# * Linux default command line: quiet
|
||||||
|
# * Force extra installation to the EFI removable media path? Yes
|
||||||
|
# * Update NVRAM variables to automatically boot into Debian? Yes
|
||||||
|
update-grub
|
||||||
|
|
||||||
|
dpkg-reconfigure grub-efi-amd64
|
||||||
|
|
||||||
|
|
||||||
|
# paquets utiles pour evolixisation par Ansible
|
||||||
|
apt install -y sudo python python-apt
|
||||||
|
|
||||||
|
passwd
|
||||||
|
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
111
OVH-SYS_Hard_RAID_SpecialServer_2VOLSRAID_GPT.sh
Normal file
111
OVH-SYS_Hard_RAID_SpecialServer_2VOLSRAID_GPT.sh
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
|
||||||
|
# /dev/sda1 /, /dev/sda2 /home.
|
||||||
|
# / doit être sur /dev/sda1. Sinon adapter le script !
|
||||||
|
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
swapoff -a
|
||||||
|
cd /mnt
|
||||||
|
mkdir root_in_ram rootfs home var usr log
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
mount /dev/sda2 /mnt/rootfs/
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
umount /mnt/rootfs
|
||||||
|
# Create a GPT label. (Removes all parts).
|
||||||
|
parted -s /dev/sda mklabel gpt
|
||||||
|
# bios_grub GPT *mandatory*
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary 0M 1M
|
||||||
|
parted -s /dev/sda set 1 bios_grub on
|
||||||
|
# /boot
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 1M 200M
|
||||||
|
parted -s /dev/sda set 2 boot on
|
||||||
|
mkfs.ext4 -LBOOT /dev/sda2 >/dev/null
|
||||||
|
# /
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 200M 1200M
|
||||||
|
mkfs.ext4 -LROOTFS /dev/sda3 >/dev/null
|
||||||
|
# /var
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 1200M 11200M
|
||||||
|
mkfs.ext4 -LVAR /dev/sda4 >/dev/null
|
||||||
|
# /usr
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 11200M 16200M
|
||||||
|
mkfs.ext4 -LUSR /dev/sda5 >/dev/null
|
||||||
|
# LVM
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 16200M 100%
|
||||||
|
parted -s /dev/sda set 6 lvm on
|
||||||
|
|
||||||
|
|
||||||
|
# Add LVM with a VG for all of the free space.
|
||||||
|
pvcreate /dev/sda6
|
||||||
|
vgcreate RAID1_VOL0 /dev/sda6
|
||||||
|
pvcreate /dev/sdb
|
||||||
|
vgcreate RAID1_VOL1 /dev/sdb
|
||||||
|
lvcreate --size 1G --name tmp RAID1_VOL0
|
||||||
|
mkfs.ext4 -LTMP /dev/mapper/RAID1_VOL0-tmp >/dev/null
|
||||||
|
lvcreate --size 512M --name swap1 RAID1_VOL0
|
||||||
|
lvcreate --size 512M --name swap2 RAID1_VOL1
|
||||||
|
mkswap -f -LSWAP1 /dev/mapper/RAID1_VOL0-swap1
|
||||||
|
mkswap -f -LSWAP2 /dev/mapper/RAID1_VOL1-swap2
|
||||||
|
lvcreate --size 600G --name home RAID1_VOL0
|
||||||
|
mkfs.ext4 -LHOME /dev/mapper/RAID1_VOL0-home >/dev/null
|
||||||
|
lvcreate --size 40G --name log RAID1_VOL0
|
||||||
|
mkfs.ext4 -LLOG /dev/mapper/RAID1_VOL0-log >/dev/null
|
||||||
|
lvcreate --size 200G --name srv RAID1_VOL1
|
||||||
|
mkfs.ext4 -LSRV /dev/mapper/RAID1_VOL1-srv >/dev/null
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mount -LHOME home
|
||||||
|
mount -LVAR var
|
||||||
|
mount -LLOG log
|
||||||
|
mount -LUSR usr
|
||||||
|
rsync -a root_in_ram/home/ home/
|
||||||
|
rsync -a --exclude="log/**" root_in_ram/var/ var/
|
||||||
|
rsync -a root_in_ram/var/log/ log/
|
||||||
|
rsync -a root_in_ram/usr/ usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
umount home var usr log
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT>rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=LOG /var/log ext4 defaults 0 2
|
||||||
|
LABEL=SRV /srv ext4 defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 0
|
||||||
|
LABEL=SWAP2 none swap sw 0 0
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot and install lvm2 + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
export LC_ALL=C
|
||||||
|
mount /boot
|
||||||
|
mount /usr
|
||||||
|
mount /var
|
||||||
|
mount /tmp
|
||||||
|
mount /var/log
|
||||||
|
chmod 1777 /tmp
|
||||||
|
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
# LVM2 déjà OK sur machines OVH
|
||||||
|
#apt install -y lvm2
|
||||||
|
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-amd64
|
||||||
|
passwd
|
||||||
|
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
105
OVH-SYS_Hard_RAID_StandardServer.sh
Normal file
105
OVH-SYS_Hard_RAID_StandardServer.sh
Normal file
|
@ -0,0 +1,105 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
|
||||||
|
# /dev/sda1 /, /dev/sda2 /home.
|
||||||
|
# / doit être sur /dev/sda1. Sinon adapter le script !
|
||||||
|
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
swapoff -a
|
||||||
|
cd /mnt
|
||||||
|
mkdir root_in_ram rootfs home var usr log
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
mount /dev/sda1 /mnt/rootfs/
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
umount /mnt/rootfs
|
||||||
|
# Create a GPT label. (Removes all parts).
|
||||||
|
parted -s /dev/sda mklabel gpt
|
||||||
|
# bios_grub GPT *mandatory*
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary 0M 1M
|
||||||
|
parted -s /dev/sda set 1 bios_grub on
|
||||||
|
# /boot
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 1M 200M
|
||||||
|
parted -s /dev/sda set 2 boot on
|
||||||
|
mkfs.ext4 -LBOOT /dev/sda2 >/dev/null
|
||||||
|
# /
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 200M 1200M
|
||||||
|
mkfs.ext4 -LROOTFS /dev/sda3 >/dev/null
|
||||||
|
# /var
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 1200M 11200M
|
||||||
|
mkfs.ext4 -LVAR /dev/sda4 >/dev/null
|
||||||
|
# /usr
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 11200M 16200M
|
||||||
|
mkfs.ext4 -LUSR /dev/sda5 >/dev/null
|
||||||
|
# LVM
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 16200M 100%
|
||||||
|
parted -s /dev/sda set 6 lvm on
|
||||||
|
|
||||||
|
|
||||||
|
# Add LVM with a VG for all of the free space.
|
||||||
|
pvcreate /dev/sda6
|
||||||
|
vgcreate SSD0 /dev/sda6
|
||||||
|
pvcreate /dev/sdb
|
||||||
|
vgcreate HDD0 /dev/sdb
|
||||||
|
lvcreate --size 1G --name tmp SSD0
|
||||||
|
mkfs.ext4 -LTMP /dev/mapper/SSD0-tmp >/dev/null
|
||||||
|
lvcreate --size 512M --name swap1 SSD0
|
||||||
|
lvcreate --size 512M --name swap2 HDD0
|
||||||
|
mkswap -f -LSWAP1 /dev/mapper/SSD0-swap1
|
||||||
|
mkswap -f -LSWAP2 /dev/mapper/HDD0-swap2
|
||||||
|
lvcreate --size 200G --name home HDD0
|
||||||
|
mkfs.ext4 -LHOME /dev/mapper/HDD0-home >/dev/null
|
||||||
|
lvcreate --size 40G --name srv SSD0
|
||||||
|
mkfs.ext4 -LSRV /dev/mapper/SSD0-srv >/dev/null
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mount -LHOME home
|
||||||
|
mount -LVAR var
|
||||||
|
mount -LUSR usr
|
||||||
|
rsync -a root_in_ram/home/ home/
|
||||||
|
rsync -a root_in_ram/var/ var/
|
||||||
|
rsync -a root_in_ram/usr/ usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
umount home var usr
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT>rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=SRV /srv ext4 defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 0
|
||||||
|
LABEL=SWAP2 none swap sw 0 0
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot and install lvm2 + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
export LC_ALL=C
|
||||||
|
mount /boot
|
||||||
|
mount /usr
|
||||||
|
mount /var
|
||||||
|
mount /tmp
|
||||||
|
chmod 1777 /tmp
|
||||||
|
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
# LVM2 déjà OK sur machines OVH
|
||||||
|
#apt install -y lvm2
|
||||||
|
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-amd64
|
||||||
|
passwd
|
||||||
|
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
192
OVH-SYS_Hard_RAID_StandardServer_EFI.sh
Normal file
192
OVH-SYS_Hard_RAID_StandardServer_EFI.sh
Normal file
|
@ -0,0 +1,192 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Le script suppose que :
|
||||||
|
# * il y a un (seul) ensemble RAID hard
|
||||||
|
# * le serveur boot en EFI
|
||||||
|
# * on va reconstruire toute la table de partitionnement (GPT) du serveur
|
||||||
|
# * le volume "rootfs" actuel est /dev/sda2
|
||||||
|
# Enfin un fstab est généré, le raid est configuré, lvm2 est installé,
|
||||||
|
# grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
# Si vous utilisez un terminal exotique, émulez xterm
|
||||||
|
export TERM=xterm
|
||||||
|
|
||||||
|
# Avant de commencer, consulter les disques pour vérifier les noms
|
||||||
|
lsblk
|
||||||
|
|
||||||
|
# utilisez "set -e" si vous copiez/collez des bouts de scripts et souhaitez
|
||||||
|
# un arrêt en cas d'erreur. Si vous le faites dans le shell de votre session SSH
|
||||||
|
# elle s'interrompra !
|
||||||
|
# set -e
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
|
||||||
|
swapoff -a
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
cd /mnt
|
||||||
|
|
||||||
|
mkdir -p root_in_ram rootfs home var usr srv
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
mount /dev/sda2 /mnt/rootfs/
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
umount /mnt/rootfs
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Create a GPT label. (Removes all parts).
|
||||||
|
parted -s /dev/sda mklabel gpt
|
||||||
|
sleep 1
|
||||||
|
# BOOT EFI *mandatory* 100 Mo
|
||||||
|
parted -a minimal -s /dev/sda mkpart ESP fat32 0M 100M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/sda set 1 esp on
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/sda set 1 boot on
|
||||||
|
sleep 1
|
||||||
|
mkfs.vfat -F32 /dev/sda1 >/dev/null
|
||||||
|
sleep 1
|
||||||
|
fatlabel /dev/sda1 EFI_SYSPART
|
||||||
|
sleep 1
|
||||||
|
# /boot
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 100M 600M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/sda set 2 boot on
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LBOOT /dev/sda2 >/dev/null
|
||||||
|
sleep 1
|
||||||
|
# /
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 600M 1600M
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LROOTFS /dev/sda3 >/dev/null
|
||||||
|
sleep 1
|
||||||
|
# /usr
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 1600M 7600M
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LUSR /dev/sda4 >/dev/null
|
||||||
|
sleep 1
|
||||||
|
# swap1
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 7600M 8100M
|
||||||
|
sleep 1
|
||||||
|
mkswap -f -LSWAP1 /dev/sda5 >/dev/null
|
||||||
|
sleep 1
|
||||||
|
# swap2
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 8100M 8600M
|
||||||
|
sleep 1
|
||||||
|
mkswap -f -LSWAP2 /dev/sda6 >/dev/null
|
||||||
|
sleep 1
|
||||||
|
# LVM
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 8600M 100%
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
|
||||||
|
# Add LVM with a VG for all of the free space.
|
||||||
|
pvcreate /dev/sda7
|
||||||
|
sleep 1
|
||||||
|
vgcreate SSD0 /dev/sda7
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
lvcreate --size 1G --name tmp SSD0
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LTMP /dev/mapper/SSD0-tmp >/dev/null
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
lvcreate --size 10G --name var SSD0
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LVAR /dev/mapper/SSD0-var >/dev/null
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
lvcreate -l 90%FREE --name home SSD0
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LHOME /dev/mapper/SSD0-home >/dev/null
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mkdir -p rootfs/home && mount -LHOME rootfs/home
|
||||||
|
mkdir -p rootfs/var && mount -LVAR rootfs/var
|
||||||
|
mkdir -p rootfs/usr && mount -LUSR rootfs/usr
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
rsync -a root_in_ram/home/ rootfs/home/
|
||||||
|
rsync -a root_in_ram/var/ rootfs/var/
|
||||||
|
rsync -a root_in_ram/usr/ rootfs/usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT>rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 0
|
||||||
|
LABEL=SWAP2 none swap sw 0 0
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot and install lvm2 + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
|
||||||
|
mkdir -p /boot && mount /boot
|
||||||
|
mkdir -p /boot/efi && mount /dev/sda1 /boot/efi
|
||||||
|
mount /tmp
|
||||||
|
chmod 1777 /tmp
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# purge des paquets de Grub et du noyau, pour réinitialiser complètement les config
|
||||||
|
rm -rf /etc/default/grub.d
|
||||||
|
apt purge -y os-prober grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-pc grub2-common
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# purge des kernels
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
sleep 1
|
||||||
|
# réinstallation des paquets
|
||||||
|
apt install -y lvm2 grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64
|
||||||
|
sleep 1
|
||||||
|
apt purge -y os-prober
|
||||||
|
|
||||||
|
# En cas d'erreur à l'install/config de Grub, il faut vérifier si le RAID est OK
|
||||||
|
# cat/proc/mdstat
|
||||||
|
|
||||||
|
grub-install /dev/sda
|
||||||
|
sleep 1
|
||||||
|
apt purge -y os-prober
|
||||||
|
|
||||||
|
# Questions "update-grub":
|
||||||
|
# * Linux command line:
|
||||||
|
# * Linux default command line: quiet
|
||||||
|
# * Force extra installation to the EFI removable media path? Yes
|
||||||
|
# * Update NVRAM variables to automatically boot into Debian? Yes
|
||||||
|
update-grub
|
||||||
|
# dpkg-reconfigure --frontend=noninteractive grub-efi-amd64
|
||||||
|
dpkg-reconfigure grub-efi-amd64
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
|
||||||
|
passwd
|
||||||
|
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
130
OVH-SYS_Soft_RAID10_StandardServer_EFI.sh
Normal file
130
OVH-SYS_Soft_RAID10_StandardServer_EFI.sh
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
|
||||||
|
# /dev/md3 /, /dev/md4 /home.
|
||||||
|
# / doit être sur /dev/md3. Sinon adapter le script !
|
||||||
|
# Enfin un fstab est généré, le raid est configuré, lvm2 est installé, grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
swapoff -a
|
||||||
|
cd /mnt
|
||||||
|
mkdir root_in_ram rootfs home var usr
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
mount /dev/md3 /mnt/rootfs/
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
umount /mnt/rootfs
|
||||||
|
# Change LABEL for /boot, yeah 2 times, IDK why but the first time is not applied Oo
|
||||||
|
mdadm --stop /dev/md4
|
||||||
|
mdadm --stop /dev/md3
|
||||||
|
tune2fs -LBOOT /dev/md2 && tune2fs -LBOOT /dev/md2
|
||||||
|
# Check if label is BOOT
|
||||||
|
wipefs /dev/md2
|
||||||
|
|
||||||
|
mdadm --stop /dev/md2
|
||||||
|
parted -s /dev/sda rm 5
|
||||||
|
parted -s /dev/sda rm 4
|
||||||
|
parted -s /dev/sda rm 3
|
||||||
|
# /
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 1073M 2073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/sda set 3 raid on
|
||||||
|
# /var
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 2073M 12073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/sda set 4 raid on
|
||||||
|
# /usr
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 12073M 17073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/sda set 5 raid on
|
||||||
|
# LVM
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 17073M 100%
|
||||||
|
parted -s /dev/sda set 6 raid on
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
#Copy parts to sd{b,c,d,e,f}
|
||||||
|
for i in sd{b,c,d,e,f}; do
|
||||||
|
sgdisk -R=/dev/$i /dev/sda
|
||||||
|
sgdisk -G /dev/$i
|
||||||
|
partprobe /dev/$i
|
||||||
|
done
|
||||||
|
|
||||||
|
mdadm --assemble /dev/md2 /dev/{sda,sdb,sdc,sdd,sde,sdf}2
|
||||||
|
|
||||||
|
# RAID1 for systems.
|
||||||
|
# Metadata 0.90 as some OVH kernel need it to boot.
|
||||||
|
for part in {3,4,5}; do
|
||||||
|
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=6 /dev/{sda,sdb,sdc,sdd,sde,sdf}${part}
|
||||||
|
done
|
||||||
|
# No need for LVM part to has metadata 0.90.
|
||||||
|
yes | mdadm --create /dev/md6 --level=raid10 --raid-devices=6 /dev/{sda,sdb,sdc,sdd,sde,sdf}6
|
||||||
|
|
||||||
|
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
|
||||||
|
mkfs.ext4 -LVAR /dev/md4 >/dev/null
|
||||||
|
mkfs.ext4 -LUSR /dev/md5 >/dev/null
|
||||||
|
|
||||||
|
# Add LVM with a VG for all of the free space.
|
||||||
|
pvcreate /dev/md6
|
||||||
|
vgcreate vg0 /dev/md6
|
||||||
|
lvcreate --size 1G --name tmp vg0
|
||||||
|
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
|
||||||
|
lvcreate --size 512M --name swap1 vg0
|
||||||
|
lvcreate --size 512M --name swap2 vg0
|
||||||
|
mkswap -f -LSWAP1 /dev/mapper/vg0-swap1
|
||||||
|
mkswap -f -LSWAP2 /dev/mapper/vg0-swap2
|
||||||
|
lvcreate --extents 95%FREE --name home vg0
|
||||||
|
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mount -LHOME home
|
||||||
|
mount -LVAR var
|
||||||
|
mount -LUSR usr
|
||||||
|
rsync -a root_in_ram/home/ home/
|
||||||
|
rsync -a root_in_ram/var/ var/
|
||||||
|
rsync -a root_in_ram/usr/ usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
umount home var usr
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT>rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 0
|
||||||
|
LABEL=SWAP2 none swap sw 0 0
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot and install lvm2 + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
export LC_ALL=C
|
||||||
|
mount /boot
|
||||||
|
mount /dev/sda1 /boot/efi
|
||||||
|
mount /usr
|
||||||
|
mount /var
|
||||||
|
mount /tmp
|
||||||
|
chmod 1777 /tmp
|
||||||
|
apt purge -y grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-pc grub2-common
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
# LVM2 déjà OK sur machines OVH
|
||||||
|
#apt install -y lvm2
|
||||||
|
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
|
||||||
|
apt install -y grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64 dosfstools
|
||||||
|
update-grub2
|
||||||
|
passwd
|
||||||
|
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
124
OVH-SYS_Soft_RAID1_BackupServer.sh
Normal file
124
OVH-SYS_Soft_RAID1_BackupServer.sh
Normal file
|
@ -0,0 +1,124 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
|
||||||
|
# /dev/md2 / 20G, /dev/md3 /home
|
||||||
|
# / doit être sur /dev/md2. Sinon adapter le script !
|
||||||
|
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
swapoff -a
|
||||||
|
cd /mnt
|
||||||
|
mkdir root_in_ram rootfs home var usr log
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
mount /dev/md2 /mnt/rootfs/
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
umount /mnt/rootfs
|
||||||
|
mdadm --stop /dev/md2
|
||||||
|
mdadm --stop /dev/md3
|
||||||
|
# Create a GPT label. (Removes all parts).
|
||||||
|
parted -s /dev/sda mklabel gpt
|
||||||
|
# bios_grub GPT *mandatory*
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary 0M 1M
|
||||||
|
parted -s /dev/sda set 1 bios_grub on
|
||||||
|
# /boot
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 1M 200M
|
||||||
|
parted -s /dev/sda set 2 boot on
|
||||||
|
parted -s /dev/sda set 2 raid on
|
||||||
|
# /
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 200M 1200M
|
||||||
|
parted -s /dev/sda set 3 raid on
|
||||||
|
# /var
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 1200M 11200M
|
||||||
|
parted -s /dev/sda set 4 raid on
|
||||||
|
# /usr
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 11200M 16200M
|
||||||
|
parted -s /dev/sda set 5 raid on
|
||||||
|
# LVM
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 16200M 100%
|
||||||
|
parted -s /dev/sda set 6 raid on
|
||||||
|
|
||||||
|
#Copy parts to sdb
|
||||||
|
sgdisk -R=/dev/sdb /dev/sda
|
||||||
|
sgdisk -G /dev/sdb
|
||||||
|
partprobe /dev/sda
|
||||||
|
partprobe /dev/sdb
|
||||||
|
|
||||||
|
# RAID1 for systems.
|
||||||
|
# Metadata 0.90 as some OVH kernel need it to boot.
|
||||||
|
for part in {2,3,4,5}; do
|
||||||
|
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=2 /dev/{sda,sdb}${part}
|
||||||
|
done
|
||||||
|
# No need for LVM part to has metadata 0.90.
|
||||||
|
yes | mdadm --create /dev/md6 --level=raid1 --raid-devices=2 /dev/{sda,sdb}6
|
||||||
|
|
||||||
|
mkfs.ext4 -LBOOT /dev/md2 >/dev/null
|
||||||
|
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
|
||||||
|
mkfs.ext4 -LVAR /dev/md4 >/dev/null
|
||||||
|
mkfs.ext4 -LUSR /dev/md5 >/dev/null
|
||||||
|
|
||||||
|
# Add LVM with a VG for all of the free space.
|
||||||
|
pvcreate /dev/md6
|
||||||
|
vgcreate vg0 /dev/md6
|
||||||
|
lvcreate --size 1G --name tmp vg0
|
||||||
|
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
|
||||||
|
lvcreate --size 512M --name swap1 vg0
|
||||||
|
lvcreate --size 512M --name swap2 vg0
|
||||||
|
mkswap -f -LSWAP1 /dev/mapper/vg0-swap1
|
||||||
|
mkswap -f -LSWAP2 /dev/mapper/vg0-swap2
|
||||||
|
lvcreate --size 10G --name home vg0
|
||||||
|
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
|
||||||
|
lvcreate --extents 95%FREE --name backup vg0
|
||||||
|
mkfs.btrfs -LBACKUP /dev/vg0/backup
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mount -LHOME home
|
||||||
|
mount -LVAR var
|
||||||
|
mount -LUSR usr
|
||||||
|
rsync -a root_in_ram/home/ home/
|
||||||
|
rsync -a root_in_ram/var/ var/
|
||||||
|
rsync -a root_in_ram/usr/ usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
umount home var usr
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT>rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=BACKUP /backup btrfs defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 0
|
||||||
|
LABEL=SWAP2 none swap sw 0 0
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot and install lvm2 + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
export LC_ALL=C
|
||||||
|
mount /boot
|
||||||
|
mount /usr
|
||||||
|
mount /var
|
||||||
|
mount /tmp
|
||||||
|
chmod 1777 /tmp
|
||||||
|
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
|
||||||
|
# LVM2 déjà OK sur machines OVH
|
||||||
|
#apt install -y lvm2
|
||||||
|
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-amd64
|
||||||
|
passwd
|
||||||
|
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
241
OVH-SYS_Soft_RAID1_StandardServer_EFI_NVMe.sh
Normal file
241
OVH-SYS_Soft_RAID1_StandardServer_EFI_NVMe.sh
Normal file
|
@ -0,0 +1,241 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Script vérifié le 2020-04-03 par jlecour
|
||||||
|
|
||||||
|
# Le script suppose que :
|
||||||
|
# * il y a 2 disques en RAID soft
|
||||||
|
# * le serveur boot en EFI
|
||||||
|
# * on va reconstruire toute la table de partitionnement (GPT) du serveur
|
||||||
|
# * le volume "rootfs" actuel est /dev/md2
|
||||||
|
# Enfin un fstab est généré, le raid est configuré, lvm2 est installé,
|
||||||
|
# grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
# Avant de commencer, consulter les disques pour vérifier les noms
|
||||||
|
lsblk
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# À partir de là, le script *peut* être copié/collé en un bloc
|
||||||
|
# Mais bien vérifier l'état au fur et à mesure
|
||||||
|
|
||||||
|
# utilisez "set -e" si vous copiez/collez des bouts de scripts et souhaitez
|
||||||
|
# un arrêt en cas d'erreur. Si vous le faites dans le shell de votre session SSH
|
||||||
|
# elle s'interrompra !
|
||||||
|
# set -e
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
|
||||||
|
swapoff -a
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
cd /mnt
|
||||||
|
|
||||||
|
mkdir root_in_ram rootfs home var usr srv
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
mount /dev/md2 /mnt/rootfs/
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
umount /mnt/rootfs
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Stop arrays and destroys partitions
|
||||||
|
mdadm --stop /dev/md2
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Create a GPT label. (Removes all parts).
|
||||||
|
parted -s /dev/nvme0n1 mklabel gpt
|
||||||
|
sleep 1
|
||||||
|
# BOOT EFI *mandatory* 100 Mo
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart ESP fat32 0M 100M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 1 esp on
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 1 boot on
|
||||||
|
sleep 1
|
||||||
|
mkfs.vfat -F32 /dev/nvme0n1p1 >/dev/null
|
||||||
|
sleep 1
|
||||||
|
fatlabel /dev/nvme0n1p1 EFI_SYSPART
|
||||||
|
sleep 1
|
||||||
|
# /boot
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 100M 600M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 2 boot on
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 2 raid on
|
||||||
|
sleep 1
|
||||||
|
# /
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 600M 1100M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 3 raid on
|
||||||
|
sleep 1
|
||||||
|
# /usr
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 1100M 7100M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 4 raid on
|
||||||
|
sleep 1
|
||||||
|
# swap
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 7100M 7600M
|
||||||
|
sleep 1
|
||||||
|
# LVM
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 7600M 100%
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 6 raid on
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Copy partitions to second disk
|
||||||
|
sgdisk -R=/dev/nvme1n1 /dev/nvme0n1
|
||||||
|
sleep 1
|
||||||
|
sgdisk -G /dev/nvme1n1
|
||||||
|
sleep 1
|
||||||
|
partprobe /dev/nvme0n1
|
||||||
|
sleep 1
|
||||||
|
partprobe /dev/nvme1n1
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# RAID1 for systems.
|
||||||
|
# Metadata 0.90 as some OVH kernel need it to boot.
|
||||||
|
for part in {2,3,4,6}; do
|
||||||
|
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=2 /dev/{nvme0n1p,nvme1n1p}${part}
|
||||||
|
done
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LBOOT /dev/md2 >/dev/null
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LUSR /dev/md4 >/dev/null
|
||||||
|
sleep 1
|
||||||
|
mkswap -f -LSWAP1 /dev/nvme0n1p5
|
||||||
|
sleep 1
|
||||||
|
mkswap -f -LSWAP2 /dev/nvme1n1p5
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Add LVM with a VG for all of the free space.
|
||||||
|
pvcreate /dev/md6
|
||||||
|
sleep 1
|
||||||
|
vgcreate vg0 /dev/md6
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
lvcreate --size 1G --name tmp vg0
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
lvcreate --size 5G --name var vg0
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LVAR /dev/mapper/vg0-var >/dev/null
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
lvcreate -l 98%FREE --name home vg0
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mkdir -p rootfs/home && mount -LHOME rootfs/home
|
||||||
|
mkdir -p rootfs/var && mount -LVAR rootfs/var
|
||||||
|
mkdir -p rootfs/usr && mount -LUSR rootfs/usr
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
rsync -a root_in_ram/home/ rootfs/home/
|
||||||
|
rsync -a root_in_ram/var/ rootfs/var/
|
||||||
|
rsync -a root_in_ram/usr/ rootfs/usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT>rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 2
|
||||||
|
LABEL=SWAP2 none swap sw 0 2
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot and install lvm2 + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
|
||||||
|
mkdir -p /boot && mount /boot
|
||||||
|
mkdir -p /boot/efi && mount /dev/nvme0n1p1 /boot/efi
|
||||||
|
mount /tmp
|
||||||
|
chmod 1777 /tmp
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
|
||||||
|
# apt install -y debconf-utils apt-utils
|
||||||
|
# sleep 1
|
||||||
|
# cat <<EOT>/tmp/grub-selections
|
||||||
|
# grub-efi-amd64 grub2/force_efi_extra_removable boolean true
|
||||||
|
# grub-efi-amd64 grub2/linux_cmdline_default string quiet
|
||||||
|
# grub-efi-amd64 grub2/update_nvram boolean true
|
||||||
|
# grub-efi-amd64 grub2/linux_cmdline string
|
||||||
|
# grub-pc grub-pc/postrm_purge_boot_grub boolean true
|
||||||
|
# EOT
|
||||||
|
# sleep 1
|
||||||
|
# debconf-set-selections /tmp/grub-selections
|
||||||
|
# sleep 1
|
||||||
|
# dpkg-reconfigure --frontend=noninteractive grub-pc
|
||||||
|
# sleep 1
|
||||||
|
|
||||||
|
# purge des paquets de Grub et du noyau, pour réinitialiser complètement les config
|
||||||
|
rm -rf /etc/default/grub.d
|
||||||
|
apt purge -y os-prober grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-pc grub2-common
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# purge des kernels
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
sleep 1
|
||||||
|
# réinstallation des paquets
|
||||||
|
apt install -y lvm2 grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64
|
||||||
|
sleep 1
|
||||||
|
apt purge -y os-prober
|
||||||
|
|
||||||
|
# En cas d'erreur à l'install/config de Grub, il faut vérifier si le RAID est OK
|
||||||
|
# cat/proc/mdstat
|
||||||
|
|
||||||
|
grub-install /dev/nvme0n1
|
||||||
|
sleep 1
|
||||||
|
grub-install /dev/nvme1n1
|
||||||
|
sleep 1
|
||||||
|
apt purge -y os-prober
|
||||||
|
|
||||||
|
# Questions "update-grub":
|
||||||
|
# * Linux command line:
|
||||||
|
# * Linux default command line: quiet
|
||||||
|
# * Force extra installation to the EFI removable media path? Yes
|
||||||
|
# * Update NVRAM variables to automatically boot into Debian? Yes
|
||||||
|
update-grub
|
||||||
|
# dpkg-reconfigure --frontend=noninteractive grub-efi-amd64
|
||||||
|
dpkg-reconfigure grub-efi-amd64
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# paquets utiles pour evolixisation par Ansible
|
||||||
|
apt install -y sudo python python-apt
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
123
OVH-SYS_Soft_RAID50_BackupServer.sh
Normal file
123
OVH-SYS_Soft_RAID50_BackupServer.sh
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -o errexit
|
||||||
|
set -o pipefail
|
||||||
|
set -o nounset
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# Le script suppose que / est sur /boot est sur /dev/md2, / est sur
|
||||||
|
# /dev/md3 et que /home est sur /dev/md4
|
||||||
|
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel
|
||||||
|
# sont réinstallés.
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
swapoff -a
|
||||||
|
cd /mnt
|
||||||
|
mkdir -p root_in_ram rootfs home var usr log
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
mount /dev/md3 /mnt/rootfs/
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
umount /mnt/rootfs
|
||||||
|
# Change LABEL for /boot, yeah 2 times, IDK why but the first time is not applied Oo
|
||||||
|
mdadm --stop /dev/md4
|
||||||
|
mdadm --stop /dev/md3
|
||||||
|
tune2fs -LBOOT /dev/md2 && tune2fs -LBOOT /dev/md2
|
||||||
|
# Check if label is BOOT
|
||||||
|
wipefs /dev/md2
|
||||||
|
|
||||||
|
|
||||||
|
mdadm --stop /dev/md2
|
||||||
|
parted -s /dev/sda rm 5
|
||||||
|
parted -s /dev/sda rm 4
|
||||||
|
parted -s /dev/sda rm 3
|
||||||
|
# /
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 1073M 2073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/sda set 3 raid on
|
||||||
|
# /var
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 2073M 12073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/sda set 4 raid on
|
||||||
|
# /usr
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 12073M 17073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/sda set 5 raid on
|
||||||
|
# LVM
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 17073M 100%
|
||||||
|
parted -s /dev/sda set 6 raid on
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
partprobe /dev/sda
|
||||||
|
|
||||||
|
for disk in {b,c,d,e,f}; do
|
||||||
|
sgdisk -R=/dev/sd${disk} /dev/sda
|
||||||
|
sgdisk -G /dev/sd${disk}
|
||||||
|
partprobe /dev/sd${disk}
|
||||||
|
done
|
||||||
|
|
||||||
|
mdadm --assemble /dev/md2 /dev/{sda,sdb,sdc,sdd,sde,sdf}2
|
||||||
|
|
||||||
|
# RAID1 for systems.
|
||||||
|
# Metadata 0.90 as some OVH kernel need it to boot.
|
||||||
|
for part in {3,4,5}; do
|
||||||
|
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=6 /dev/{sda,sdb,sdc,sdd,sde,sdf}${part}
|
||||||
|
done
|
||||||
|
|
||||||
|
# No need for LVM part to have metadata 0.90.
|
||||||
|
mdadm --create /dev/md/b6 --level=5 --raid-devices=3 /dev/sd{a,b,c}6
|
||||||
|
mdadm --create /dev/md/c6 --level=5 --raid-devices=3 /dev/sd{d,e,f}6
|
||||||
|
mdadm --create /dev/md/a6 --level=0 --raid-devices=2 /dev/md/b6 /dev/md/c6
|
||||||
|
|
||||||
|
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
|
||||||
|
mkfs.ext4 -LVAR /dev/md4 >/dev/null
|
||||||
|
mkfs.ext4 -LUSR /dev/md5 >/dev/null
|
||||||
|
|
||||||
|
# Add LVM with a VG for all of the free space.
|
||||||
|
pvcreate /dev/md125
|
||||||
|
vgcreate vg0 /dev/md125
|
||||||
|
lvcreate --size 1G --name tmp vg0
|
||||||
|
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
|
||||||
|
lvcreate --size 512M --name swap1 vg0
|
||||||
|
lvcreate --size 512M --name swap2 vg0
|
||||||
|
mkswap -f -LSWAP1 /dev/mapper/vg0-swap1
|
||||||
|
mkswap -f -LSWAP2 /dev/mapper/vg0-swap2
|
||||||
|
lvcreate --size 10G --name home vg0
|
||||||
|
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
|
||||||
|
lvcreate --extents 95%FREE --name backup vg0
|
||||||
|
mkfs.btrfs -LBACKUP /dev/vg0/backup
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mount -LHOME home
|
||||||
|
mount -LVAR var
|
||||||
|
mount -LUSR usr
|
||||||
|
rsync -a root_in_ram/home/ home/
|
||||||
|
rsync -a root_in_ram/var/ var/
|
||||||
|
rsync -a root_in_ram/usr/ usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
umount home var usr
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT>rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
#LABEL=BACKUP /backup btrfs defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 0
|
||||||
|
LABEL=SWAP2 none swap sw 0 0
|
||||||
|
EOT
|
||||||
|
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
# Chroot and install lvm2 + reconfigure grub-pc
|
||||||
|
echo "Evolix partitioning done... Follow instrutions in projet6140(8) then reboot!"
|
253
OVH-SYS_Soft_RAID5_StandardServer_EFI_NVMe.sh
Normal file
253
OVH-SYS_Soft_RAID5_StandardServer_EFI_NVMe.sh
Normal file
|
@ -0,0 +1,253 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Script vérifié le 2020-03-19 par jlecour
|
||||||
|
|
||||||
|
# Le script suppose que :
|
||||||
|
# * il y a 3 disques en RAID soft
|
||||||
|
# * le serveur boot en EFI
|
||||||
|
# * on va reconstruire toute la table de partitionnement (GPT) du serveur
|
||||||
|
# * le volume "rootfs" actuel est /dev/md2
|
||||||
|
# Enfin un fstab est généré, le raid est configuré, lvm2 est installé,
|
||||||
|
# grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
# Avant de commencer, consulter les disques pour vérifier les noms
|
||||||
|
lsblk
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# À partir de là, le script *peut* être copié/collé en un bloc
|
||||||
|
# Mais bien vérifier l'état au fur et à mesure
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
|
||||||
|
swapoff -a
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
cd /mnt
|
||||||
|
|
||||||
|
mkdir root_in_ram rootfs home var usr srv
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
mount /dev/md2 /mnt/rootfs/
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
umount /mnt/rootfs
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Stop arrays and destroys partitions
|
||||||
|
mdadm --stop /dev/md2
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Create a GPT label. (Removes all parts).
|
||||||
|
parted -s /dev/nvme0n1 mklabel gpt
|
||||||
|
sleep 1
|
||||||
|
# BOOT EFI *mandatory* 100 Mo
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart ESP fat32 0M 100M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 1 esp on
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 1 boot on
|
||||||
|
sleep 1
|
||||||
|
mkfs.vfat -F32 /dev/nvme0n1p1 >/dev/null
|
||||||
|
sleep 1
|
||||||
|
fatlabel /dev/nvme0n1p1 EFI_SYSPART
|
||||||
|
sleep 1
|
||||||
|
# /boot
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 100M 600M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 2 boot on
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 2 raid on
|
||||||
|
sleep 1
|
||||||
|
# /
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 600M 1100M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 3 raid on
|
||||||
|
sleep 1
|
||||||
|
# /usr
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 1100M 7100M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 4 raid on
|
||||||
|
sleep 1
|
||||||
|
# swap
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 7100M 7600M
|
||||||
|
sleep 1
|
||||||
|
# LVM
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 7600M 100%
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 6 raid on
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Copy partitions to secund disk
|
||||||
|
sgdisk -R=/dev/nvme1n1 /dev/nvme0n1
|
||||||
|
sleep 1
|
||||||
|
sgdisk -G /dev/nvme1n1
|
||||||
|
sleep 1
|
||||||
|
partprobe /dev/nvme0n1
|
||||||
|
sleep 1
|
||||||
|
partprobe /dev/nvme1n1
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Copy partitions to third disk
|
||||||
|
sgdisk -R=/dev/nvme2n1 /dev/nvme0n1
|
||||||
|
sleep 1
|
||||||
|
sgdisk -G /dev/nvme2n1
|
||||||
|
sleep 1
|
||||||
|
partprobe /dev/nvme0n1
|
||||||
|
sleep 1
|
||||||
|
partprobe /dev/nvme2n1
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# RAID1 for systems.
|
||||||
|
# Metadata 0.90 as some OVH kernel need it to boot.
|
||||||
|
for part in {2,3,4,6}; do
|
||||||
|
mdadm --create /dev/md${part} --metadata=0.90 --level=raid5 --raid-devices=3 /dev/{nvme0n1p,nvme1n1p,nvme2n1p}${part}
|
||||||
|
done
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LBOOT /dev/md2 >/dev/null
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LUSR /dev/md4 >/dev/null
|
||||||
|
sleep 1
|
||||||
|
mkswap -f -LSWAP1 /dev/nvme0n1p5
|
||||||
|
sleep 1
|
||||||
|
mkswap -f -LSWAP2 /dev/nvme1n1p5
|
||||||
|
sleep 1
|
||||||
|
mkswap -f -LSWAP3 /dev/nvme2n1p5
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Add LVM with a VG for all of the free space.
|
||||||
|
pvcreate /dev/md6
|
||||||
|
sleep 1
|
||||||
|
vgcreate vg0 /dev/md6
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
lvcreate --size 1G --name tmp vg0
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
lvcreate --size 5G --name var vg0
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LVAR /dev/mapper/vg0-var >/dev/null
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
lvcreate -l 98%FREE --name home vg0
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mkdir -p rootfs/home && mount -LHOME rootfs/home
|
||||||
|
mkdir -p rootfs/var && mount -LVAR rootfs/var
|
||||||
|
mkdir -p rootfs/usr && mount -LUSR rootfs/usr
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
rsync -a root_in_ram/home/ rootfs/home/
|
||||||
|
rsync -a root_in_ram/var/ rootfs/var/
|
||||||
|
rsync -a root_in_ram/usr/ rootfs/usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT>rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 2
|
||||||
|
LABEL=SWAP2 none swap sw 0 2
|
||||||
|
LABEL=SWAP3 none swap sw 0 2
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot and install lvm2 + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
|
||||||
|
mkdir -p /boot && mount /boot
|
||||||
|
mkdir -p /boot/efi && mount /dev/nvme0n1p1 /boot/efi
|
||||||
|
mount /tmp
|
||||||
|
chmod 1777 /tmp
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
|
||||||
|
# apt install -y debconf-utils apt-utils
|
||||||
|
# sleep 1
|
||||||
|
# cat <<EOT>/tmp/grub-selections
|
||||||
|
# grub-efi-amd64 grub2/force_efi_extra_removable boolean true
|
||||||
|
# grub-efi-amd64 grub2/linux_cmdline_default string quiet
|
||||||
|
# grub-efi-amd64 grub2/update_nvram boolean true
|
||||||
|
# grub-efi-amd64 grub2/linux_cmdline string
|
||||||
|
# grub-pc grub-pc/postrm_purge_boot_grub boolean true
|
||||||
|
# EOT
|
||||||
|
# sleep 1
|
||||||
|
# debconf-set-selections /tmp/grub-selections
|
||||||
|
# sleep 1
|
||||||
|
# dpkg-reconfigure --frontend=noninteractive grub-pc
|
||||||
|
# sleep 1
|
||||||
|
|
||||||
|
# purge des paquets de Grub et du noyau, pour réinitialiser complètement les config
|
||||||
|
rm -rf /etc/default/grub.d
|
||||||
|
apt purge -y os-prober grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-pc grub2-common
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# purge des kernels
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
sleep 1
|
||||||
|
# réinstallation des paquets
|
||||||
|
apt install -y lvm2 grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64
|
||||||
|
sleep 1
|
||||||
|
apt purge -y os-prober
|
||||||
|
|
||||||
|
# En cas d'erreur à l'install/config de Grub, il faut vérifier si le RAID est OK
|
||||||
|
# cat/proc/mdstat
|
||||||
|
|
||||||
|
grub-install /dev/nvme0n1
|
||||||
|
sleep 1
|
||||||
|
grub-install /dev/nvme1n1
|
||||||
|
sleep 1
|
||||||
|
grub-install /dev/nvme2n1
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Questions "update-grub":
|
||||||
|
# * Linux command line:
|
||||||
|
# * Linux default command line: quiet
|
||||||
|
# * Force extra installation to the EFI removable media path? Yes
|
||||||
|
# * Update NVRAM variables to automatically boot into Debian? Yes
|
||||||
|
update-grub
|
||||||
|
# dpkg-reconfigure --frontend=noninteractive grub-efi-amd64
|
||||||
|
dpkg-reconfigure grub-efi-amd64
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# paquets utiles pour evolixisation par Ansible
|
||||||
|
apt install -y sudo python python-apt
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
165
OVH-SYS_Soft_RAID_StandardServer_EFI.sh
Normal file
165
OVH-SYS_Soft_RAID_StandardServer_EFI.sh
Normal file
|
@ -0,0 +1,165 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
|
||||||
|
# /dev/md3 /, /dev/md4 /home.
|
||||||
|
# / doit être sur /dev/md3. Sinon adapter le script !
|
||||||
|
# Enfin un fstab est généré, le raid est configuré, lvm2 est installé, grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
|
||||||
|
swapoff -a
|
||||||
|
|
||||||
|
cd /mnt
|
||||||
|
|
||||||
|
mkdir root_in_ram rootfs home var usr log
|
||||||
|
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
mount /dev/md3 /mnt/rootfs/
|
||||||
|
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
|
||||||
|
umount /mnt/rootfs
|
||||||
|
|
||||||
|
# Change LABEL for /boot, yeah 2 times, IDK why but the first time is not applied Oo
|
||||||
|
mdadm --stop /dev/md4
|
||||||
|
mdadm --stop /dev/md3
|
||||||
|
|
||||||
|
tune2fs -LBOOT /dev/md2 && tune2fs -LBOOT /dev/md2
|
||||||
|
|
||||||
|
parted -s /dev/sda rm 5
|
||||||
|
parted -s /dev/sda rm 4
|
||||||
|
parted -s /dev/sda rm 3
|
||||||
|
# /
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 1073M 2073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/sda set 3 raid on
|
||||||
|
# /var
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 2073M 12073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/sda set 4 raid on
|
||||||
|
# /usr
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 12073M 17073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/sda set 5 raid on
|
||||||
|
# LVM
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 17073M 100%
|
||||||
|
parted -s /dev/sda set 6 raid on
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
parted -s /dev/sdb rm 5
|
||||||
|
parted -s /dev/sdb rm 4
|
||||||
|
parted -s /dev/sdb rm 3
|
||||||
|
# /
|
||||||
|
parted -a optimal -s /dev/sdb mkpart primary ext4 1073M 2073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/sdb set 3 raid on
|
||||||
|
# /var
|
||||||
|
parted -a minimal -s /dev/sdb mkpart primary ext4 2073M 12073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/sdb set 4 raid on
|
||||||
|
# /usr
|
||||||
|
parted -a minimal -s /dev/sdb mkpart primary ext4 12073M 17073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/sdb set 5 raid on
|
||||||
|
# LVM
|
||||||
|
parted -a minimal -s /dev/sdb mkpart primary ext4 17073M 100%
|
||||||
|
parted -s /dev/sdb set 6 raid on
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
# RAID1 for systems.
|
||||||
|
# Metadata 0.90 as some OVH kernel need it to boot.
|
||||||
|
for part in {3,4,5}; do
|
||||||
|
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=2 /dev/{sda,sdb}${part}
|
||||||
|
done
|
||||||
|
# No need for LVM part to has metadata 0.90.
|
||||||
|
yes | mdadm --create /dev/md6 --level=raid1 --raid-devices=2 /dev/{sda,sdb}6
|
||||||
|
|
||||||
|
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
|
||||||
|
mkfs.ext4 -LVAR /dev/md4 >/dev/null
|
||||||
|
mkfs.ext4 -LUSR /dev/md5 >/dev/null
|
||||||
|
|
||||||
|
# Add LVM with a VG for all of the free space.
|
||||||
|
pvcreate /dev/md6
|
||||||
|
vgcreate vg0 /dev/md6
|
||||||
|
|
||||||
|
lvcreate --size 1G --name tmp vg0
|
||||||
|
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
|
||||||
|
|
||||||
|
lvcreate --size 512M --name swap1 vg0
|
||||||
|
lvcreate --size 512M --name swap2 vg0
|
||||||
|
mkswap -f -LSWAP1 /dev/mapper/vg0-swap1
|
||||||
|
mkswap -f -LSWAP2 /dev/mapper/vg0-swap2
|
||||||
|
|
||||||
|
lvcreate --size 20G --name log vg0
|
||||||
|
mkfs.ext4 -LLOG /dev/mapper/vg0-log >/dev/null
|
||||||
|
|
||||||
|
lvcreate --extents 95%FREE --name home vg0
|
||||||
|
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mount -LHOME home
|
||||||
|
mount -LVAR var
|
||||||
|
mkdir var/log
|
||||||
|
mount -LLOG var/log
|
||||||
|
mount -LUSR usr
|
||||||
|
|
||||||
|
rsync -a root_in_ram/home/ home/
|
||||||
|
rsync -a root_in_ram/var/ var/
|
||||||
|
rsync -a root_in_ram/usr/ usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
|
||||||
|
umount home var/log var usr
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT>rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=LOG /var/log ext4 defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 0
|
||||||
|
LABEL=SWAP2 none swap sw 0 0
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot and install lvm2 + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
|
||||||
|
mount /boot
|
||||||
|
mount /dev/sda1 /boot/efi
|
||||||
|
mount /usr
|
||||||
|
mount /var
|
||||||
|
mount /tmp
|
||||||
|
|
||||||
|
chmod 1777 /tmp
|
||||||
|
|
||||||
|
apt purge -y grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-pc grub2-common
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
|
||||||
|
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
|
||||||
|
|
||||||
|
apt install -y lvm2 grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64 dosfstools
|
||||||
|
|
||||||
|
update-grub2
|
||||||
|
|
||||||
|
passwd
|
||||||
|
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
128
OVH-SYS_Soft_RAID_StandardServer_EFI_NVMe.sh
Normal file
128
OVH-SYS_Soft_RAID_StandardServer_EFI_NVMe.sh
Normal file
|
@ -0,0 +1,128 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
|
||||||
|
# /dev/md3 /, /dev/md4 /home.
|
||||||
|
# / doit être sur /dev/md3. Sinon adapter le script !
|
||||||
|
# Enfin un fstab est généré, le raid est configuré, lvm2 est installé, grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
swapoff -a
|
||||||
|
cd /mnt
|
||||||
|
mkdir root_in_ram rootfs home var usr srv
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
mount /dev/md3 /mnt/rootfs/
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
umount /mnt/rootfs
|
||||||
|
# Stop arrays and destroys partitions
|
||||||
|
mdadm --stop /dev/md4 && wipefs -a /dev/nvme0n1p4 && wipefs -a /dev/nvme1n1p4
|
||||||
|
mdadm --stop /dev/md3 && wipefs -a /dev/nvme0n1p3 && wipefs -a /dev/nvme1n1p3
|
||||||
|
# Change LABEL for /boot, yeah 2 times, IDK why but the first time is not applied Oo
|
||||||
|
tune2fs -LBOOT /dev/md2 && sleep 5 && tune2fs -LBOOT /dev/md2
|
||||||
|
parted -s /dev/nvme0n1 rm 5
|
||||||
|
parted -s /dev/nvme0n1 rm 4
|
||||||
|
parted -s /dev/nvme0n1 rm 3
|
||||||
|
# /
|
||||||
|
parted -a optimal -s /dev/nvme0n1 mkpart primary ext4 1073M 2073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/nvme0n1 set 3 raid on
|
||||||
|
# /var
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 2073M 12073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/nvme0n1 set 4 raid on
|
||||||
|
# /usr
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 12073M 17073M
|
||||||
|
sleep 2
|
||||||
|
parted -s /dev/nvme0n1 set 5 raid on
|
||||||
|
# LVM
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 17073M 100%
|
||||||
|
parted -s /dev/nvme0n1 set 6 raid on
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
#Copy parts to sdb
|
||||||
|
sgdisk -R=/dev/nvme1n1 /dev/nvme0n1
|
||||||
|
sgdisk -G /dev/nvme1n1
|
||||||
|
partprobe /dev/nvme0n1
|
||||||
|
partprobe /dev/nvme1n1
|
||||||
|
|
||||||
|
# RAID1 for systems.
|
||||||
|
# Metadata 0.90 as some OVH kernel need it to boot.
|
||||||
|
for part in {3,4,5}; do
|
||||||
|
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=2 /dev/{nvme0n1p,nvme1n1p}${part}
|
||||||
|
done
|
||||||
|
# No need for LVM part to has metadata 0.90.
|
||||||
|
yes | mdadm --create /dev/md6 --level=raid1 --raid-devices=2 /dev/{nvme0n1p,nvme1n1p}6
|
||||||
|
|
||||||
|
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
|
||||||
|
mkfs.ext4 -LVAR /dev/md4 >/dev/null
|
||||||
|
mkfs.ext4 -LUSR /dev/md5 >/dev/null
|
||||||
|
|
||||||
|
# Add LVM with a VG for all of the free space.
|
||||||
|
pvcreate /dev/md6
|
||||||
|
vgcreate vg0 /dev/md6
|
||||||
|
lvcreate --size 1G --name tmp vg0
|
||||||
|
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
|
||||||
|
lvcreate --size 512M --name swap1 vg0
|
||||||
|
lvcreate --size 512M --name swap2 vg0
|
||||||
|
mkswap -f -LSWAP1 /dev/mapper/vg0-swap1
|
||||||
|
mkswap -f -LSWAP2 /dev/mapper/vg0-swap2
|
||||||
|
lvcreate --size 20G --name srv vg0
|
||||||
|
mkfs.ext4 -LSRV /dev/mapper/vg0-srv >/dev/null
|
||||||
|
lvcreate --size 100G --name home vg0
|
||||||
|
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mount -LHOME home
|
||||||
|
mount -LVAR var
|
||||||
|
mount -LUSR usr
|
||||||
|
rsync -a root_in_ram/home/ home/
|
||||||
|
rsync -a root_in_ram/var/ var/
|
||||||
|
rsync -a root_in_ram/usr/ usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
umount home var usr
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT>rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=SRV /srv ext4 defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 0
|
||||||
|
LABEL=SWAP2 none swap sw 0 0
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot and install lvm2 + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
export LC_ALL=C
|
||||||
|
mount /boot
|
||||||
|
mount /dev/nvme0n1p1 /boot/efi
|
||||||
|
mount /usr
|
||||||
|
mount /var
|
||||||
|
mount /tmp
|
||||||
|
chmod 1777 /tmp
|
||||||
|
apt purge -y grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub-pc grub2-common
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
# LVM2 déjà OK sur machines OVH
|
||||||
|
#apt install -y lvm2
|
||||||
|
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
|
||||||
|
apt install -y grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64 dosfstools
|
||||||
|
update-grub2
|
||||||
|
test -f /boot/grub/grub.cfg || echo "Uh? update-grub2 did not create grub.cfg... You need to check the issue!"
|
||||||
|
passwd
|
||||||
|
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
102
Online_Hard_RAID_KVMServer.sh
Executable file
102
Online_Hard_RAID_KVMServer.sh
Executable file
|
@ -0,0 +1,102 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Le script suppose que vous avez installé votre dedibox avec le partionnement par défaut.
|
||||||
|
# /boot sda1 2OOM, / sda2, swap 1G sda3.
|
||||||
|
# / doit être sur sda2. Sinon adapter le script !
|
||||||
|
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
# Dirty hack for rescue Ubuntu 16.04
|
||||||
|
touch /boot/vmlinuz-pouet
|
||||||
|
touch /boot/initrd.img-pouet
|
||||||
|
apt install lvm2
|
||||||
|
|
||||||
|
swapoff -a
|
||||||
|
cd /mnt
|
||||||
|
mkdir root_in_ram rootfs home var usr log
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
mount /dev/sda2 /mnt/rootfs/
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
umount /mnt/rootfs
|
||||||
|
# Create a GPT label. (Removes all parts).
|
||||||
|
parted -s /dev/sda mklabel gpt
|
||||||
|
# bios_grub GPT *mandatory*
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary 0M 1M
|
||||||
|
parted -s /dev/sda set 1 bios_grub on
|
||||||
|
# /boot
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 1M 200M
|
||||||
|
parted -s /dev/sda set 2 boot on
|
||||||
|
mkfs.ext4 -LBOOT /dev/sda2 1>/dev/null
|
||||||
|
# /
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 200M 1200M
|
||||||
|
mkfs.ext4 -LROOTFS /dev/sda3 1>/dev/null
|
||||||
|
# /var
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 1200M 11200M
|
||||||
|
mkfs.ext4 -LVAR /dev/sda4 1>/dev/null
|
||||||
|
# /usr
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 11200M 16200M
|
||||||
|
mkfs.ext4 -LUSR /dev/sda5 1>/dev/null
|
||||||
|
# LVM
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 16200M 100%
|
||||||
|
parted -s /dev/sda set 6 lvm on
|
||||||
|
# Add LVM with a VG for all of the free space.
|
||||||
|
pvcreate /dev/sda6
|
||||||
|
vgcreate vg0 /dev/sda6
|
||||||
|
lvcreate --size 1G --name tmp vg0
|
||||||
|
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp 1>/dev/null
|
||||||
|
lvcreate --size 10G --name swap1 vg0
|
||||||
|
lvcreate --size 10G --name swap2 vg0
|
||||||
|
mkswap -f -LSWAP1 /dev/mapper/vg0-swap1
|
||||||
|
mkswap -f -LSWAP2 /dev/mapper/vg0-swap2
|
||||||
|
lvcreate --size 20G --name home vg0
|
||||||
|
mkfs.ext4 -LHOME /dev/mapper/vg0-home 1>/dev/null
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mount -LHOME home
|
||||||
|
mount -LVAR var
|
||||||
|
mount -LUSR usr
|
||||||
|
rsync -a root_in_ram/home/ home/
|
||||||
|
rsync -a root_in_ram/var/ var/
|
||||||
|
rsync -a root_in_ram/usr/ usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
umount home var usr
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT>rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 0
|
||||||
|
LABEL=SWAP2 none swap sw 0 0
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot and install lvm2 + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
export LC_ALL=C
|
||||||
|
mount /boot
|
||||||
|
mount /usr
|
||||||
|
mount /var
|
||||||
|
mount /tmp
|
||||||
|
chmod 1777 /tmp
|
||||||
|
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
apt install -y lvm2
|
||||||
|
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-amd64
|
||||||
|
passwd
|
||||||
|
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
158
Online_Hard_RAID_StandardServer.sh
Normal file
158
Online_Hard_RAID_StandardServer.sh
Normal file
|
@ -0,0 +1,158 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Ce script est une adaptation par jlecour du script de bserie
|
||||||
|
# Voici les adaptations :
|
||||||
|
# - /boot fait 500M
|
||||||
|
# - pas de LVM
|
||||||
|
# - on n'installe que le paquet virtuel linux-image-amd64 (pas le paquet réel)
|
||||||
|
|
||||||
|
echo "ce script ne doit pas être joué automatiquement"
|
||||||
|
echo "les commandes sont à jouer manuellement, par copier/coller"
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
# Le script suppose que vous avez installé votre dedibox avec le partionnement par défaut.
|
||||||
|
# /boot sda1 2OOM, / sda2 2G, swap 1G sda3.
|
||||||
|
# / doit être sur sda2. Sinon adapter le script !
|
||||||
|
# Enfin un fstab est généré, grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
ROOT_PART=/dev/sda2
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
# Dirty hack for rescue Ubuntu 16.04
|
||||||
|
touch /boot/vmlinuz-pouet
|
||||||
|
touch /boot/initrd.img-pouet
|
||||||
|
|
||||||
|
# disable swap
|
||||||
|
swapoff -a
|
||||||
|
|
||||||
|
cd /mnt
|
||||||
|
|
||||||
|
# mount /
|
||||||
|
mkdir root_in_ram rootfs home var usr log
|
||||||
|
mount $ROOT_PART /mnt/rootfs/
|
||||||
|
|
||||||
|
# copy all the filesystem in ram
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
|
||||||
|
# unount rootfs to recreate partitions
|
||||||
|
umount /mnt/rootfs
|
||||||
|
|
||||||
|
# NOTE: sleep 1 second between each command
|
||||||
|
# to be able to copy/paste the whole bloc
|
||||||
|
|
||||||
|
# Create a GPT label. (Removes all parts).
|
||||||
|
parted -s /dev/sda mklabel gpt
|
||||||
|
sleep 1
|
||||||
|
# bios_grub GPT *mandatory*
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary 0M 1M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/sda set 1 bios_grub on
|
||||||
|
sleep 1
|
||||||
|
# /boot
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 1M 500M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/sda set 2 boot on
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LBOOT /dev/sda2 1>/dev/null
|
||||||
|
sleep 1
|
||||||
|
# /
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 500M 1500M
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LROOTFS /dev/sda3 1>/dev/null
|
||||||
|
sleep 1
|
||||||
|
# /var
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 1500M 11500M
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LVAR /dev/sda4 1>/dev/null
|
||||||
|
sleep 1
|
||||||
|
# /usr
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 11500M 16500M
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LUSR /dev/sda5 1>/dev/null
|
||||||
|
sleep 1
|
||||||
|
# /tmp
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 16500M 17500M
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LTMP /dev/sda6 1>/dev/null
|
||||||
|
sleep 1
|
||||||
|
# swap1
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary linux-swap 17500M 18000M
|
||||||
|
sleep 1
|
||||||
|
mkswap -f -LSWAP1 /dev/sda7 1>/dev/null
|
||||||
|
sleep 1
|
||||||
|
# swap2
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary linux-swap 18000M 18500M
|
||||||
|
sleep 1
|
||||||
|
mkswap -f -LSWAP2 /dev/sda8 1>/dev/null
|
||||||
|
sleep 1
|
||||||
|
# /home
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 18500M 100%
|
||||||
|
sleep 1
|
||||||
|
mkfs.ext4 -LHOME /dev/sda9 1>/dev/null
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# mount partitions
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mount -LHOME home
|
||||||
|
mount -LVAR var
|
||||||
|
mount -LUSR usr
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
rsync -a root_in_ram/home/ home/
|
||||||
|
rsync -a root_in_ram/var/ var/
|
||||||
|
rsync -a root_in_ram/usr/ usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
|
||||||
|
umount home var usr
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT > rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 0
|
||||||
|
LABEL=SWAP2 none swap sw 0 0
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
mount /boot
|
||||||
|
mount /usr
|
||||||
|
mount /var
|
||||||
|
mount /tmp
|
||||||
|
chmod 1777 /tmp
|
||||||
|
|
||||||
|
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-amd64
|
||||||
|
apt install -y sudo python python-apt
|
||||||
|
|
||||||
|
# ajouter l'utilisateur dans le groupe sudo
|
||||||
|
# ça facilite le passage d'Ansible (sans root)
|
||||||
|
usermod -a -G sudo jlecour
|
||||||
|
|
||||||
|
# change root password
|
||||||
|
passwd
|
||||||
|
# permit root login via SSH with password
|
||||||
|
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
|
||||||
|
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
126
Online_Soft_RAID1_BackupServer.sh
Normal file
126
Online_Soft_RAID1_BackupServer.sh
Normal file
|
@ -0,0 +1,126 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Le script suppose que vous avez installé votre serveur avec le partionnement par défaut.
|
||||||
|
# /dev/md126 / 20G, /dev/md125 /data
|
||||||
|
# / doit être sur /dev/md126. Sinon adapter le script !
|
||||||
|
# Enfin un fstab est généré, lvm2 est installé, grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
swapoff -a
|
||||||
|
cd /mnt
|
||||||
|
mkdir root_in_ram rootfs home var usr log
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
mount /dev/md126 /mnt/rootfs/
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
umount /mnt/rootfs
|
||||||
|
mdadm --stop /dev/md{125..127}
|
||||||
|
# Create a GPT label. (Removes all parts).
|
||||||
|
parted -s /dev/sda mklabel gpt
|
||||||
|
# bios_grub GPT *mandatory*
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary 0M 1M
|
||||||
|
parted -s /dev/sda set 1 bios_grub on
|
||||||
|
# /boot
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 1M 200M
|
||||||
|
parted -s /dev/sda set 2 boot on
|
||||||
|
parted -s /dev/sda set 2 raid on
|
||||||
|
# /
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 200M 1200M
|
||||||
|
parted -s /dev/sda set 3 raid on
|
||||||
|
# /var
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 1200M 11200M
|
||||||
|
parted -s /dev/sda set 4 raid on
|
||||||
|
# /usr
|
||||||
|
parted -a optimal -s /dev/sda mkpart primary ext4 11200M 16200M
|
||||||
|
parted -s /dev/sda set 5 raid on
|
||||||
|
# LVM
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 16200M 100%
|
||||||
|
parted -s /dev/sda set 6 raid on
|
||||||
|
|
||||||
|
#Copy parts to sdb
|
||||||
|
sgdisk -R=/dev/sdb /dev/sda
|
||||||
|
sgdisk -G /dev/sdb
|
||||||
|
partprobe /dev/sda
|
||||||
|
partprobe /dev/sdb
|
||||||
|
|
||||||
|
# RAID1 for systems.
|
||||||
|
# Metadata 0.90 as some OVH kernel need it to boot.
|
||||||
|
for part in {2,3,4,5}; do
|
||||||
|
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=2 /dev/{sda,sdb}${part}
|
||||||
|
done
|
||||||
|
# No need for LVM part to has metadata 0.90.
|
||||||
|
yes | mdadm --create /dev/md6 --level=raid1 --raid-devices=2 /dev/{sda,sdb}6
|
||||||
|
|
||||||
|
mkfs.ext4 -LBOOT /dev/md2 >/dev/null
|
||||||
|
mkfs.ext4 -LROOTFS /dev/md3 >/dev/null
|
||||||
|
mkfs.ext4 -LVAR /dev/md4 >/dev/null
|
||||||
|
mkfs.ext4 -LUSR /dev/md5 >/dev/null
|
||||||
|
|
||||||
|
# Add LVM with a VG for all of the free space.
|
||||||
|
pvcreate /dev/md6
|
||||||
|
vgcreate vg0 /dev/md6
|
||||||
|
lvcreate --size 1G --name tmp vg0
|
||||||
|
mkfs.ext4 -LTMP /dev/mapper/vg0-tmp >/dev/null
|
||||||
|
lvcreate --size 512M --name swap1 vg0
|
||||||
|
lvcreate --size 512M --name swap2 vg0
|
||||||
|
mkswap -f -LSWAP1 /dev/mapper/vg0-swap1
|
||||||
|
mkswap -f -LSWAP2 /dev/mapper/vg0-swap2
|
||||||
|
lvcreate --size 10G --name home vg0
|
||||||
|
mkfs.ext4 -LHOME /dev/mapper/vg0-home >/dev/null
|
||||||
|
lvcreate --extents 95%FREE --name backup_crypted vg0
|
||||||
|
cryptsetup luksFormat /dev/vg0/backup_crypted
|
||||||
|
cryptsetup open --type luks /dev/vg0/backup_crypted backup
|
||||||
|
mkfs.btrfs -LBACKUP /dev/mapper/backup
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mount -LHOME home
|
||||||
|
mount -LVAR var
|
||||||
|
mount -LUSR usr
|
||||||
|
rsync -a root_in_ram/home/ home/
|
||||||
|
rsync -a root_in_ram/var/ var/
|
||||||
|
rsync -a root_in_ram/usr/ usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
umount home var usr
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT>rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
# Need to open the LUKS container!
|
||||||
|
# Evolix password
|
||||||
|
# cryptsetup open --type luks /dev/vg0/backup_crypted backup
|
||||||
|
#/dev/mapper/backup /backup btrfs defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 0
|
||||||
|
LABEL=SWAP2 none swap sw 0 0
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot and install lvm2 + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
export LC_ALL=C
|
||||||
|
mount /boot
|
||||||
|
mount /usr
|
||||||
|
mount /var
|
||||||
|
mount /tmp
|
||||||
|
chmod 1777 /tmp
|
||||||
|
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
|
||||||
|
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-4.9.0-3-amd64 linux-image-amd64 cryptsetup lvm2
|
||||||
|
passwd
|
||||||
|
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
199
Online_Soft_RAID5_NVMEServer.sh
Normal file
199
Online_Soft_RAID5_NVMEServer.sh
Normal file
|
@ -0,0 +1,199 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "ce script ne doit pas être joué automatiquement"
|
||||||
|
echo "les commandes sont à jouer manuellement, par copier/coller"
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
# Le script suppose que vous avez installé votre dedibox avec le partionnement par défaut.
|
||||||
|
# UEFI p1 fait 6OOM, /boot p2 fait 600M, SWAP p3, / p4.
|
||||||
|
# / doit être sur md127. Sinon adapter le script !
|
||||||
|
# Enfin un fstab est généré, grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
ROOT_PART=/dev/md127
|
||||||
|
export LC_ALL=C
|
||||||
|
# disable swap
|
||||||
|
swapoff -a
|
||||||
|
cd /mnt
|
||||||
|
|
||||||
|
# mount /
|
||||||
|
mkdir root_in_ram rootfs home var usr log
|
||||||
|
mount $ROOT_PART /mnt/rootfs/
|
||||||
|
|
||||||
|
# copy all the filesystem in ram
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
|
||||||
|
# unount rootfs to recreate partitions
|
||||||
|
umount /mnt/rootfs
|
||||||
|
|
||||||
|
# stop soft raid
|
||||||
|
mdadm --stop /dev/md{125..127}
|
||||||
|
# Wipe all signatures
|
||||||
|
for i in /dev/nvme?n?p?; do wipefs -a $i; done
|
||||||
|
|
||||||
|
# NOTE: sleep 1 second between each command
|
||||||
|
# to be able to copy/paste the whole bloc
|
||||||
|
|
||||||
|
# Create a GPT label. (Removes all parts).
|
||||||
|
parted -s /dev/nvme0n1 mklabel gpt
|
||||||
|
sleep 1
|
||||||
|
# boot,esp GPT/UEFI *mandatory*
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary 0M 600M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 1 boot on
|
||||||
|
parted -s /dev/nvme0n1 set 1 esp on
|
||||||
|
sleep 1
|
||||||
|
# /boot
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 600M 1200M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 2 raid on
|
||||||
|
sleep 1
|
||||||
|
# /
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 1200M 2200M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 3 raid on
|
||||||
|
sleep 1
|
||||||
|
# /var
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 2200M 12200M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 4 raid on
|
||||||
|
sleep 1
|
||||||
|
# /usr
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 12200M 17200M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 5 raid on
|
||||||
|
sleep 1
|
||||||
|
# /tmp
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 17200M 18200M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 6 raid on
|
||||||
|
sleep 1
|
||||||
|
# swap1
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary linux-swap 18200M 19200M
|
||||||
|
sleep 1
|
||||||
|
# /home
|
||||||
|
parted -a minimal -s /dev/nvme0n1 mkpart primary ext4 19200M 100%
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/nvme0n1 set 8 raid on
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
#Copy parts to nvme1n1
|
||||||
|
for i in /dev/nvme[123]n1; do
|
||||||
|
sgdisk -R=${i} /dev/nvme0n1
|
||||||
|
sgdisk -G $i
|
||||||
|
partprobe $i
|
||||||
|
done
|
||||||
|
|
||||||
|
# RAID1 for systems.
|
||||||
|
for part in {2,3,4,5,6}; do
|
||||||
|
mdadm --create /dev/md${part} --metadata=1.2 --level=raid1 --raid-devices=4 \
|
||||||
|
/dev/{nvme0n1p${part},nvme1n1p${part},nvme2n1p${part},nvme3n1p${part}}
|
||||||
|
done
|
||||||
|
|
||||||
|
# RAID5 for data.
|
||||||
|
mdadm --create /dev/md8 --metadata=1.2 --level=raid5 --raid-devices=4 \
|
||||||
|
/dev/{nvme0n1p8,nvme1n1p8,nvme2n1p8,nvme3n1p8}
|
||||||
|
|
||||||
|
# Make filesystems
|
||||||
|
l=1
|
||||||
|
for i in /dev/nvme?n1p[7]; do
|
||||||
|
mkswap -f -LSWAP${l} $i 1>/dev/null
|
||||||
|
l=$((l+1))
|
||||||
|
done
|
||||||
|
|
||||||
|
apt install dosfstools
|
||||||
|
for i in /dev/nvme?n1p[1]; do
|
||||||
|
mkfs.vfat $i 1>/dev/null
|
||||||
|
done
|
||||||
|
|
||||||
|
mkfs.ext4 -LBOOT /dev/md2 1>/dev/null
|
||||||
|
mkfs.ext4 -LROOTFS /dev/md3 1>/dev/null
|
||||||
|
mkfs.ext4 -LVAR /dev/md4 1>/dev/null
|
||||||
|
mkfs.ext4 -LUSR /dev/md5 1>/dev/null
|
||||||
|
mkfs.ext4 -LTMP /dev/md6 1>/dev/null
|
||||||
|
mkfs.ext4 -LHOME /dev/md9 1>/dev/null
|
||||||
|
|
||||||
|
# mount partitions
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mount -LHOME home
|
||||||
|
mount -LVAR var
|
||||||
|
mount -LUSR usr
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
rsync -a root_in_ram/home/ home/
|
||||||
|
rsync -a root_in_ram/var/ var/
|
||||||
|
rsync -a root_in_ram/usr/ usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
|
||||||
|
umount home var usr
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT > rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
/dev/nvme0n1p1 /boot/efi vfat defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 0
|
||||||
|
LABEL=SWAP2 none swap sw 0 0
|
||||||
|
LABEL=SWAP3 none swap sw 0 0
|
||||||
|
LABEL=SWAP4 none swap sw 0 0
|
||||||
|
LABEL=SWAP5 none swap sw 0 0
|
||||||
|
LABEL=SWAP6 none swap sw 0 0
|
||||||
|
LABEL=SWAP7 none swap sw 0 0
|
||||||
|
LABEL=SWAP8 none swap sw 0 0
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
mount /boot
|
||||||
|
mount /boot/efi
|
||||||
|
mount /usr
|
||||||
|
mount /var
|
||||||
|
mount /tmp
|
||||||
|
chmod 1777 /tmp
|
||||||
|
|
||||||
|
# generate RAID configuration
|
||||||
|
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
|
||||||
|
|
||||||
|
# purge des paquets de Grub et du noyau, pour réinitialiser complètement les config
|
||||||
|
apt purge -y grub-common grub-efi-amd64 grub-efi-amd64-bin grub2-common
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
# réinstallation des paquets
|
||||||
|
# Note: bien installer Grub sur les 4 disques nvme[0123]n1
|
||||||
|
apt install -y grub-common grub-efi grub-efi-amd64 grub-efi-amd64-bin grub2-common linux-image-amd64
|
||||||
|
grub-install /dev/nvme0n1
|
||||||
|
update-grub
|
||||||
|
dpkg-reconfigure grub-efi-amd64
|
||||||
|
|
||||||
|
|
||||||
|
# paquets utiles pour evolixisation par Ansible
|
||||||
|
apt install -y sudo python python-apt
|
||||||
|
# ajouter l'utilisateur dans le groupe sudo
|
||||||
|
# ça facilite le passage d'Ansible (sans root)
|
||||||
|
usermod -a -G sudo jlecour
|
||||||
|
passwd jlecour
|
||||||
|
|
||||||
|
# change root password
|
||||||
|
passwd
|
||||||
|
# permit root login via SSH with password
|
||||||
|
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
|
||||||
|
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
194
Online_Soft_RAIDx_StandardServer.sh
Normal file
194
Online_Soft_RAIDx_StandardServer.sh
Normal file
|
@ -0,0 +1,194 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Ce script est une adaptation par jlecour du script de bserie
|
||||||
|
# Voici les adaptations :
|
||||||
|
# - /boot fait 500M
|
||||||
|
# - pas de LVM
|
||||||
|
# - on n'installe que le paquet virtuel linux-image-amd64 (pas le paquet réel)
|
||||||
|
|
||||||
|
echo "ce script ne doit pas être joué automatiquement"
|
||||||
|
echo "les commandes sont à jouer manuellement, par copier/coller"
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
# Le script suppose que vous avez installé votre dedibox avec le partionnement par défaut.
|
||||||
|
# /boot sda1 2OOM, / sda2 2G, swap 1G sda3.
|
||||||
|
# / doit être sur sda2. Sinon adapter le script !
|
||||||
|
# Enfin un fstab est généré, grub et le kernel sont réinstallés.
|
||||||
|
|
||||||
|
ROOT_PART=/dev/md127
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
# Dirty hack for rescue Ubuntu 16.04
|
||||||
|
touch /boot/vmlinuz-pouet
|
||||||
|
touch /boot/initrd.img-pouet
|
||||||
|
|
||||||
|
# disable swap
|
||||||
|
swapoff -a
|
||||||
|
|
||||||
|
cd /mnt
|
||||||
|
|
||||||
|
# mount /
|
||||||
|
mkdir root_in_ram rootfs home var usr log
|
||||||
|
mount $ROOT_PART /mnt/rootfs/
|
||||||
|
|
||||||
|
# copy all the filesystem in ram
|
||||||
|
mount -t tmpfs none /mnt/root_in_ram -o size=90%
|
||||||
|
rsync -a /mnt/rootfs/ /mnt/root_in_ram/
|
||||||
|
|
||||||
|
# unount rootfs to recreate partitions
|
||||||
|
umount /mnt/rootfs
|
||||||
|
|
||||||
|
# stop soft raid
|
||||||
|
mdadm --stop /dev/md{125..127}
|
||||||
|
|
||||||
|
# NOTE : you need wipe all partition to be linked
|
||||||
|
# with /dev/md12*
|
||||||
|
# example : wipefs -a /dev/sda1
|
||||||
|
|
||||||
|
# NOTE: sleep 1 second between each command
|
||||||
|
# to be able to copy/paste the whole bloc
|
||||||
|
|
||||||
|
# Create a GPT label. (Removes all parts).
|
||||||
|
parted -s /dev/sda mklabel gpt
|
||||||
|
sleep 1
|
||||||
|
# bios_grub GPT *mandatory*
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary 0M 1M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/sda set 1 bios_grub on
|
||||||
|
sleep 1
|
||||||
|
# /boot
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 1M 500M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/sda set 2 boot on
|
||||||
|
parted -s /dev/sda set 2 raid on
|
||||||
|
sleep 1
|
||||||
|
# /
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 500M 1500M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/sda set 3 raid on
|
||||||
|
sleep 1
|
||||||
|
# /var
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 1500M 11500M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/sda set 4 raid on
|
||||||
|
sleep 1
|
||||||
|
# /usr
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 11500M 16500M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/sda set 5 raid on
|
||||||
|
sleep 1
|
||||||
|
# /tmp
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 16500M 17500M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/sda set 6 raid on
|
||||||
|
sleep 1
|
||||||
|
# swap1
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary linux-swap 17500M 18000M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/sda set 7 raid on
|
||||||
|
sleep 1
|
||||||
|
# swap2
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary linux-swap 18000M 18500M
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/sda set 8 raid on
|
||||||
|
sleep 1
|
||||||
|
# /home
|
||||||
|
parted -a minimal -s /dev/sda mkpart primary ext4 18500M 100%
|
||||||
|
sleep 1
|
||||||
|
parted -s /dev/sda set 9 raid on
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
#Copy parts to sdb
|
||||||
|
sgdisk -R=/dev/sdb /dev/sda
|
||||||
|
sgdisk -G /dev/sdb
|
||||||
|
partprobe /dev/sda
|
||||||
|
partprobe /dev/sdb
|
||||||
|
|
||||||
|
# RAID1 for systems.
|
||||||
|
# Metadata 0.90 as some OVH kernel need it to boot.
|
||||||
|
for part in {2,3,4,5,6,7,8,9}; do
|
||||||
|
mdadm --create /dev/md${part} --metadata=0.90 --level=raid1 --raid-devices=2 /dev/{sda,sdb}${part}
|
||||||
|
done
|
||||||
|
|
||||||
|
# Make filesystems
|
||||||
|
mkfs.ext4 -LBOOT /dev/md2 1>/dev/null
|
||||||
|
mkfs.ext4 -LROOTFS /dev/md3 1>/dev/null
|
||||||
|
mkfs.ext4 -LVAR /dev/md4 1>/dev/null
|
||||||
|
mkfs.ext4 -LUSR /dev/md5 1>/dev/null
|
||||||
|
mkfs.ext4 -LTMP /dev/md6 1>/dev/null
|
||||||
|
mkswap -f -LSWAP1 /dev/md7 1>/dev/null
|
||||||
|
mkswap -f -LSWAP2 /dev/md8 1>/dev/null
|
||||||
|
mkfs.ext4 -LHOME /dev/md9 1>/dev/null
|
||||||
|
|
||||||
|
# mount partitions
|
||||||
|
mount -LROOTFS rootfs
|
||||||
|
mount -LHOME home
|
||||||
|
mount -LVAR var
|
||||||
|
mount -LUSR usr
|
||||||
|
|
||||||
|
# Copy data from RAM.
|
||||||
|
rsync -a root_in_ram/home/ home/
|
||||||
|
rsync -a root_in_ram/var/ var/
|
||||||
|
rsync -a root_in_ram/usr/ usr/
|
||||||
|
rsync -a \
|
||||||
|
--exclude="home/**" \
|
||||||
|
--exclude="var/**" \
|
||||||
|
--exclude="usr/**" \
|
||||||
|
root_in_ram/ rootfs/
|
||||||
|
|
||||||
|
umount home var usr
|
||||||
|
|
||||||
|
# Generate fstab.
|
||||||
|
cat <<EOT > rootfs/etc/fstab
|
||||||
|
LABEL=ROOTFS / ext4 errors=remount-ro 0 1
|
||||||
|
LABEL=BOOT /boot ext4 defaults 0 2
|
||||||
|
LABEL=HOME /home ext4 defaults 0 2
|
||||||
|
LABEL=TMP /tmp ext4 defaults 0 2
|
||||||
|
LABEL=USR /usr ext4 defaults 0 2
|
||||||
|
LABEL=VAR /var ext4 defaults 0 2
|
||||||
|
LABEL=SWAP1 none swap sw 0 0
|
||||||
|
LABEL=SWAP2 none swap sw 0 0
|
||||||
|
EOT
|
||||||
|
|
||||||
|
# Chroot + reconfigure grub-pc
|
||||||
|
mount -t proc none /mnt/rootfs/proc
|
||||||
|
mount -o bind /dev /mnt/rootfs/dev
|
||||||
|
mount -o bind /dev/pts /mnt/rootfs/dev/pts
|
||||||
|
mount -t sysfs sys /mnt/rootfs/sys
|
||||||
|
|
||||||
|
rm -rf /mnt/rootfs/boot/*
|
||||||
|
|
||||||
|
chroot /mnt/rootfs/ bash
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
mount /boot
|
||||||
|
mount /usr
|
||||||
|
mount /var
|
||||||
|
mount /tmp
|
||||||
|
chmod 1777 /tmp
|
||||||
|
|
||||||
|
# generate RAID configuration
|
||||||
|
/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
|
||||||
|
|
||||||
|
# purge des paquets de Grub et du noyau, pour réinitialiser complètement les config
|
||||||
|
apt purge -y grub-common grub-pc grub-pc-bin grub2-common
|
||||||
|
for kernel_pkg in $(dpkg -l | grep linux-image | awk '{ print $2 }'); do apt purge -y $kernel_pkg; done
|
||||||
|
# réinstallation des paquets
|
||||||
|
# Note: bien installer Grub sur les 2 disques sda et sdb
|
||||||
|
apt install -y grub-common grub-pc grub-pc-bin grub2-common linux-image-amd64
|
||||||
|
|
||||||
|
# paquets utiles pour evolixisation par Ansible
|
||||||
|
apt install -y sudo python python-apt
|
||||||
|
# ajouter l'utilisateur dans le groupe sudo
|
||||||
|
# ça facilite le passage d'Ansible (sans root)
|
||||||
|
usermod -a -G sudo jlecour
|
||||||
|
passwd jlecour
|
||||||
|
|
||||||
|
# change root password
|
||||||
|
passwd
|
||||||
|
# permit root login via SSH with password
|
||||||
|
sed -i 's/without-password/yes/' /etc/ssh/sshd_config
|
||||||
|
|
||||||
|
exit
|
||||||
|
|
||||||
|
echo "Evolix partitioning done... You can now reboot!"
|
41
README.md
41
README.md
|
@ -0,0 +1,41 @@
|
||||||
|
# Rescue Install
|
||||||
|
|
||||||
|
A collection of scripts to remodel partitions on a freshly installed server (Online/Scaleway or OVH/SoYouStart).
|
||||||
|
|
||||||
|
It includes many variants of boot types (BIOS or EFI) and RAID types (hard or soft).
|
||||||
|
|
||||||
|
Those scripts and their main structure come from an original implementation by [Benoit Serie](https://gitea.evolix.org/bserie).
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
You should first determine if the server is installed by Online/Scaleway or OVH/SoYouStart.
|
||||||
|
Then if it has soft RAID or hardware RAID capabilities.
|
||||||
|
And finaly if th eboot is BIOS or EFI.
|
||||||
|
|
||||||
|
Boot your server in rescue mode.
|
||||||
|
|
||||||
|
The scripts are not exactly meant to be executed from top to bottom in one go.
|
||||||
|
They are not smart and the slighest change can break you server.
|
||||||
|
|
||||||
|
You should copy/past sections of the script and carefully look for errors in commands output.
|
||||||
|
|
||||||
|
Some scripts tend to reuse some partitions (/boot and /boot/efi) but the more recent ones tend to rebuild everything.
|
||||||
|
|
||||||
|
The scripts for soft RAID are easily adapted to various RAID configurations.
|
||||||
|
|
||||||
|
The scripts for hard RAID are independent of the RAID configuration. The OS doesn't see the physical disks.
|
||||||
|
|
||||||
|
## FAQ
|
||||||
|
|
||||||
|
### Why sleep after nearly every command?
|
||||||
|
|
||||||
|
Some commands are really fast but the kernel needs a moment to commit the changes.
|
||||||
|
By adding a second of sleep time between commands, we make sure that noone steps on anyone's toe.
|
||||||
|
|
||||||
|
### Why remove os-prober?
|
||||||
|
|
||||||
|
It messes with the Grub configuration.
|
||||||
|
|
||||||
|
### Why does parted give errors about alignment?
|
||||||
|
|
||||||
|
No idea! Please investigate and come back with improvments ;)
|
Loading…
Reference in a new issue