gestión de paquetes
3:29 Gestor Paquetes (I)
para lenguajes de programación:
- bower : desarrollo web
- bundler : dependencias Ruby Gem
- composer : librerias PHP
- cpam : gestor módulos Perl
- easy_install : gestión módulos / librerias Phyton
- gem : gestiona Ruby Gems
- maven_artifact : descarga artifacts desde un repositorio maven
- npm : gestiona paquetes node.js
- pear : paquetes pear / pcl
- pip : gestión módulos / librerias Phyton (más que easy_install)
para OS:
- apk : gestión paquetes android
- apt :
- apt_key:
- apt_repositiry
- dnf : fedora
- macports : paquetes macports OSX
- openbsd_pkg : paquetes openBSD
- opkg : paquetes OpenWRT (routers, firmware)
- package : módulo genérico que llama a los otros módulos (wrapper)
- pacman : paquetes arch linux
- pkg5 : paquetes Solaris 11
- pkgin : paquetes SmartOS, NetBsd y otros
- pkgng : paquetes FreeBSD >= 9.0
- portage : Gentoo
- redhat_subscription : administra repositorios y subscripciones Red Hat, usando el comando subscription-manager
- slackpkg : paquetes slackware >=12.2
- swdepot : paquetes HP_UX
- yum :
- yum_repository
- zypper : paquetes / repositorios OpenSuse / Suse
- zypper_respository
cpanm
PERL
https://docs.ansible.com/ansible/latest/modules/cpanm_module.html#cpanm-module
- from_path = ruta
- name = nombre
- localib = ruta
- mirror = mirror
- mirror_only = no / yes
- notest = no / yes
- version = version
- system_lib = directorio
state
- name: instalar gcc yum: name=gcc state=latest - name: instalar paquete básico yum: name=perl-App-cpanminus state=latest - name: instalar módulo DBI cpanm : name=DBI - name: instalar versión específica cpanm: name=DBI version="1.360"
easy_install
https://docs.ansible.com/ansible/latest/modules/easy_install_module.html#easy-install-module
- obligatorio
- name = nombre
- opcional
- state = present | latest
- virtualenv = no / yes
- virtualenv_command = comando
- virtualenv_site_packages = no / yes
- exectutable = ruta ejecución easy_install
- name: instalar PiP easy_install: name=pip state=latest # se usa PiP en lugar easy_install
pip
https://docs.ansible.com/ansible/latest/modules/pip_module.html#pip-module
- obligatorio
- name = nombre
- opcional
- state = present | latest | absent | forcereinstall
- virtualenv = no / yes
- virtualenv_command = comando
- virtualenv_site_packages = no / yes
- exectutable = ruta ejecución
- requirements = fichero.txt (dependencias) → requirements.txt
- version = version
- chdir = ruta
- name: instalar módulo requests pip: name=requests state=latest
3:30 Gestor Paquetes (II)
apt
https://docs.ansible.com/ansible/latest/modules/apt_module.html#apt-module
- name = nombre[=versión]
- state = { latest | absent | PRESENT | build-dep }
- latest : a la última
- absent : eliminar
- build-dep : dependencias
- upgrade = { no | yes | safe | full | dist }
- force = no / yes
- update_cache = no / yes
- purge = no / yes
- deb = ruta/fichero/.deb
- autoremove = no / yes
- default_release = release
- name: actualizar lista paquetes apt: update_cache=yes - name: actualizar paquetes apt: upgrade=dist - name: instalar nginx apt: name: nginx state: latest
apt_key
https://docs.ansible.com/ansible/latest/modules/apt_key_module.html#apt-key-module
- data = contenido de la key a añadir (desde Ansible Server)
- file = ubicación fichero en nodo remoto
- id = identificador
- keyring = /ruta/trusted
- keyserver = servidor
- state = { PRESENT | absent }
- url = dirección
- validate_certs = yes / no
- name: añadir clave usando servidor apt_key: keyserver: keyserver.ubuntu.com id: 36A1D7869245C8950F... - name: añadir utilizando un fichero adjunto apt_key: url: "https://ftp-master.debian.org/keys/archive-key-6.0.asc" state: present
3:31 Gestor Paquetes (III)
apt_repository
https://docs.ansible.com/ansible/latest/modules/apt_repository_module.html#apt-repository-module
- obligatorio
- repo = origen
- opcional
- state = { PRESENT | absent }
- filename = nombre fichero repositorio
- update_cache = yes / no
- validate_certs = yes / no
- mode = modo_fichero
- name: anyadir repositorio google chrome apt_repository: repo: "deb http://dl.google.com/linux/chrome/deb/ stable main" state: present filename: "google-chrome" - name: anaydir en Ububtu a través de PPA apt_repository: repo: "ppa:nginx/stable"
package
wrapper, usar si no requerimos alguna opción concreta de otro módulo de paquetes
https://docs.ansible.com/ansible/latest/modules/package_module.html#package-module
- requerido
- name = origen
- state = { present | absent | latest }
- opcional
- use = { auto | yum | apt }
- name instalar ntpdate package: name: ntpupdate state: latest
</code>
redhat_subscription
- state = { present | absent }
- activationkey
- username
- password
- autosubscribe = yes / no
- server_hostname = nombre servidor
- org_id = organización
- pool = nombre
- force_register = yes / no
- name: registrar sistema redhat_subscription: state: present username: usuario@dominio password: contraseña autosubscribe: yes - name: registrar sistema 2 redhat_subscription: state: present activationkey: mi-clave-RHEL org_id: 2468 pool "^Red Hat Enterprise Server$"
yum
https://docs.ansible.com/ansible/latest/modules/yum_module.html#yum-module
- requerido
- name = nombre / ruta
- opcional
- state = { present | absent | latest }
- conf_file = /ruta/al/fichero
- disable_gpg_check = true / false
- disablerepo = nombre (desactiva temporalmente)
- enablerepo = nombre (activa temporalmente)
- update_cache = yes / no
- name: instalar última versión apache yum: name: httpd state: latest - name: actualizar todos los paquetes yum: name: "*" state: latest - name: Instalar grupo yum: name: "@development tools" state: present
yum_repository
https://docs.ansible.com/ansible/latest/modules/yum_repository_module.html#yum-repository-module
- requerido
- name = nombre / ruta
- opcional
- state = { present | absent }
- description = descripción
- baseurl = dirección
- file = nombre_fichero
- mirrorlist = dirección
- enabled = YES / no
- gpgcheck = YES / no
- name: añadir EPEL yum_repository: name: epel state: present description: EPEL YUM Repo baseurl: http://download.fedoraprojects.org/pub/epel/$releaseserver/$basearch/