Como instalar Ansible en Mac OS X

VIM3

Como un proceso complementario de como instalación de ANSIBLE en macOS podemos seguir los siguiente pasos

Es importante y recomiendo que sigan el proceso de instalación oficial de Ansible con pip para macOS u otro sistemas operativos desde su pagina de documentación web 

Paso 1). Descarga e instale Xcode las herramientas de desarrollo de línea de comandos para macOS. Si Xcode no está instalado en el sistema, simplemente podemos tomar las Herramientas de desarrollo de línea de comandos para OS X

$ xcode-select --install
xcode-select: note: install requested for command line developer tools

Paso 2). Instalar pip como usuario, este comando solo debe realizar cambios en el $HOME del usuario que lo ejecuta.

$ easy_install --user pip

Advertencia: es importante que se instale con la opción --user para que solo afecte o instale en el directorio '/Users/usuario/Library/Python/2.7/lib/python/site-packages', Ejecutar pip con privilegio de administrador hará cambios globales en el sistema. Dado que pip no coordina el proceso de instalación con los administradores de paquetes del sistema, ejecutar pip como root podría realizar cambios en su sistema que lo dejan en un estado inconsistente o que no funciona.

Paso 3). Agregue el directorio bin de Python del usuario a la variable PATH.

$ printf 'if [ -f ~/.bashrc ]; then\n source ~/.bashrc\nfi\n' >> ~/.bash_profile
$ printf 'export PATH=$PATH:$HOME/Library/Python/2.7/bin\n' >> ~/.bash_profile
$ source ~/.bash_profile
$ pip install --user --upgrade ansible

Sin la asignación de de la ruta a la variable $PATH, el shell no encontrara la ruta de los comandos locales de usuario, por ejemplo ansible

Paso 4). Verificar la instalación de pip y la asignación de la variable $PATH.

$ pip -V
pip 20.0.2 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)

Paso 5). Instalar o actualizar ansible con pip en tu macOS,

$ pip install --user --upgrade ansible

En caso que quiera una version especifica o quiera hacer un downgrade puedes ejecutar el comando pip install --user ansible==2.7.11

para ver los paquetes desactualizados puedes ejecutar pip list --user --outdated o pip list  --outdated

Paso 6). Verifica que la instalación de ansible y sus componentes se instalaron satisfactoriamente.

El primer comando type -a ansible verifica la ruta de instalación de ansbile, el segundo ansible --version verifica la version de ansible instalada

$ type -a ansible 

$ ansible --version
ansible 2.9.7
  config file = /etc/ansible/ansible.cfg
  ...

Paso 7). Creamos un directorio de configuración global del sistema  y descargamos archivo de configuración por defecto para ansible, estos comandos requiere de privilegios

$ sudo mkdir /etc/ansible
$ sudo curl -L https://raw.githubusercontent.com/ansible/ansible/devel/examples/ansible.cfg -o /etc/ansible/ansible.cfg

Paso 8). Verificando la instalación ansible y utilizando algunos ad hoc de ejemplo. 

$ ansible localhost -m ping
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

$ ansible localhost -a "/bin/echo Hola Mundo"
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | CHANGED | rc=0 >>
Hola mundo

$ ansible localhost -m setup 
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | SUCCESS => {
    "ansible_facts": {
...

$ ansible localhost -m setup -a 'filter=ansible_memtotal_mb'
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | SUCCESS => {
    "ansible_facts": {
        "ansible_memtotal_mb": 32768
    }, 
    "changed": false
}

$ ansible localhost -m setup -a 'filter=ansible_distribution'
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | SUCCESS => {
    "ansible_facts": {
        "ansible_distribution": "MacOSX"
    }, 
    "changed": false
}

$ ansible localhost -m setup -a 'filter=ansible_processor'
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | SUCCESS => {
    "ansible_facts": {
        "ansible_processor": "Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz"
    }, 
    "changed": false
}

Pasos opcionales

Paso). 1 Incrementar el limite de archivos o la cantidad de identificadores de archivos en la mac

De manera predeterminada, macOS está configurado para una pequeña cantidad de identificadores de archivos, por lo que si desea utilizar 15 o más forks, deberá elevar el límite ulimit con sudo launchctl limit maxfiles unlimited o  indicarle una cantidad por ejemplo de 1024. Este comando también puede corregir cualquier error de "Demasiados archivos abiertos".

$ launchctl limit maxfiles
	maxfiles    65536          1000000 

$ sudo launchctl limit maxfiles 1024 unlimited
$ launchctl limit maxfiles
$ ulimit -n ;#haciendo los cambios permanentes

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *