Emplear SaltStack para manejar paquetes y repositorios es algo rápido y que debería ser de las primeras cosas que se implementan. Configurar un repositorio e instalar un paquete es algo así como el "Hola mundo" de la meta-administración. Sin embargo, un posible fallo que acabo de ver en Salt cuando se instala bajo sistemas Debian es que no tiene las dependencias correctamente cumplidas y no permite manejar paquetes, dando el siguiente error.
shell> salt 'salt.domain.com' state.sls salt
salt.domain.com:
----------
ID: salt
Function: pkgrepo.managed
Name: deb http://debian.saltstack.com/debian wheezy-saltstack main
Result: False
Comment: An exception occurred in this state: Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/state.py", line 1378, in call
**cdata['kwargs'])
File "/usr/lib/python2.7/dist-packages/salt/states/pkgrepo.py", line 231, in managed
sanitizedkwargs = __salt__['pkg.expand_repo_def'](kwargs)
File "/usr/lib/python2.7/dist-packages/salt/modules/aptpkg.py", line 1361, in expand_repo_def
'Error: aptsources.sourceslist python module not found'
CommandExecutionError: Error: aptsources.sourceslist python module not found
Changes:
...
Como podéis ver, el fallo sale de que desde python, SaltStack está escrito en python, no sabe manejar los repositorios apt y por lo tanto nos soltará el fallo aquí descrito y no establecerá el estado que nos interesa en el sistema, ya que no es capaz. La solución, simplemente instalar el módulo de python para manejar el sistema de paquetería apt. El lógico pensar que no es posible poner de dependencia todos los módulos python que son necesarios, pero éste quizás sí fuese interesante mantenerlo.
shell> apt-get install python-apt
Tras instalar el módulo en el minion, volvemos a lanzar nuevamente el proceso y listo, esta vez ya termina la ejecución correctamente.
shell> salt 'salt.domain.com' state.sls salt
salt.domain.com:
----------
ID: salt
Function: pkgrepo.managed
Name: deb http://debian.saltstack.com/debian wheezy-saltstack main
Result: True
Comment: Configured package repo 'deb http://debian.saltstack.com/debian wheezy-saltstack main'
Changes:
----------
repo:
deb http://debian.saltstack.com/debian wheezy-saltstack main
----------
...