##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 ## Outils pour les distributions redhat ##@cooked nocomments ##@require base ##@require sysinfos ##@require service uprovide redhat urequire base sysinfos service ipcalc ################################################################################ # Gestion des packages function pkg_check() { # Vérifier que les packages sont installés sur le système local pkg for pkg in "$@"; do rpm -q "$pkg" >/dev/null || return 1 done return 0 } function pkg_update() { # Mettre à jour la liste des packages silencieusement sans confirmation LANG=C yum check-update -q } function pkg_upgrade() { # Mettre à jour la liste des packages silencieusement sans confirmation LANG=C yum update -q -y } function pkg_install() { # Installer les packages silencieusement et sans confirmation if check_sysinfos -v rhel4 centos4 redhat4 -b 64; then LANG=C up2date --channel=rhel-x86_64-es-4 "${pkgs[@]}" #elif check_sysinfos -v rhel4 centos4 redhat4 -b 32; then # LANG=C up2date --channel=rhel-i386-es-4 "${pkgs[@]}" else LANG=C yum install -q -y "$@" fi } function pkg_installm() { # Installer les packages silencieusement et sans confirmation # Retourner 0 si au moins un des packages a été installé. Sinon, les # packages n'ont pas été instllés, soit parce qu'ils sont déjà installé, # soit parce qu'il y a eu une erreur. if ! pkg_check "$@"; then # essayer d'installer les packages pkg_install "$@" else # aucun package n'a été installé return 1 fi } ################################################################################ # Gestion des services function service_disable() { # Désactiver le service $1 pour qu'il ne se lance pas automatiquement au # démarrage chkconfig "$1" off } function service_enable() { # Activer le service $1 pour qu'il se lance automatiquement au démarrage chkconfig "$1" on } ################################################################################ # Gestion des interfaces réseau __REDHAT_NETWORK_DEVEL_SHOW_MODIFS= function network_fix_hostname() { local hostname="${1%%.*}" local modified [ -f /etc/hostname ] || touch /etc/hostname if [ -n "$__REDHAT_NETWORK_DEVEL_SHOW_MODIFS" -o -n "$__NETWORK_DEVEL_SHOW_MODIFS" ]; then uecho "Setting /etc/hostname to $hostname" elif [ "$(/etc/hostname modified=1 fi [ -n "$modified" ] } function network_fix_mailname() { local host="$1" local modified [ -f /etc/mailname ] || touch /etc/mailname if [ -n "$__REDHAT_NETWORK_DEVEL_SHOW_MODIFS" -o -n "$__NETWORK_DEVEL_SHOW_MODIFS" ]; then uecho "Setting /etc/mailname to $host" elif [ "$(/etc/mailname modified=1 fi [ -n "$modified" ] }