Bienvenue...
Soumis par kacy le
...sur mon blog, j'utilise ce site pour noter les petites choses qui me sont utiles, que ça soit informatique ou autre :)
Soumis par kacy le
...sur mon blog, j'utilise ce site pour noter les petites choses qui me sont utiles, que ça soit informatique ou autre :)
CentOS 6.5 utilise SELinux, du coup lorsqu'on modifie la conf Apache pour qu'il écoute sur un port particulier et qu'on relance le service httpd, ben ça démarre pas...
Il suffit en fait de passer la commande :
semanage port -a -t http_port_t -p tcp <NUMERO DE PORT>
Si semanage n'est pas une commande connue, il faut l'installer :
yum -y install policycoreutils-python
Préparer une VM et l'installer a minima avec un CentOS.
Copier le script ci-dessous dans un repertoire (ex. : home de root)
Arrêter la VM template.
Créer un répertoire dans la LUN ayant le nom de la VM.
Cloner le disque (en mode shell sous VMWare) :
vmkfstools -i \ /vmfs/volumes/LUN-OT1/TPL-CENTOS-6.5-x86_64/TPL-CENTOS-6.5-x86_64.vmdk \ /vmfs/volumes/<Nom de la LUN>/<Nom du repertoire cible>/<Nom de la VM>.vmdk -d thin
Créer une nouvelle VM et lui affecter le disque créé.
Démarrer la VM avec le disque cloné.
Lancer la VM et se logger en root.
Lancer le script :
[root@host ~]# update-tpl.sh <Nom de la VM>
Si tout s’exécute correctement, la carte réseau eth0 sera reconfigurée avec la nouvelle adresse MAC, le hostname ainsi que le VolumeGroup (LVM) auront été renommé correctement.
update-tpl.sh source :
#/bin/sh . /etc/init.d/functions UPD="-UPD" BFR="-BFR" NTWCFG="/etc/sysconfig/network" ETHCFG="/etc/sysconfig/network-scripts/ifcfg-eth0" UDVNET="/etc/udev/rules.d/70-persistent-net.rules" GRBCFG="/boot/grub/grub.conf" FSTCFG="/etc/fstab" HSTCFG="/etc/hosts" INITRD="/boot/`cat ${GRBCFG} | grep -v grep | grep -v '#' | grep initrd | awk -F " /" '{ print $2 }'`" NEWHOST="$1" OLDHOST="`hostname`" function moveBackup() { mv "${1}" "${1}${BFR}" checkExec $? "Moving ${1} to ${1}${BFR}" } function moveReal() { mv "${1}${UPD}" "${1}" checkExec $? "Moving ${1}${UPD} to ${1}" } function checkExec() { echo echo -n ">> $2" if [ $1 -eq 0 ] ; then success return fi if [ "$3" == "" ] ; then MSG="ERROR $2, procedure aborted..." else MSG="$3" fi failure echo $MSG exit 1 } function checkAnswer() { echo if [ "$1" == "" ] ; then echo -n "* Is it ok [y/N] ?" else echo -n "* $1" fi read answer case "${answer}" in "y") ;; *) echo -n "Aborting..." failure echo exit 1 ;; esac } if [ "${NEWHOST}" == "`hostname`" ] || [ "${1}" == "" ] ; then echo "* Same hostname, nothing to do... showing operations but no actions !" DEBUG="-DEBUG" NEWHOST="newhostname" set -x elif [ "$2" != "" ] ; then echo "* Debug mode... showing operations but no actions !" DEBUG="-DEBUG" set -x fi echo -n "New hostname: ${NEWHOST}" ########### HOST sed "s/${OLDHOST}/${NEWHOST}${DEBUG}/g" ${NTWCFG} > "${NTWCFG}${UPD}" sed "s/${OLDHOST}/${NEWHOST}${DEBUG}/g" ${HSTCFG} > "${HSTCFG}${UPD}" checkExec $? "Renaming hostname '${OLDHOST}' to '${NEWHOST}'" ########### ETHERNET HWADDR=`cat ${UDVNET} | grep -v eth0 | grep "NAME=\"eth" | awk -F "ATTR{address}==\"" '{ print \$2}' | awk -F "\"," '{ print \$1}' | egrep '([0-9a-f]{2}[:-]){5}([0-9a-f]{2})' | awk '{gsub(/^ +| +$/,"")} {print $0}'` if [ "${HWADDR}" != "" ] ; then sed "s/eth1/eth0/g" ${UDVNET} > "${UDVNET}${UPD}" checkExec $? "Updating udev informations" echo "DEVICE=eth0 HWADDR=${HWADDR^^} BOOTPROTO=dhcp NM_CONTROLLED=yes ONBOOT=yes TYPE=Ethernet #IPADDR=192.168.1. #NETMASK=255.255.255.0 #BROADCAST=192.168.1.255 #NETWORK=192.168.1.0" > "${ETHCFG}${UPD}" checkExec $? "Updating NIC informations" fi ########### LVM / FSTAB / GRUB OLD_VGNAME=`vgdisplay | grep -v grep | grep "VG Name" | awk -F "VG Name" '{print \$2}' | awk '{gsub(/^ +| +$/,"")} {print $0}'` VGNAME="vg_`echo "${NEWHOST}" | sed 's/[-_.]//g'`${DEBUG}" checkAnswer "Rename '${OLD_VGNAME}' to '${VGNAME}' [y/N] ?" sed "s/${OLD_VGNAME}/${VGNAME}/g" ${GRBCFG} > "${GRBCFG}${UPD}" sed "s/${OLD_VGNAME}/${VGNAME}/g" ${FSTCFG} > "${FSTCFG}${UPD}" ########### MODIFICATIONS echo "Point of no return :)" checkAnswer "Do you want me to modify things [y/N] ?" vgrename ${OLD_VGNAME} ${VGNAME} checkExec $? "Renaming ${OLD_VGNAME} to ${VGNAME}" "ERROR executing vgrename ! (you should do something if you want the system to boot correctly... o_O')" moveBackup ${HSTCFG} moveReal ${HSTCFG} moveBackup ${NTWCFG} moveReal ${NTWCFG} moveBackup ${UDVNET} moveReal ${UDVNET} moveBackup ${ETHCFG} moveReal ${ETHCFG} moveBackup ${GRBCFG} moveReal ${GRBCFG} moveBackup ${FSTCFG} moveReal ${FSTCFG} cp "${INITRD}" "${INITRD}${BFR}" checkExec $? "Copying ${INITRD} to ${INITRD}${BFR}" mkinitrd -f ${INITRD} `uname -r` checkExec $? "Creating initrd ${INITRD}" echo
Magnifique tutoriel qui marche :)
How to Increase the size of a Linux LVM by expanding the virtual machine disk
EDIT 27/04/2018 : c'est comme le porc-salut c'est écrit d'ssus...
Alternatively if you’re running the XFS file system (default as of RedHat/CentOS 7) you can grow the file system with “xfs_growfs /dev/Mega/root”.
Ouuuuh là là, le truc de mec pointilleux voir maniaque : j'ai créé une VM qui me sert de modèle pour démultiplier les petites VMs sans avoir à reparamétrer un certain nombre de basiques.
Non c'est pas encore là le truc de maniaque... donc du coup, partitionnement avec LVM parce que c'est 'achement mieux ;) et là quand on se retrouve avec la VM clonée, ben oué les volume group ont le nom du host de la machine :/ trop dur...
Donc là on cherche sur le net et on trouve la commande :
[root@domus-media01 sssd]# vgrename --help vgrename: Rename a volume group vgrename [-A|--autobackup y|n] [-d|--debug] [-h|--help] [-t|--test] [-v|--verbose] [--version] OldVolumeGroupPath NewVolumeGroupPath | OldVolumeGroupName NewVolumeGroupName
*JOIE*... du coup on rename, super simple :
[root@host ~]# vgrename vg_ancienhost vg_nouveauhost
Et pis on est des oufs : on reboot histoire de... et là on a un beau kernel panic =)
Donc c'est là qu'on se rappelle qu'on aurait dû changer la référence dans /etc/fstab, mais en fait c'est pas suffisant, VRAIMENT pas suffisant :
[root@host ~]# mkinitrd -f /boot/initramfs-2.6.32-431.el6.x86_64.img 2.6.32-431.el6.x86_64
Et là ça marche, enfin en tout cas chezmoicamarche.com ;)
Facile, faut installer sssd, donc un p'tit yum install sssd, puis créer le fichier /etc/sssd/sssd.conf
[domain/default] id_provider = ldap auth_provider = ldap chpass_provider = ldap ldap_uri = ldap://votre.domaine.com ldap_default_bind_dn = uid=manager,cn=users,dc=votre,dc=domaine,dc=com ldap_default_authtok = <SECRET PASSWORD> ldap_default_authtok_type = password ldap_id_use_start_tls = False ldap_tls_reqcert = never ldap_search_base = dc=votre,dc=domaine,dc=com cache_credentials = True cache_sensitive = False enumerate = True [sssd] services = nss, pam config_file_version = 2 domains = default [nss] filter_users = root,ldap,named,avahi,haldaemon,dbus,radiusd,news,nscd [pam] [sudo] [autofs] [ssh] [pac]
Passer le fichier en 600 et owner "root.root" sinon le service ne démarrera pas
Installer oddjob, démarrer oddjobd si ça plante, démarrer le service messagebus puis oddjobd...
Activer l'authentification sssd (avec création du homedir lors de l'authent d'un nouveau user)
authconfig --enablesssd --enablesssdauth --enablelocauthorize --enablemkhomedir --updateall
Démarrer le service sssd
That's all folks ! :P