= 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/