| 19 | |
| 20 | |
| 21 | |
| 22 | == Un ejemplo de nodo == |
| 23 | |
| 24 | Los nodos y sus caracteristicas, es decir, lo que puppet hace con ellos, se definen en el servidor puppet. |
| 25 | |
| 26 | Creamos un archivo de nodo en en el servidor puppet. |
| 27 | |
| 28 | {{{ |
| 29 | #touch /etc/puppet/nodes/ejemplo.pp |
| 30 | }}} |
| 31 | Lo editamos con el siguiente contenido: |
| 32 | {{{ |
| 33 | ##Definimos el nombre del nodo |
| 34 | node ejemplo { |
| 35 | ### |
| 36 | # Agregamos el modulo constructor del menu para booteo por pxe. |
| 37 | # screenshot del cliente netboot: https://trac.redcta.org.ar/redcta/attachment/wiki/ServidorRedLocalMultiServiciosCapturasDePantalla/netboot-menu-pxe.png |
| 38 | # |
| 39 | # The objective is the facilitate the download of debian-installer |
| 40 | # and build a menu for the pxe clients. |
| 41 | # |
| 42 | # To use this module, you need to have a tftpd server running and |
| 43 | # configure your dhcp server correctly. |
| 44 | # |
| 45 | # source: https://trac.redcta.org.ar/redcta/browser/trunk/puppet/modules/di_netboot_assistant |
| 46 | include di_netboot_assistant |
| 47 | ### Aca usamos la clase debproxy::activateclient, definimos que el nodo sera cliente del proxy de paquetes, le asignamos a la variable "debproxyhost" el valor "debproxy-ubuntu" |
| 48 | debproxy::activateclient { dist: |
| 49 | debproxyhost => "debproxy-ubuntu", |
| 50 | } |
| 51 | ### Incluimos la clase debproxy::server que se encarga de instalar apt-cacher y verificar la configuracion del paquete. |
| 52 | # source: https://trac.redcta.org.ar/redcta/browser/trunk/puppet/manifests/classes/debproxy.pp |
| 53 | include debproxy::server |
| 54 | ### Usamos el modulo dnsmasq y le pasamos los valores adecuados segun la red en la que estemos trabajando. |
| 55 | # source: https://trac.redcta.org.ar/redcta/browser/trunk/puppet/modules/puppet-dnsmasq |
| 56 | dnsmasq::config { 'oficina': |
| 57 | dhcp_authoritative => 'yes', |
| 58 | dhcp_range => '10.0.12.150,10.0.12.200,255.255.0.0,2h', |
| 59 | dhcp_gw => '10.0.12.1', |
| 60 | dhcp_nameservers => '10.0.12.1', |
| 61 | dhcp_script => '/usr/local/sbin/dnsmasq-genhostname.sh', |
| 62 | dhcp_hostsfile => '/etc/dnsmasq.hostsfile', |
| 63 | |
| 64 | addn_hosts => '/etc/hosts.dnsmasq', |
| 65 | domain => 'ejemplo.org.ar', |
| 66 | dhcp_boot => '/pxelinux.0,ejemplo,10.0.12.2', |
| 67 | tftp_root => '/', |
| 68 | log_queries => 'yes', |
| 69 | log_dhcp => 'yes' |
| 70 | } |
| 71 | # Aca estamos usando el modulo network, nuevamente le asigamos los valores a definir en el nodo. |
| 72 | network::interface { "eth0" : |
| 73 | address => "10.0.12.2", |
| 74 | broadcast => "10.0.12.255", |
| 75 | netmask => "255.255.0.0", |
| 76 | parameters => "gateway 10.0.12.1\n dns-search ejemplo.org.ar\n dns-nameservers 10.0.12.1", |
| 77 | } |
| 78 | # Incluimos las modificacines de los archivos para usar el proxy de paquetes. |
| 79 | include ubuntu_sources_list |
| 80 | # Le decimos a puppet que añada a archivo /etc/apt/sources.list los repositorios para poder instalar virtualbox con apt-get..desde puppet. |
| 81 | include ubuntu_sources_list::virtualbox |
| 82 | |
| 83 | } |
| 84 | |
| 85 | }}} |
| 86 | |
| 87 | |