Blog

Bienvenue...

...sur mon blog, j'utilise ce site pour noter les petites choses qui me sont utiles, que ça soit informatique ou autre :)

Il y a 4 années 10 mois

Impossible de démarrer apache2 sur un port spécifique (sous centos) ?

Vérifier que le port en question est autorisé :

semanage port -l | grep -w http_port_t

Le cas échéant, il faut ajouter le port dans la liste des ports autorisés :

semanage port -a -t http_port_t -p tcp <PORT>

Si semanage n'est pas installé :

yum -y install policycoreutils-python

cf. : ici

Il y a 4 années 11 mois

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
Il y a 4 années 11 mois

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
Il y a 4 années 11 mois

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”.

Il y a 4 années 11 mois

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 :

[[email protected] 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 :

[[email protected] ~]# 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 :

  • Changer la ref dans /etc/fstab
  • Changer la ref dans /boot/grub/menu.lst
  • Recréer l'image Ramdisk initiale (ouai ça c'est typiquement le genre de truc qu'on oublie - non je ne suis pas sysadm... :)=
    [[email protected] ~]# 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 ;)

Pages