Affichage des articles dont le libellé est Sysadmin. Afficher tous les articles
Affichage des articles dont le libellé est Sysadmin. Afficher tous les articles

samedi 23 février 2019

FTP to IBM System i

Sometimes you need still old school admin tricks, to upload files (WAS installation) to ISeries, the only native way, without to install SSH or other stuff is still FTP.
When it happens the easiest way is to use ftpclient.

ftp ipnode
login
password
change naming format because native DB format is limit 10 character long names
quote site namefmt 1
put
And you're done.

Previously you did create a new catalog and upload the files in this Catalog/directory.


mercredi 2 septembre 2015

Un MOTD comme un carnet de maintenance

Souvent c'est compliqué de partager l'information, de suivre les interventions sur les serveurs.
On note le suivi dans un outils (ITIL, etc ...) mais la relation entre les deux, l'information et le serveur est toujours un peu deconnectée. Quand on a une urgence on se connecte dans regarder la base d'information, ou bien tous les admin n'ont pas la même pratique, voir même parfois on rentre de vacances :)

Une solution que j'ai trouve est de créer un MOTD, message of the day personnel, qui apparaîtra seulement pour les admins et pas pour les autres intervenants sur le serveurs (dev, operateurs, ...)

L’idée c'est de laisser le genre d'information suivante :

  • Les volumes Oracle ASM sont gérés par udev rules ou au contraire par asmlib
  • Le serveur est vieux, ne toucher a rien
  • lire le ticket xxx avant tout chose
  • ....

J'ajoute dans /etc/profile le code suivant pour tester l'appartenance de l'utilisateur au groupe sysadmin. Si oui j'affiche le contenu de /etc/motd.splash_root.sh

####MOTD perso
if id -nG "$USER" | grep -qw "sysadmin"; then
. /etc/motd.splash_root.sh
fi
##############################

/etc/motd.splash_root.sh
echo ""
echo -e "\e[1;31m     ATTENTION                                                        \e[0m"
echo ""
echo -e "\e[1;31m ========================================="
echo -e "\e[1;37m                                                                                             "
echo -e "\e[1;37m        ASM par udev rules                                                     "
echo -e "\e[1;37m                                                                                             "
echo -e "\e[1;31m ========================================="
echo -e "\e[1;0m"


Qu'en pensez vous ? Comment faites-vous ?

dimanche 16 juin 2013

Fabric, la toolbox des champions

Fabric, mon rêve d'automatisation.

Mon aventure avec Fabric ne fait que débuter et commence sur 2 constats et problématiques :
  • La lecture des posts suivants : vos 5ères minutes sur un serveur (blog.nicolargo.com, plusbryan.com)
  • La répétition des commandes et l'application de changement à grande échelle.
C'est vrai, je fais quoi durant mes 5ères minutes, je me souviens pas toujours.
Et puis j'en ai marre de répéter toujours les mêmes commandes.
J'aurais pu faire des scripts en bash, je les ai déjà mais bof.
Je ne veux pas installer un serveur d'application et déployer des clients pour automatiser.
Je ne veux pas faire du ruby.
Je ne veux une solution agile.
Je veux pouvoir le transmettre à mes collègues sans les forcer.
Je veux faire du python.

Donc pas de Puppet, ni Chef même si ça a l'air très bien.

Heureusement je découvre Fabric.
Notamment ses infos :
Je décide de regrouper mes 2 problématiques standardisation et automatisation.

Setup serveur initial

Mes 5 min sur un serveur :

  1. installer fail2ban
  2. installer cron-apt
  3. installer logwatch
  4. Mettre a jour l'environnement (PS1, .vimrc, .bashrc)
  5. installer shorewall (sans le configurer)

Fabric

Traduit en Fabric ca donne :


from fabric.api import *
from cuisine import *
from fabric.colors import cyan,magenta,red
from fabric.contrib.files import comment, uncomment, contains, exists, append, sed

@task
def PS1_host():
   append('/root/.bashrc','export PS1=\'\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\]\'',use_sudo=False)

@task
def update_upgrade():
    run('aptitude update && aptitude full-upgrade')

@task
def vim_color():
    append('/root/.vimrc','syntax on')

@task
def cront_apt_setup():
    if not package_ensure_apt('cron-apt','update=False')
    append('/etc/cron-apt/config','APTCOMMAND=/usr/bin/aptitude')
    append('/etc/cron-apt/config','ACTIONDIR="/etc/cron-apt/action.d"')
    append('/etc/cron-apt/config','MAILTO="moi@gmail.com"')
    append('/etc/cron-apt/config','ERROR="/var/log/cron-apt/error"')
    append('/etc/cron-apt/config','LOG="/var/log/cron-apt/log"')
    append('/etc/cron-apt/config','LOG="/var/log/cron-apt/log"')
    append('/etc/cron-apt/config','MAILON="always"')
    append('/etc/cron-apt/config','SYSLOGON="upgrade"')
    append('/etc/cron-apt/config','OPTIONS="-o quiet=1 -o Dir::Etc::SourceList=/etc/apt/sources.list"')
    file_append('/etc/cron-apt/action.d/5-install','autoclean -y\n safe-upgrade -y -o APT::Get::Show-Upgraded=true')

@task
def logwatch():
    if not package_ensure_apt('logwatch','update=False'):
   run('aptitudsilverstone install -y logwatch')
   run('cp -a /usr/share/logwatch/default.conf/* /etc/logwatch/conf/')
   run('cp -a /usr/share/logwatch/scripts/* /etc/logwatch/scripts/')
   run('mkdir -p /var/cache/logwatch')
   sed('/etc/logwatch/conf/logwatch.conf',before='MailTo = root',after='MailTo = moi@gmail.com')
   sed('/etc/logwatch/conf/logwatch.conf',before='Detail = Low',after='Detail = Med')
   run('logwatch')

@task
def shorewall_install():
    if not package_ensure_apt('shorewall','update=False')
    print(red("Don't forget to configure SHOREWALL"))

@task
def install_fail2ban():
if not package_ensute_apt('fail2ban','update=False')
sed('/etc/fail2ban/jail.conf',before='destemail = root@localdomain',after='destemail=moi@gmail.com')
run('service fail2ban restart')

Bien sur ce post reflète mon expérience actuelle avec Fabric, je ne le maîtrise pas encore mais ça me permet déjà de faire des trucs très sympas, de standardiser et d'automatiser.

Par exemple, reste a créer une task install appelant les autres, de créer un organisation répertoire/fichiers, de piocher les hosts dans la base glpi et mettre tout ca dans un svn.

Fabric est très complet, permet déxecuter toutes les taches courantes, installer des paquets, gérer les utilisateurs/groupes, les services, ...
Le tout en python, Fabric peut donc être inclut dans d'autre projets.

Derniers petits trucs pour la route

Par défaut Fabric recherche son fabfile.py dans le répertoire courant ou bien s'il est spécifié à l'execution :
fab -f /home/someplace/fabfile.py

Mais Fabricpermet de créer un fichier .fabricrc qui spécifiant l'emplacement du fabfile.py, par exemple :
#cat .fabricrc 
fabfile=/home/FABRIC/fabfile.py
export $fabfile

De cette facon on peut executer directement fab -l pour voir la liste des commandes :
$ fab -l
Available commands:
    Instalacion_SVN_1_7_8  Instalacion de SVN CollabNet 1.7

Dernier truc qui m'a couté avant dý parvenir charger une list d'host a partir d'un fichier :
@task
def host_list():
        env.warns_only = 'True'
        with open('/home/julien/caf/caf/1-list.org') as fd:
         env.hosts = [x.strip() for x in fd]


De cette facon je peux combiner les commandes et installer logwatch sur tous les hosts défini dans ma liste.
fab host_list logwatch

Je peux également paralélliser l'installation par groupe de 5 :
fab host_list logwatch -P -z 5

Enfin, dernier conseil la documentation est très bien faite, très complète et facile a lire. La communauté est reactive par IRC ou mailing list.
L'essayer c'est l'adopter.




lundi 13 février 2012

Gestion des mots de passes


Pour gérer les mots de passe comme je suis passe par :
  • notepad,
  • excel,
  • glpi et son plugin password,
  • excel dans un fichier true crypt

Et finalement maintenant j’utilise Keepass.

Keepass permet entre autre 
  • de conserver les mots de passes, 
  • d'organiser les password avec des icones, 
  • se ferme automatiquement pour éviter les indiscrets, 
  • masque les mots de passe 
  • mais permet de les copier rapidement 
  • et bien sur demande un mot de passe a l’ouverture.

Contrairement a Gorilla, Keepass permet de generer automatiquement des mots de passes.
Enfin Keepass me permet d’exporter les mots de passe d’un client dans un nouveau fichier Keepass qui contiendra l'organisation désirée.

Un outil indispensable a tout Sys admin, aujourd’hui je suis sur que chaque niveau (équipement, utilisateurs, …) à un mot de passe complexe et différent.

Finalement je ne connais même  plus les mots de passes par cœur et c'est bien mieux comme ca.