= 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
=== redhat_subscription
[[https://docs.ansible.com/ansible/latest/modules/redhat_subscription_module.html#redhat-subscription-module]]
* 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/