====== Proxmox ====== ====== Installation de base ====== Installation de Proxmox 5 sur une base Stretch : https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Stretch\\ \\ Repo gratuit (Stretch avec Proxmox 5) : echo "deb http://download.proxmox.com/debian stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-enterprise.list apt-get update pveupgrade pveversion Un petit coup d'auto-completion, apparemment pas dispo de base sous ''Proxmox 5 / Debian9'' : apt-get install bash-completion ====== Disques secondaires ====== Ajouter disques secondaires dans ''/etc/fstab'' : nano /etc/fstab Y ajouter (suivant vos disques) : UUID=72260c40-a15d-46ce-b58e-9bec5e0a6fc1 /srv/ssd525 ext4 defaults 0 0 UUID=9f5dd38a-42f7-4541-85e3-05a845336516 /srv/ssd1050 ext4 defaults 0 0 UUID=26d3211f-bbbc-4033-a3fd-7b683ea47e01 /srv/hdd320 ext4 defaults 0 0 ====== Supprimer message au login ====== sed -i.bak 's/NotFound/Active/g' /usr/share/perl5/PVE/API2/Subscription.pm && systemctl restart pveproxy.service ====== Ajout utilisateur ====== pveum useradd liandri@pve -comment 'Liandri' pveum passwd liandri@pve pveum groupadd admin -comment "System Administrators" pveum aclmod / -group admin -role Administrator pveum usermod liandri@pve -group admin pveum aclmod / -user liandri@pve -role Administrator ====== Ajout FTP OVH comme Backup ====== apt-get install curlftpfs mkdir -p /mnt/ftp-backup nano /root/.netrc machine ftpback.ovh.net login ns.ip.eu password Your-FTP-Password chmod 600 /root/.netrc nano /etc/fstab curlftpfs#ftpback.ovh.net /mnt/ftp-backup fuse allow_root,nonempty,_netdev,direct_io,hard_remove,big_writes 0 0 mount -a ====== Changer Port ====== nano /usr/bin/pveproxy $daemon = PVE::APIDaemon->new( port => , service pveproxy restart ====== Tweaks Backup ====== Via https://pve.proxmox.com/wiki/Backup_and_Restore\\ Installer le paquet ''lzop'' si besoin pour extraire des backups et ''pigz'' pour optimiser la compression : apt-get install lzop pigz Éditer le fichier de configuration de backup : nano /etc/vzdump.conf #Pigz : # 0 : désactivé, # 1 : utilise la moitié des threads dispos, # >1 : utile le nombre donné de threads. pigz: 1 #Dossier temporaire de travail des backups : très utile quand on sauvegarde sur un stockage distant, genre le FTP disponible par OVH. tmpdir: /var/lib/vz/tmpbackup On crée bien sur le dossier temporaire : mkdir /var/lib/vz/tmpbackup ===== Nettoyage container avant backup ===== Via [[https://www.jamescoyle.net/how-to/2804-reduce-proxmox-lxc-backup-size-and-time]] Toujours dans le fichier de configuration de backup ''/etc/vzdump.conf'', ajouter à la fin : nano /etc/vzdump.conf [...] script: /etc/pve/scripts/backup-hooks.sh Le script en lui-même : nano /etc/pve/scripts/backup-hooks.sh #!/bin/bash if [ "$1" == "backup-start" ] && [ ${VMTYPE} == "lxc" ]; then echo "Running pre backup guest cleanup for $3" pct exec "$3" -- bash -c "apt-get clean" fi Le script nettoie ici le cache APT avant le backup, pour économiser de la place.\\ \\ Les différents hooks disponibles sont : * ''backup-start'' * ''backup-end'' * ''backup-abort'' * ''log-end'' * ''pre-stop'' * ''pre-restart'' * ''post-restart'' ====== IP FailOver OVH ====== auto lo eth0 iface lo inet loopback iface eth0 inet static address netmask 255.255.255.255 broadcast post-up route add dev eth0 post-up route add default gw post-down route del dev eth0 post-down route del default gw dns-nameservers 213.186.33.99 dns-search ovh.net Debian 9 : allow-hotplug ens18 iface ens18 inet static address IP_FO/32 post-up ip route add HOST_GW dev ens18 post-up ip route add default via HOST_GW nameserver 213.186.33.99 service networking restart ====== CRON ====== Escape les "%". Bordel. @daily tar cvzf /vz/shared/backup/pve-`date +"\%Y-\%m-\%d"`.tar.gz /etc/pve @daily find /var/lib/lxc -type f | grep -P 'config' | tar cvzf /vz/shared/backup/lxc-`date +"\%Y-\%m-\%d"`.tar.gz -T - @daily find /vz/shared/backup -type f -mtime +7 -delete ====== Migration de VM ====== https://pypi.python.org/pypi/proxmove ====== Importer fichier .OVA dans Proxmox ====== On extrait le fichier ''.ova'' : tar xvf my-vm.ova On convertit le disque virtuel au format qui va bien (ici ''raw'', on peut choisir ''qcow2'' si besoin) : qemu-img convert my-vm-disk1.vmdk my-vm-disk1.raw Une fois l'image disque créée au bon format, il suffit de créer la VM dans proxmox, avec un disque spécifié, et ensuite, de remplacer le disque créé automatiquement par notre image convertie. ====== Reset LXC container ====== Petit script pour un reset rapide de container après restauration du master : #!/bin/bash #MyCurrentHostname="blah" MyCurrentHostname=$(hostname) MyNewHostname="www" MyCurrentIP="1.2.3.4" MyNewIP="5.6.7.8" MyUser="" RootPWD="" MyUserPWD="" echo -e "\033[0;32mChanging from $MyCurrentHostname to $MyNewHostname\033[0m" #Génération de nouvelles clés SSH echo -e "\033[0;32mDeleting generic SSH host key...'\033[0m" rm /etc/ssh/ssh_host_* echo -e "\033[0;32mGenerating new SSH keys...\033[0m" dpkg-reconfigure openssh-server echo -e "\033[0;32mDeleting generic DHParams file...\033[0m" rm /etc/ssl/private/dhparams.pem echo -e "\033[0;32mGenerating new DHParams (really long)...\033[0m" openssl dhparam -out /etc/ssl/private/dhparams.pem 4096 #Si on veut aussi changer les passwords #root [ ! -z "$RootPWD" ] && echo -e "\033[0;32mModification du mot de passe pour root...\033[0m" [ ! -z "$RootPWD" ] && echo -e "$RootPWD\n$RootPWD" | passwd root #MyUser if id "$MyUser" >/dev/null 2>&1; then [ ! -z "$MyUser" ] && [ ! -z "$MyUserPWD" ] && echo -e "\033[0;32mModification du mot de passe pour $MyUser...\033[0m" [ ! -z "$MyUser" ] && [ ! -z "$MyUserPWD" ] && echo -e "$MyUserPWD\n$MyUserPWD" | passwd $MyUser fi #Reconfiguration de l'adresse IP echo -e "\033[0;32mIP Update...\033[0m" sed -i "s/$MyCurrentIP/$MyNewIP/g" /etc/network/interfaces #Base config files #changer aussi le DNS du container dans Proxmox, si le hostname ne change pas directement echo -e "\033[0;32mApplying changes to base config files...\033[0m" sed -i "s/$MyCurrentHostname/$MyNewHostname/g" /etc/hostname sed -i "s/$MyCurrentHostname/$MyNewHostname/g" /etc/hosts sed -i "s/$MyCurrentHostname/$MyNewHostname/g" /etc/ssh/ssh_host_*.pub #Modded config files echo -e "\033[0;32mApplying changes to modded config files...\033[0m" sed -i "s/$MyCurrentHostname/$MyNewHostname/g" /etc/fail2ban/jail.local sed -i "s/$MyCurrentHostname/$MyNewHostname/g" /etc/fail2ban/jail.conf sed -i "s/$MyCurrentHostname/$MyNewHostname/g" /usr/share/logwatch/default.conf/logwatch.conf sed -i "s/$MyCurrentHostname/$MyNewHostname/g" /etc/apticron/apticron.conf sed -i "s/$MyCurrentHostname/$MyNewHostname/g" /etc/ssmtp/ssmtp.conf sed -i "s/$MyCurrentHostname/$MyNewHostname/g" /etc/ssmtp/revaliases sed -i "s/$MyCurrentHostname/$MyNewHostname/g" /etc/passwd #Reboot pour valider le tout echo -e "\033[0;32mRebooting...\033[0m" shutdown -r now ====== Cluster ====== Via : https://pve.proxmox.com/wiki/Proxmox_VE_4.x_Cluster Créer un cluser sur un des hôtes : pvecm create Sur les autres hotes, on rejoint le cluster créé : pvecm add Vérifier le status du cluster : pvecm status Vérifier le status des hotes du cluster : pvecm nodes ====== Nettoyage des kernels inutiles ====== wget --no-check-certificate -O /usr/local/sbin/purge-old-kernels https://github.com/algodelinux/purge-old-kernels/raw/master/purge-old-kernels chmod 755 /usr/local/sbin/purge-old-kernels bash /usr/local/sbin/purge-old-kernels