1 00:00:01,710 --> 00:00:13,570 Modesto y Almudena. Vale. Os pego ahí en el chat. Faltáis Modesto y Almudena, ¿vale? Pero ahora voy a ver cómo lo resuelvo. 2 00:00:13,570 --> 00:00:27,289 Voy a poner en el chat un documento. Ese documento aparece vuestro nombre. Tenéis que buscar vuestro nombre y el servidor que os ha correspondido, ¿vale? 3 00:00:27,289 --> 00:00:30,309 Que se llaman ISMIA-02, ISMIA-03. 4 00:00:32,030 --> 00:00:34,409 Vale, y entonces me faltan... 5 00:00:34,409 --> 00:00:35,490 ¿Quién me ha dicho que falta? 6 00:00:35,670 --> 00:00:36,030 ¿Al modelo? 7 00:00:37,030 --> 00:00:40,600 Ahí hay una IPv4. 8 00:00:41,380 --> 00:00:41,600 Sí. 9 00:00:42,880 --> 00:00:44,600 Al modelo y modesto me faltan. 10 00:00:46,039 --> 00:00:49,420 Al modelo y modesto. 11 00:00:49,939 --> 00:00:50,159 Vale. 12 00:00:50,799 --> 00:00:51,140 Vale. 13 00:00:51,140 --> 00:00:59,020 Bueno, tengo una limitación porque solamente me permiten crear nueve servidores, ¿vale? 14 00:00:59,399 --> 00:01:02,880 Entonces voy a crear... Bueno, primero, buenas tardes a todos, perdonad. 15 00:01:03,619 --> 00:01:08,659 Y vamos a empezar la sesión de hoy que la vamos a dedicar al Stack IoT. 16 00:01:09,239 --> 00:01:19,280 Entonces, el Stack IoT es un conjunto de aplicaciones que resuelven el problema de integración y uso de dispositivos IoT. 17 00:01:19,280 --> 00:01:26,400 desde la ingesta de los datos hasta el análisis de los datos, su representación y su almacenamiento. 18 00:01:26,659 --> 00:01:32,500 Entonces, vamos a ver que vamos a utilizar varias aplicaciones para poder realizar todas estas funciones. 19 00:01:32,659 --> 00:01:37,659 Como os digo, ingesta, que la vamos a hacer con MQTT y con una aplicación que se llama Mosquito. 20 00:01:39,019 --> 00:01:43,159 Almacenamiento, que lo vamos a hacer con un sistema de bases de datos de series temporales que se llama InfluenceDB. 21 00:01:44,099 --> 00:01:48,519 La parte de analítica, que la vamos a hacer con un lenguaje de programación que se llama Node-REF, 22 00:01:48,519 --> 00:01:50,379 específico para internet de las cosas 23 00:01:50,379 --> 00:01:52,140 que es un lenguaje de programación visual 24 00:01:52,140 --> 00:01:53,400 bastante sencillo de utilizar 25 00:01:53,400 --> 00:01:56,540 y luego representación y envío de alertas 26 00:01:56,540 --> 00:01:58,359 lo vamos a hacer con Grafana 27 00:01:58,359 --> 00:01:59,900 entonces 28 00:01:59,900 --> 00:02:02,420 esta clase la suelo hacer 29 00:02:02,420 --> 00:02:03,620 con Raspberry Pi 30 00:02:03,620 --> 00:02:06,319 el problema que hay es que el precio de las Raspberry Pi 31 00:02:06,319 --> 00:02:07,540 si están un poco disparado 32 00:02:07,540 --> 00:02:10,000 entonces no merece la pena 33 00:02:10,000 --> 00:02:11,460 comprarlas al precio que están ahora 34 00:02:11,460 --> 00:02:13,719 porque se espera que vuelvan a 35 00:02:13,719 --> 00:02:14,719 normal 36 00:02:14,719 --> 00:02:17,020 entonces lo que he hecho es 37 00:02:17,020 --> 00:02:19,139 crearos un servidor 38 00:02:19,139 --> 00:02:20,919 en la nube a cada uno de vosotros 39 00:02:20,919 --> 00:02:22,860 que son esos datos que os he mandado ahí 40 00:02:22,860 --> 00:02:24,699 y para que veáis como se hace eso 41 00:02:24,699 --> 00:02:26,639 para los que no lo hayáis hecho nunca 42 00:02:26,639 --> 00:02:28,840 el último lo he dejado para hacerlo 43 00:02:28,840 --> 00:02:29,860 ahora manualmente 44 00:02:29,860 --> 00:02:32,219 entonces voy a empezar por esa parte 45 00:02:32,219 --> 00:02:33,780 por crear un servidor 46 00:02:33,780 --> 00:02:36,360 y ese servidor lo podéis considerar como si fuera 47 00:02:36,360 --> 00:02:37,740 vuestra Raspberry Pi 48 00:02:37,740 --> 00:02:40,159 o sea nosotros lo vamos a usar como si fuera un servidor 49 00:02:40,159 --> 00:02:42,139 en el borde pero como veis 50 00:02:42,139 --> 00:02:44,259 puede funcionar perfectamente también en la nube 51 00:02:44,259 --> 00:02:46,680 entonces voy a empezar por compartir pantalla 52 00:02:46,680 --> 00:02:50,599 voy a compartir toda la pantalla 53 00:02:50,599 --> 00:02:51,620 para que lo veáis todo 54 00:02:51,620 --> 00:02:54,860 y ahora me voy a ir 55 00:02:54,860 --> 00:02:56,360 a Headner 56 00:02:56,360 --> 00:02:58,699 Headner es el proveedor que utilizo 57 00:02:58,699 --> 00:03:00,599 yo para servidores, el problema que 58 00:03:00,599 --> 00:03:02,599 tengo es que me limita a 10 servidores 59 00:03:02,599 --> 00:03:04,340 entonces solo voy a poder crear 9 60 00:03:04,340 --> 00:03:06,580 sé que soy 10, entonces voy a ver 61 00:03:06,580 --> 00:03:08,719 como lo resuelvo, estoy pensando 62 00:03:08,719 --> 00:03:10,659 ahora mismo a ver como se me ocurre resolverlo 63 00:03:10,659 --> 00:03:12,599 pero fijaos, aquí lo que tengo es 64 00:03:12,599 --> 00:03:13,900 un proveedor 65 00:03:13,900 --> 00:03:15,280 que ofrece 66 00:03:15,280 --> 00:03:19,120 servicios en la nube, concretamente 67 00:03:19,120 --> 00:03:20,180 este ofrece 68 00:03:20,180 --> 00:03:22,960 si vamos aquí al panel 69 00:03:22,960 --> 00:03:24,780 de control, veis que ofrece la posibilidad de crear 70 00:03:24,780 --> 00:03:26,800 servidores, volúmenes, buckets, que son 71 00:03:26,800 --> 00:03:28,919 sistemas de almacenamiento, balanceadores de 72 00:03:28,919 --> 00:03:31,060 carga, hiperflotantes, redes, firewalls 73 00:03:31,060 --> 00:03:32,960 demás, entonces yo lo que he hecho aquí 74 00:03:32,960 --> 00:03:35,039 es crearme un proyecto 75 00:03:35,039 --> 00:03:36,960 que se llama Ismier, y en ese 76 00:03:36,960 --> 00:03:38,819 proyecto yo ya he creado antes de empezar 77 00:03:38,819 --> 00:03:40,900 la clase, tres servidores, el 6 78 00:03:40,900 --> 00:03:42,659 el 7 y el 8, y ahora 79 00:03:42,659 --> 00:03:44,780 voy a crear un servidor nuevo para que veáis como 80 00:03:44,780 --> 00:03:50,020 se hace esto, ¿vale? Entonces le digo que quiero añadir un servidor nuevo y lo primero 81 00:03:50,020 --> 00:03:53,840 que me va a preguntar es en qué ubicación quiero poner el servidor. Como veis, este 82 00:03:53,840 --> 00:03:58,680 proveedor ofrece en Nuremberg, Falkenstein, Helsinki, Singapur y en dos ubicaciones en 83 00:03:58,680 --> 00:04:04,360 Estados Unidos. Aquí tenéis que tener en cuenta que el precio de los servidores varía 84 00:04:04,360 --> 00:04:09,099 en función de dónde lo ubiquéis, ¿vale? Entonces hay ubicaciones que son más económicas 85 00:04:09,099 --> 00:04:14,319 que otras. Yo normalmente uso un Nuremberg porque suele ser la más económica y además 86 00:04:14,319 --> 00:04:16,060 nos cae cerca porque es Europa Central 87 00:04:16,060 --> 00:04:18,079 con lo cual reducimos las latencias 88 00:04:18,079 --> 00:04:19,980 pero bueno, esto es algo que tendréis que valorar 89 00:04:19,980 --> 00:04:21,660 con el proveedor que vosotros utilicéis 90 00:04:21,660 --> 00:04:23,720 entonces yo le digo que quiero 91 00:04:23,720 --> 00:04:26,319 crear un servidor en Nuremberg 92 00:04:26,319 --> 00:04:28,100 me pregunta que sistema 93 00:04:28,100 --> 00:04:30,279 operativo quiero utilizar, yo hoy voy a usar 94 00:04:30,279 --> 00:04:32,379 Debian, concretamente la versión 12 95 00:04:32,379 --> 00:04:34,019 entonces simplemente elijo 96 00:04:34,019 --> 00:04:35,240 la versión 12 de Debian 97 00:04:35,240 --> 00:04:37,860 y a continuación me dice que tipo de servidor 98 00:04:37,860 --> 00:04:40,000 quiero crear, si quiero crear un servidor 99 00:04:40,000 --> 00:04:42,399 compartido o un servidor 100 00:04:42,399 --> 00:04:43,360 dedicado 101 00:04:43,360 --> 00:04:57,480 En este caso, yo estoy creando a todos servidores compartidos. Son estos servidores de aquí de la izquierda, que está pensado, como indica aquí, para aplicaciones con un tráfico intermedio y que requieren un uso de la CPU bajo. 102 00:04:57,480 --> 00:05:15,420 Sin embargo, si tú quieres una virtual CPU, son todos CPUs virtuales, pero si quieres una para ti solo, dedicada, esa ya permite un tráfico mayor y una capacidad de cómputo sostenida, no como la otra que es para cargas bajas. 103 00:05:15,420 --> 00:05:26,220 Como veis, para los compartidos te ofrece dos arquitecturas, la arquitectura x86 o bien la RM64 basada en procesadores Ampere. 104 00:05:26,660 --> 00:05:35,800 Yo estoy usando x86 y veis que luego aparece debajo el precio que tienen los servidores, que obviamente varía según sus características. 105 00:05:35,800 --> 00:05:49,740 Yo, por ejemplo, estoy creando hoy para vosotros servidores con dos CPUs virtuales, 4 GB de RAM, 40 GB de disco de estado sólido y hasta 20 TB de tráfico. 106 00:05:50,240 --> 00:05:54,560 Y esto tiene un coste de 0,6 céntimos a la hora. 107 00:05:54,779 --> 00:05:59,079 Eso es lo que me van a cobrar con un máximo de unos 4 euros al mes. 108 00:05:59,360 --> 00:06:01,220 Eso es lo que me cuesta tener este servidor. 109 00:06:01,620 --> 00:06:04,160 Como veis, la oferta es variada. 110 00:06:04,160 --> 00:06:10,639 Si vamos bajando, bueno, el que he elegido es equivalente aproximadamente a una Raspberry Pi intermedia, ¿vale? 111 00:06:10,720 --> 00:06:16,839 Las Raspberry Pi tienen un único procesador con cuatro núcleos, aquí tenemos dos núcleos, 4 GB, bueno, es parecido. 112 00:06:17,379 --> 00:06:26,180 Pero como veis, podemos ir bajando y tenemos equipos ya con 16 CPUs, 32 GB de RAM, incluso se pueden solicitar otros equipos más potentes aún. 113 00:06:26,720 --> 00:06:27,699 Bueno, eso por un lado. 114 00:06:28,180 --> 00:06:34,500 Luego veis que tiene aquí una serie de características como la de utilizar una dirección IPv4, 115 00:06:34,639 --> 00:06:36,819 que como veis, curiosamente eso tiene un coste. 116 00:06:36,819 --> 00:06:41,220 Sin embargo, si usásemos dirección IPv6, esas son gratuitas. 117 00:06:41,579 --> 00:06:46,120 Ya sabéis que las IPv4 se han agotado y por eso las reutilizan y tienen un coste. 118 00:06:46,759 --> 00:06:47,579 Más cosas. 119 00:06:48,139 --> 00:06:50,100 Podemos utilizar nuestras credenciales SH. 120 00:06:50,579 --> 00:06:55,139 En este caso yo, por no complicar la clase, lo voy a usar sin certificados SSH. 121 00:06:55,139 --> 00:07:15,959 Y por último, simplemente tengo que añadir un nombre al servidor. Lo voy a llamar ismie09. Le digo crear y lo que está ocurriendo ahora mismo es que me están creando ese servidor, como podéis ver aquí, que está al 0% y dice que va a estar disponible en menos de un minuto. 122 00:07:15,959 --> 00:07:18,540 entre tanto estaré recibiendo 123 00:07:18,540 --> 00:07:20,439 aquí un correo indicándome 124 00:07:20,439 --> 00:07:22,660 que se ha creado el servidor 9 125 00:07:22,660 --> 00:07:24,579 este servidor 126 00:07:24,579 --> 00:07:25,740 se lo voy a asignar al Mudena 127 00:07:25,740 --> 00:07:27,459 que es la siguiente que tenía en la lista 128 00:07:27,459 --> 00:07:29,139 y me falta Modesto 129 00:07:29,139 --> 00:07:32,259 yo creo que tú vas a tener que trabajar 130 00:07:32,259 --> 00:07:34,680 con el mío, vamos a compartir el servidor tú y yo 131 00:07:34,680 --> 00:07:36,259 entonces esto que pongo 132 00:07:36,259 --> 00:07:37,839 en el chat ahora es para el Mudena 133 00:07:37,839 --> 00:07:39,839 voy a ponerlo 134 00:07:39,839 --> 00:07:43,600 perdona yo he llegado más tarde 135 00:07:43,600 --> 00:07:45,120 no sé si tengo que apuntar algo 136 00:07:45,120 --> 00:07:49,540 A ver, ¿ha llegado alguien después de...? 137 00:07:49,540 --> 00:07:52,800 No, yo he llegado hace 10 minutos o algo así. 138 00:07:53,199 --> 00:07:56,120 ¿Quién es? ¿Quién está hablando, perdón? 139 00:07:56,540 --> 00:07:57,000 Adrián. 140 00:07:58,459 --> 00:08:02,819 Adrián, vale, pues Adrián también. Te pongo en la lista, ¿vale? Te tengo entonces debajo de Modesto. 141 00:08:03,920 --> 00:08:05,579 Adrián y Modesto, vale. 142 00:08:07,540 --> 00:08:13,000 Ahora veo cómo resuelvo esto porque es que el problema es que estamos limitados a usar un máximo de 10 servidores. 143 00:08:13,000 --> 00:08:14,800 vale, entonces 144 00:08:14,800 --> 00:08:16,279 en el chat 145 00:08:16,279 --> 00:08:18,720 lo que pongo a continuación es para el Modena 146 00:08:18,720 --> 00:08:23,459 y vosotros me temo que tendréis 147 00:08:23,459 --> 00:08:25,420 que compartir 148 00:08:25,420 --> 00:08:27,079 el mío, vale, voy a 149 00:08:27,079 --> 00:08:28,839 voy a compartiros el mío 150 00:08:28,839 --> 00:08:31,420 el ISMIE01 y trabajáis con él 151 00:08:31,420 --> 00:08:33,360 vale, bueno, ya tenéis 152 00:08:33,360 --> 00:08:34,539 ahí los servidores, vale 153 00:08:34,539 --> 00:08:36,659 no hagáis nada con ellos, de momento 154 00:08:36,659 --> 00:08:39,379 vamos a hacer la presentación para que entendáis de qué va 155 00:08:39,379 --> 00:08:41,399 todo esto y luego os iré pidiendo 156 00:08:41,399 --> 00:08:48,360 que vayáis entrando al servidor y que hagamos una serie de ejercicios. 157 00:08:48,980 --> 00:08:54,019 Entonces, este tema normalmente, como os digo, lo hago sobre Raspberry Pi, 158 00:08:54,159 --> 00:09:00,080 con la idea de explicar lo sencillo que es desplegar un sistema de Internet de las cosas en el borde, 159 00:09:00,460 --> 00:09:02,259 ya no en la nube, sino en el Edge. 160 00:09:02,799 --> 00:09:10,039 Entonces, vais a ver que lo interesante de este método es que es idéntico desplegar en la nube que desplegar en el Edge. 161 00:09:10,039 --> 00:09:15,860 Entonces lo que normalmente hacemos con una Raspberry Pi en local, vosotros hoy lo vais a hacer con un servidor en la nube. 162 00:09:16,379 --> 00:09:26,139 No voy a entrar en los detalles de la Raspberry Pi porque entiendo que los conocéis, que son single board computers, placas que son como ordenadores personales en una sola placa. 163 00:09:26,600 --> 00:09:32,500 Hay varios modelos, como podéis ver, están muy de moda los Compute Module, estos que veis aquí abajo a la izquierda. 164 00:09:33,259 --> 00:09:37,940 Y el problema que ha habido es que con la crisis de los semiconductores se ha elevado el precio muchísimo. 165 00:09:37,940 --> 00:09:45,019 Estas placas que originalmente iban a costar 5 euros, pues hablando de la Raspberry Pi 4, pues te sale a lo mejor por 100 euros o algo así. 166 00:09:45,679 --> 00:09:47,620 Lo cual no tiene mucho sentido. 167 00:09:48,220 --> 00:09:56,159 Aquí tenéis la Raspberry Pi 4, el modelo B, para que veáis todos los periféricos que se pueden conectar a este tipo de equipos. 168 00:09:56,580 --> 00:10:04,100 Como veis trae un microcontrolador ARM con 4 núcleos de 64 bits y que además incluye una GPU. 169 00:10:04,100 --> 00:10:06,639 comunicaciones wifi y bluetooth 170 00:10:06,639 --> 00:10:09,120 y luego en este caso 171 00:10:09,120 --> 00:10:10,899 trae 4 gigas de RAM y como veis 172 00:10:10,899 --> 00:10:12,820 una pletora aquí de puertos, tanto 173 00:10:12,820 --> 00:10:14,919 ethernet como USB, puertos para 174 00:10:14,919 --> 00:10:16,980 pantallas, puertos para cámaras y demás 175 00:10:16,980 --> 00:10:19,179 esto es una 176 00:10:19,179 --> 00:10:20,679 Raspberry Pi 0 177 00:10:20,679 --> 00:10:22,860 que es muy útil porque esta 178 00:10:22,860 --> 00:10:24,860 sí que está bastante económica 179 00:10:24,860 --> 00:10:27,179 se puede adquirir aproximadamente por unos 20 euros 180 00:10:27,179 --> 00:10:28,100 incluso algo menos 181 00:10:28,100 --> 00:10:30,919 lo que ocurre es que aquí renuncias por ejemplo 182 00:10:30,919 --> 00:10:32,259 al puerto ethernet 183 00:10:32,259 --> 00:10:34,120 está en otra del puerto Ethernet 184 00:10:34,120 --> 00:10:36,120 entonces si tú necesitas puerto Ethernet 185 00:10:36,120 --> 00:10:38,320 vas a tener que añadirle un PoE 186 00:10:38,320 --> 00:10:39,879 renuncias también al jack 187 00:10:39,879 --> 00:10:42,139 de audio y a otras cuestiones 188 00:10:42,139 --> 00:10:43,840 pero es verdad que es muy útil 189 00:10:43,840 --> 00:10:46,039 de hecho muchos sistemas en el borde utilizan 190 00:10:46,039 --> 00:10:48,120 este tipo de placas o bien 191 00:10:48,120 --> 00:10:50,419 un Compute Module, aquí hay una comparativa 192 00:10:50,419 --> 00:10:52,120 de las características de esta 193 00:10:52,120 --> 00:10:54,340 presentación ya la tenéis en el aula virtual 194 00:10:54,340 --> 00:10:56,340 una comparativa 195 00:10:56,340 --> 00:10:58,139 de los distintos modelos, ahora recientemente 196 00:10:58,139 --> 00:10:59,899 ha salido la Raspberry Pi 5 197 00:10:59,899 --> 00:11:03,519 y bueno, pues aquí tenéis la comparativa 198 00:11:03,519 --> 00:11:05,519 de la Raspberry Pi 5 a la Raspberry Pi 4 199 00:11:05,519 --> 00:11:06,259 y aquí tenéis 200 00:11:06,259 --> 00:11:09,059 la diferencia de velocidad 201 00:11:09,059 --> 00:11:12,009 entonces bueno 202 00:11:12,009 --> 00:11:15,149 es más rápido, es lo único 203 00:11:15,149 --> 00:11:16,330 entonces podéis ver ahí 204 00:11:16,330 --> 00:11:18,950 que efectivamente pues sí que hay una diferencia 205 00:11:18,950 --> 00:11:20,990 de velocidad pues notable 206 00:11:20,990 --> 00:11:22,110 de la Raspberry Pi 5 207 00:11:22,110 --> 00:11:25,190 que marca 753 puntos 208 00:11:25,190 --> 00:11:26,710 a la Raspberry Pi 4 209 00:11:26,710 --> 00:11:27,669 como veis aquí abajo 210 00:11:27,669 --> 00:11:30,629 entonces bueno, el problema que hay 211 00:11:30,629 --> 00:11:32,669 es que está, como digo, está un poco inflada 212 00:11:32,669 --> 00:11:34,090 de precio todavía. 213 00:11:36,269 --> 00:11:36,750 Más 214 00:11:36,750 --> 00:11:38,370 cosas. A ver. 215 00:11:39,789 --> 00:11:40,509 ¿Qué alternativas 216 00:11:40,509 --> 00:11:42,230 tenemos a las Raspberry Pi? 217 00:11:42,309 --> 00:11:44,389 Mientras estas siguen infladas de precio, 218 00:11:44,669 --> 00:11:46,429 pues tenéis la opción de comprar otro tipo de 219 00:11:46,429 --> 00:11:48,470 equipos. El que probablemente da mejor 220 00:11:48,470 --> 00:11:50,549 relación calidad-precio son las Orange Pi, 221 00:11:50,549 --> 00:11:52,570 ¿vale? Pero también están caras, 222 00:11:52,610 --> 00:11:54,409 la verdad. Entonces, si buscáis un single 223 00:11:54,409 --> 00:11:56,370 board computer económico, el 224 00:11:56,370 --> 00:11:58,230 libre LePotato, este de aquí, 225 00:11:58,490 --> 00:12:00,389 es este blanco que veis ahí, está 226 00:12:00,389 --> 00:12:02,750 bastante bien de precios, son unos 35 euros 227 00:12:02,750 --> 00:12:04,009 es verdad que 228 00:12:04,009 --> 00:12:06,509 tiene menos capacidad de cómputo que una Raspberry Pi 229 00:12:06,509 --> 00:12:08,090 pero bueno, el precio lo hace 230 00:12:08,090 --> 00:12:09,970 bastante razonable 231 00:12:09,970 --> 00:12:12,429 por supuesto hay otro tipo 232 00:12:12,429 --> 00:12:14,509 de equipos más específicos para robótica 233 00:12:14,509 --> 00:12:15,950 o para inteligencia artificial 234 00:12:15,950 --> 00:12:18,350 como la línea de NVIDIA 235 00:12:18,350 --> 00:12:20,230 NVIDIA Jetson, que ha sido 236 00:12:20,230 --> 00:12:21,649 recientemente actualizada 237 00:12:21,649 --> 00:12:23,909 pero son equipos para cosas diferentes 238 00:12:23,909 --> 00:12:26,090 lo que veis aquí a la izquierda es una Raspberry Pi 239 00:12:26,090 --> 00:12:28,029 que es un single board computer generalista 240 00:12:28,029 --> 00:12:30,190 esa placa sirve 241 00:12:30,190 --> 00:12:33,830 para ejecutar aplicaciones normales, como las que usamos normalmente, 242 00:12:33,950 --> 00:12:37,710 aplicaciones de escritorio, o bien las que vamos a usar hoy, 243 00:12:37,909 --> 00:12:41,809 bases de datos, sistemas de dashboard, de paneles de control o algo así. 244 00:12:42,710 --> 00:12:46,210 Y sin embargo, lo que veis a la derecha, que es en este caso un Adgestron Nano, 245 00:12:46,789 --> 00:12:51,210 ahí lo que tenéis es un equipo que también puede ejecutar ese tipo de aplicaciones de escritorio, 246 00:12:51,210 --> 00:12:57,190 pero es que adicionalmente lleva, en este caso, 128 núcleos de GPU. 247 00:12:57,190 --> 00:13:11,429 Entonces, claro, está más pensado para ejecutar modelos de inteligencia artificial. Son bestias distintas, por así decirlo. Entonces, el de la izquierda es para uso general, el de la derecha es para inteligencia artificial o robótica. 248 00:13:12,009 --> 00:13:14,409 Entonces, ¿qué hacemos en este curso? 249 00:13:14,549 --> 00:13:20,590 Pues en este curso lo que solemos hacer es con la Raspberry Pi, pues instalamos la imagen, 250 00:13:21,690 --> 00:13:27,049 luego vamos instalando distintas aplicaciones, vemos cómo controlar los pines, enseñamos un poco de Python y demás. 251 00:13:27,649 --> 00:13:31,669 Eso hoy no lo voy a hacer porque directamente lo vamos a hacer en un servidor en la nube. 252 00:13:32,289 --> 00:13:36,590 Pero sí que quería enseñaros qué aspecto tienen este tipo de equipos, ¿vale? 253 00:13:36,590 --> 00:13:37,590 Que es lo que estáis viendo aquí. 254 00:13:37,590 --> 00:13:41,330 Esto es un Compute Module, este por ejemplo nosotros lo usamos mucho. 255 00:13:41,429 --> 00:14:01,750 Es esta pieza que está aquí en medio. Como veis, eso es una Raspberry Pi, pero no tiene ningún tipo de puerto. Entonces, para poder disponer de puertos, tengo que pinchar el Compute Module en una placa madre, que es lo que estáis viendo aquí. Y esa placa madre es la que ya me provee de todos los puertos que yo necesito para poder utilizarla. 256 00:14:01,750 --> 00:14:04,850 entonces, para que veáis un ejemplo 257 00:14:04,850 --> 00:14:07,110 en el Instituto Morataraz 258 00:14:07,110 --> 00:14:08,549 han instalado los alumnos allí 259 00:14:08,549 --> 00:14:10,590 un equipo de estos en el Edge 260 00:14:10,590 --> 00:14:12,610 un equipo que está basado precisamente 261 00:14:12,610 --> 00:14:14,309 en esto que estáis viendo aquí, un Compute Module 262 00:14:14,309 --> 00:14:16,769 entonces lo que voy a hacer es acceder a él 263 00:14:16,769 --> 00:14:18,549 para que veáis cómo se hace esto 264 00:14:18,549 --> 00:14:20,470 cómo se hace el acceso en remoto 265 00:14:20,470 --> 00:14:22,429 como sabéis 266 00:14:22,429 --> 00:14:24,669 en los centros hay algunas limitaciones 267 00:14:24,669 --> 00:14:26,710 porque hay firewalls y hay algunos puertos 268 00:14:26,710 --> 00:14:27,590 que están cerrados 269 00:14:27,590 --> 00:14:30,950 entonces, una forma de evitar estas restricciones 270 00:14:30,950 --> 00:14:32,970 es utilizar redes privadas 271 00:14:32,970 --> 00:14:34,549 virtuales, entonces 272 00:14:34,549 --> 00:14:36,409 hay dos principalmente 273 00:14:36,409 --> 00:14:37,769 ZeroTier 274 00:14:37,769 --> 00:14:40,570 que es bastante conocida 275 00:14:40,570 --> 00:14:42,730 aunque para mi resulta un poco compleja 276 00:14:42,730 --> 00:14:44,629 y por eso yo suelo usar otra que se llama 277 00:14:44,629 --> 00:14:46,710 TileScale, entonces 278 00:14:46,710 --> 00:14:48,269 eso ya lo han instalado los chicos 279 00:14:48,269 --> 00:14:50,610 en el sistema de allí 280 00:14:50,610 --> 00:14:52,769 de 10 monatalas, entonces por ejemplo 281 00:14:52,769 --> 00:14:54,029 fijaos, si yo entro aquí 282 00:14:54,029 --> 00:14:56,870 a ver, bueno primero 283 00:14:56,870 --> 00:14:58,990 el TileScale es esto que veis 284 00:14:58,990 --> 00:15:01,110 aquí, a ver, voy a acceder para que lo veáis 285 00:15:01,110 --> 00:15:01,909 es este iconillo 286 00:15:01,909 --> 00:15:04,610 y ahí estáis viendo 287 00:15:04,610 --> 00:15:06,870 que tengo unos cuantos 288 00:15:06,870 --> 00:15:07,590 dispositivos 289 00:15:07,590 --> 00:15:10,529 el dispositivo que han instalado ellos se llama 290 00:15:10,529 --> 00:15:12,809 RackPios, entonces lo bueno 291 00:15:12,809 --> 00:15:13,850 que tiene este sistema 292 00:15:13,850 --> 00:15:16,929 es que te da una dirección IP 293 00:15:16,929 --> 00:15:18,789 de ese dispositivo en la red 294 00:15:18,789 --> 00:15:20,850 privada virtual, con lo cual yo ahora puedo 295 00:15:20,850 --> 00:15:22,629 ir al navegador web, por ejemplo aquí 296 00:15:22,629 --> 00:15:24,909 y escribir esa dirección IP 297 00:15:24,909 --> 00:15:26,690 como veis es una dirección IP local 298 00:15:26,690 --> 00:15:28,289 porque pertenece a una VPN 299 00:15:28,289 --> 00:15:34,389 y yo directamente digo, por ejemplo, que quiero acceder al puerto 9443 de esa máquina 300 00:15:34,389 --> 00:15:41,360 y entonces veis que acabo de acceder a la máquina que han instalado estos chicos 301 00:15:41,360 --> 00:15:44,480 y lo que os estoy enseñando ahora es Portainer. 302 00:15:45,100 --> 00:15:48,240 Portainer es una aplicación que sirve para gestionar contenedores. 303 00:15:48,379 --> 00:15:50,259 Eso lo vamos a ver ahora en la clase de hoy, ¿vale? 304 00:15:50,259 --> 00:15:52,980 Que es un contenedor y para qué sirve Portainer. 305 00:15:53,399 --> 00:15:55,580 Pero simplemente para ubicar un poco la clase de hoy, 306 00:15:55,679 --> 00:15:59,399 quería enseñaros esto desde el principio para que veáis un sistema en funcionamiento. 307 00:15:59,399 --> 00:16:26,679 Entonces, veis que yo en Portainer, en este caso, tenemos un solo escenario, un solo entorno, que es el entorno local, y si acedo a ese entorno local, vais a ver que yo tengo aquí un stack funcionando, y que ese stack, tengo aquí el Telescale, que es la aplicación stack, y luego si fuéramos a ver los contenedores, veis que tengo contenedores de Basic Station, de Portainer, un Packet Forwarder, ¿vale? 308 00:16:26,679 --> 00:16:38,460 Entonces, aquí veis que Portainer sirve precisamente para gestionar las aplicaciones que yo tengo funcionando en un sistema en la nube o, como es el caso, en un sistema en el borde. 309 00:16:39,100 --> 00:16:48,720 Y claro, muy interesante es que vais a ver que yo, por ejemplo, puedo acceder a la consola de este contenedor o podría acceder al log para ver todo lo que está ocurriendo. 310 00:16:48,720 --> 00:16:54,860 Puedo estar viendo aquí en tiempo real lo que le está ocurriendo a aquel dispositivo. 311 00:16:54,860 --> 00:17:22,400 Vale, entonces esto simplemente os lo enseño para que pongáis un poco un marco a lo que vamos a hacer a continuación y que entendáis la utilidad que tiene esto, que es muchísimo, ¿vale? Porque por un lado me permite acceder remotamente a dispositivos y gestionarlos a distancia y por otro, gracias al uso de contenedores, es muy sencillo levantar nuevos servicios, actualizarlos, crear duplicados de servicios y demás. 312 00:17:22,400 --> 00:17:42,240 Entonces, bueno, visto esto, continúo con la presentación y esto no lo vamos a poder ver porque no tenemos la Raspberry Pi y vamos a ir directamente a la parte de máquinas virtuales y dockers, ¿vale? 313 00:17:42,240 --> 00:18:05,400 Entonces, tú cuando tienes una máquina, cuando tú tienes un ordenador, tienes varias posibilidades para instalar nuevos software. Una de esas posibilidades es hacerlo a hierro, en bare metal, que se suele decir, que directamente te vas a tu ordenador y añades o eliminas software. En este caso, instalas una aplicación, como lo hemos hecho toda la vida. Eso es lo que se suele llamar instalación a hierro. 314 00:18:05,400 --> 00:18:27,220 No obstante, ahora tenemos alternativas que son, por ejemplo, la instalación, la utilización de contenedores. Entonces, aquí veis la diferencia entre utilizar un sistema de Bare Metal a la derecha, un sistema de máquinas virtuales a la izquierda, o bien un sistema de contenedores en el centro. 315 00:18:27,220 --> 00:18:32,220 Veis que hay tres formas ya de gestionar nuestros recursos de cómputo. 316 00:18:32,839 --> 00:18:37,079 BareMetal, no voy a entrar en él porque lo habéis hecho cientos de veces, instalar aplicaciones, ¿vale? 317 00:18:37,319 --> 00:18:40,079 Vamos a ir al de la izquierda, al de servidores virtuales. 318 00:18:40,619 --> 00:18:47,440 Entonces, si nos fijamos aquí en el de servidores virtuales, vais a ver que lo que tenemos es un hardware abajo, en la capa de abajo, un hardware anfitrión. 319 00:18:48,180 --> 00:18:55,660 Sobre ese hardware anfitrión se instala un sistema operativo de anfitrión, puede ser un Windows, puede ser algún tipo de Linux. 320 00:18:55,660 --> 00:19:01,660 y sobre ese sistema operativo se instala un programa especial que recibe el nombre de hipervisor. 321 00:19:02,299 --> 00:19:06,940 El hipervisor, uno muy popular, por ejemplo, es Prozmos, pero puede ser cualquier otro. 322 00:19:07,559 --> 00:19:13,160 Entonces, lo que hace el hipervisor es crear máquinas virtuales o servidores virtuales. 323 00:19:13,160 --> 00:19:19,299 Es decir, de los recursos de hardware que tienes reales, lo que hace es virtualizarlos para poder simular 324 00:19:19,299 --> 00:19:24,599 que ese único ordenador real es en realidad varios ordenadores virtuales. 325 00:19:24,599 --> 00:19:45,359 Esto de hecho es lo que yo acabo de hacer cuando he creado ese último servidor para Almudena. Lo que he hecho es utilizar un sistema de hipervisor para crearme una máquina virtual nueva. Entonces, como veis, cada una de esas máquinas virtuales que vosotros habéis recibido las credenciales, vais a tener que instalarle un sistema operativo. Cada máquina virtual tiene su propio sistema operativo. 326 00:19:45,359 --> 00:19:59,480 Y luego sobre ese sistema operativo, como para vosotros son máquinas normales y corrientes, vosotros veis la máquina virtual como si fuera una máquina física, pues la forma de instalar las aplicaciones es exactamente la misma forma que en Bare Metal, que hay error. 327 00:19:59,740 --> 00:20:01,819 O sea, vosotros instalaríais ahí las aplicaciones sin más. 328 00:20:02,660 --> 00:20:07,720 Este sistema es muy popular, pero tiene algunos inconvenientes, igual que también tiene ventajas. 329 00:20:07,859 --> 00:20:13,039 De esto ha habido una pequeña guerra de la gente que defiende las máquinas virtuales y los que defienden los contenedores. 330 00:20:13,039 --> 00:20:15,279 no hay que entrar en polémica, simplemente 331 00:20:15,279 --> 00:20:17,279 cada uno tiene ventajas e inconvenientes 332 00:20:17,279 --> 00:20:19,640 y hay situaciones en las que unos son más útiles que otros 333 00:20:19,640 --> 00:20:21,500 por ejemplo, aquí se ve 334 00:20:21,500 --> 00:20:23,039 claramente que un problema que tienen 335 00:20:23,039 --> 00:20:25,319 las máquinas virtuales es que 336 00:20:25,319 --> 00:20:27,339 el sistema operativo muchas veces es 337 00:20:27,339 --> 00:20:29,299 un recurso que va a estar repetido, si tú 338 00:20:29,299 --> 00:20:31,400 tienes varias máquinas virtuales con el mismo sistema 339 00:20:31,400 --> 00:20:33,119 operativo, pues vas a estar 340 00:20:33,119 --> 00:20:35,180 malgastando un espacio ahí de almacenamiento 341 00:20:35,180 --> 00:20:37,319 porque vas a tener ejecutando 342 00:20:37,319 --> 00:20:39,259 simultáneamente varios sistemas operativos 343 00:20:39,259 --> 00:20:41,079 cuando a lo mejor podías tener unos 344 00:20:41,079 --> 00:20:43,099 solo. Y precisamente para eso 345 00:20:43,099 --> 00:20:44,880 se crean los contenedores, que es lo que estáis viendo 346 00:20:44,880 --> 00:20:46,980 en el medio. En el medio lo que tenemos es 347 00:20:46,980 --> 00:20:48,859 exactamente igual, una máquina anfitrión, 348 00:20:49,059 --> 00:20:50,940 un hierro, una máquina física 349 00:20:50,940 --> 00:20:52,880 sobre la que instalamos un sistema 350 00:20:52,880 --> 00:20:54,720 operativo anfitrión, y ahora 351 00:20:54,720 --> 00:20:56,640 en lugar de instalar 352 00:20:56,640 --> 00:20:58,819 un hipervisor, lo que 353 00:20:58,819 --> 00:21:00,700 hacemos es instalar un motor de 354 00:21:00,700 --> 00:21:02,900 contenedores, un gestor de contenedores. 355 00:21:03,500 --> 00:21:04,980 Se llama así genéricamente, 356 00:21:05,140 --> 00:21:06,779 pero todo el mundo lo conoce como Docker, porque 357 00:21:06,779 --> 00:21:08,599 es el estándar, ¿vale? Docker es 358 00:21:08,599 --> 00:21:10,740 un tipo de contenedores, hay otros, 359 00:21:10,740 --> 00:21:29,980 Pero Docker es el más conocido. Entonces, ¿qué me permite Docker? Pues lo que me permite es luego instalar las aplicaciones como si fueran contenedores. Entonces, lo interesante aquí es que cada contenedor está completamente aislado de los demás contenedores. No comparten librerías, no comparten archivos, no comparten nada. 360 00:21:29,980 --> 00:21:46,240 Con lo cual, la seguridad de estos contenedores está garantizada y adicionalmente, como son unidades atómicas independientes, es muy fácil eliminarlas, replicarlas, ampliarle los recursos, todo lo que necesites. 361 00:21:46,240 --> 00:21:48,720 inconveniente principal de los contenedores 362 00:21:48,720 --> 00:21:50,839 pues que como veis hay un único 363 00:21:50,839 --> 00:21:52,900 sistema operativo, entonces tú te tienes 364 00:21:52,900 --> 00:21:54,900 que garantizar que el contenedor 365 00:21:54,900 --> 00:21:56,720 que quieres utilizar es compatible 366 00:21:56,720 --> 00:21:58,559 con el sistema operativo del anfitrión 367 00:21:58,559 --> 00:22:00,720 porque de otro modo no te va a funcionar 368 00:22:00,720 --> 00:22:03,079 pues eso es una introducción así rápida 369 00:22:03,079 --> 00:22:04,519 a lo que son los 370 00:22:04,519 --> 00:22:06,900 contenedores, como os decía 371 00:22:06,900 --> 00:22:08,759 el sistema 372 00:22:08,759 --> 00:22:10,700 de contenedores más famoso es Docker 373 00:22:10,700 --> 00:22:12,039 y Docker 374 00:22:12,039 --> 00:22:14,500 se basa en tres conceptos 375 00:22:14,500 --> 00:22:16,859 esenciales, el registro 376 00:22:16,859 --> 00:22:18,279 la imagen 377 00:22:18,279 --> 00:22:19,579 y el contenedor 378 00:22:19,579 --> 00:22:22,960 el registro es simplemente un almacén 379 00:22:22,960 --> 00:22:25,200 que está en hubducker.com 380 00:22:25,200 --> 00:22:26,500 si yo accedo a esa dirección 381 00:22:26,500 --> 00:22:29,400 escribo aquí hub.ducker.com 382 00:22:29,400 --> 00:22:30,460 vale 383 00:22:30,460 --> 00:22:31,819 esto es una colección 384 00:22:31,819 --> 00:22:34,160 de todas las aplicaciones disponibles 385 00:22:34,160 --> 00:22:35,980 en modo contenedor 386 00:22:35,980 --> 00:22:37,680 yo por ejemplo puedo buscar 387 00:22:37,680 --> 00:22:38,279 thingsboard 388 00:22:38,279 --> 00:22:41,519 y vais a ver que 389 00:22:41,519 --> 00:22:43,640 Thingsboard, existen varias 390 00:22:43,640 --> 00:22:45,799 versiones de Thingsboard en formato contenedor 391 00:22:45,799 --> 00:22:47,660 que podría instalar. Puedo 392 00:22:47,660 --> 00:22:49,660 buscar, por ejemplo, Joomla, que es un gestor 393 00:22:49,660 --> 00:22:51,700 de contenidos, que no tiene nada que ver con Internet de las 394 00:22:51,700 --> 00:22:53,160 Cosas. ¿Veis que también existe? 395 00:22:53,839 --> 00:22:54,279 WordPress. 396 00:22:55,920 --> 00:22:57,099 ¿Veis que también existe? 397 00:22:57,740 --> 00:22:59,640 Entonces, hay un montón de aplicaciones 398 00:22:59,640 --> 00:23:01,380 que ya existen en formato contenedor 399 00:23:01,380 --> 00:23:03,700 y que vais a poder instalar desde el 400 00:23:03,700 --> 00:23:05,700 registro. Aquí en el registro es como 401 00:23:05,700 --> 00:23:07,599 por así decirlo, una biblioteca 402 00:23:07,599 --> 00:23:09,559 de aplicaciones que tú te puedes 403 00:23:09,559 --> 00:23:14,299 instalar. El segundo concepto es el de imagen. Tú cuando ya has encontrado una aplicación que te 404 00:23:14,299 --> 00:23:20,720 quieres instalar, lo que haces es descargar la imagen de esa aplicación. La imagen lo podéis 405 00:23:20,720 --> 00:23:27,619 imaginar como si fuera una plantilla. Es una plantilla a partir de la cual luego vamos a 406 00:23:27,619 --> 00:23:33,440 crear contenedores. Esa imagen es única y yo voy a poder crear varios contenedores a partir de esa 407 00:23:33,440 --> 00:23:35,220 imagen. Yo, por ejemplo, podría descargarme 408 00:23:35,220 --> 00:23:37,339 la imagen de Joomla o de 409 00:23:37,339 --> 00:23:39,240 Wordpress y luego crear 410 00:23:39,240 --> 00:23:41,240 10 contenedores Wordpress, uno para 411 00:23:41,240 --> 00:23:43,519 cada uno de mis alumnos para que ellos se desarrollen 412 00:23:43,519 --> 00:23:45,059 un blog durante el curso, por ejemplo. 413 00:23:45,299 --> 00:23:47,519 Pues esa es la diferencia entre 414 00:23:47,519 --> 00:23:49,319 una imagen, que es como una 415 00:23:49,319 --> 00:23:51,539 plantilla, y un contenedor 416 00:23:51,539 --> 00:23:53,319 que es la ejecución de una 417 00:23:53,319 --> 00:23:55,079 imagen, por así decirlo, una instancia 418 00:23:55,079 --> 00:23:57,299 de esa imagen. Es como si quisierais 419 00:23:57,299 --> 00:23:59,160 si hablamos de programación orientada a objetos 420 00:23:59,160 --> 00:24:01,359 la imagen se podría asimilar a la 421 00:24:01,359 --> 00:24:03,319 clase y el contenedor sería 422 00:24:03,319 --> 00:24:05,599 un objeto creado a partir de esa clase 423 00:24:05,599 --> 00:24:07,279 ¿vale? pues esos son los tres 424 00:24:07,279 --> 00:24:09,299 conceptos fundamentales de Docker, repito 425 00:24:09,299 --> 00:24:11,319 registro, imagen 426 00:24:11,319 --> 00:24:12,539 y contenedor 427 00:24:12,539 --> 00:24:15,160 ¿por qué se ha puesto 428 00:24:15,160 --> 00:24:17,140 tan de moda Docker? bueno 429 00:24:17,140 --> 00:24:18,940 pues porque en un primer lugar 430 00:24:18,940 --> 00:24:20,440 aprovecha mejor los recursos 431 00:24:20,440 --> 00:24:23,180 con lo cual se puede utilizar en máquinas 432 00:24:23,180 --> 00:24:24,619 virtuales de menor tamaño 433 00:24:24,619 --> 00:24:26,420 y además se inicia más rápido 434 00:24:26,420 --> 00:24:28,980 es cierto que sigue siendo más lento que una 435 00:24:28,980 --> 00:24:31,140 instalación bare metal, pero es más rápido 436 00:24:31,140 --> 00:24:32,680 generalmente que una máquina virtual 437 00:24:33,359 --> 00:24:38,579 Además, como os decía antes, los contenedores están completamente independizados entre sí, incluso las librerías. 438 00:24:39,079 --> 00:24:44,099 Entonces tú puedes tener, por ejemplo, un contenedor que use Python 2, otro contenedor que use Python 3. 439 00:24:44,099 --> 00:24:56,079 Que esto ya sabéis que algunas veces en un sistema normal es un dolor de cabeza porque tienes que instalar las dos versiones o dar prioridad a una sobre otra porque un programa solo funciona con Python 2, otro con Python 3 y demás. 440 00:24:56,880 --> 00:24:59,759 Tercer factor a favor de Docker, la flexibilidad. 441 00:24:59,759 --> 00:25:02,539 tú instalas, te descargas una imagen 442 00:25:02,539 --> 00:25:04,740 en cuestión de segundos, puedes actualizar la imagen 443 00:25:04,740 --> 00:25:06,500 inmediatamente, realmente 444 00:25:06,500 --> 00:25:08,400 es muy conveniente, muy rápido 445 00:25:08,400 --> 00:25:10,559 y el principal inconveniente es que os decía 446 00:25:10,559 --> 00:25:12,640 que todas las imágenes que uses 447 00:25:12,640 --> 00:25:14,500 en un servidor tienen que ser compatibles 448 00:25:14,500 --> 00:25:16,000 con el sistema operativo de la máquina 449 00:25:16,000 --> 00:25:17,380 de la máquina anfitrión 450 00:25:17,380 --> 00:25:19,480 ¿cómo funciona esto de Docker? 451 00:25:20,339 --> 00:25:22,079 pues lo que descargamos de Docker 452 00:25:22,079 --> 00:25:24,000 como digo, es una imagen 453 00:25:24,000 --> 00:25:25,559 ¿vale? y esa imagen 454 00:25:25,559 --> 00:25:27,960 se almacena como una capa 455 00:25:27,960 --> 00:25:32,259 de solo lectura. Es esto que estáis viendo aquí abajo. En el gráfico veis que aquí 456 00:25:32,259 --> 00:25:38,980 hay tres capas que están indicadas a la derecha que son la imagen y que a la izquierda me 457 00:25:38,980 --> 00:25:43,279 indica que son capas de solo lectura. La imagen es inalterable. La imagen la vais a tener 458 00:25:43,279 --> 00:25:48,859 en vuestro ordenador para crear a partir de ella tantos contenedores como queráis. ¿Y 459 00:25:48,859 --> 00:25:54,059 el contenedor qué es? Pues el contenedor es simplemente una capa nueva que se crea 460 00:25:54,059 --> 00:25:56,420 sobre estas capas de solo lectura 461 00:25:56,420 --> 00:25:59,099 pero que ya es una capa de lectura y escritura 462 00:25:59,099 --> 00:26:01,119 y para lo que sirve el contenedor 463 00:26:01,119 --> 00:26:04,359 precisamente es para almacenar las modificaciones 464 00:26:04,359 --> 00:26:06,059 que querríamos hacer en la imagen 465 00:26:06,059 --> 00:26:08,940 de tal forma que la imagen permanece inalterable 466 00:26:08,940 --> 00:26:10,759 pero yo tengo un contenedor 467 00:26:10,759 --> 00:26:13,480 que es una versión de esa aplicación 468 00:26:13,480 --> 00:26:15,759 con las modificaciones ahí introducidas 469 00:26:15,759 --> 00:26:19,359 ¿cuál es el problema que tienen los contenedores? 470 00:26:19,880 --> 00:26:22,339 que esta capa de lectura y escritura 471 00:26:22,339 --> 00:26:24,279 cuando se detiene el contenedor 472 00:26:24,279 --> 00:26:27,000 si vuestro ordenador, por ejemplo, perdiera la alimentación 473 00:26:27,000 --> 00:26:28,500 se perderían 474 00:26:28,500 --> 00:26:31,279 todo lo que tuvieras aquí se perdería 475 00:26:31,279 --> 00:26:32,880 para evitar eso 476 00:26:32,880 --> 00:26:34,900 en Docker existe un elemento 477 00:26:34,900 --> 00:26:36,259 que son los volúmenes 478 00:26:36,259 --> 00:26:39,259 los volúmenes es un espacio de almacenamiento 479 00:26:39,259 --> 00:26:40,819 que no se pierde 480 00:26:40,819 --> 00:26:43,019 ahí se almacenan los datos 481 00:26:43,019 --> 00:26:45,319 que tú quieres que siempre estén disponibles 482 00:26:45,319 --> 00:26:46,420 entonces, por ejemplo 483 00:26:46,420 --> 00:26:48,019 hoy vamos a usar Node-RED 484 00:26:48,019 --> 00:26:50,920 ¿cómo crearíamos contenedores con Node-RED? 485 00:26:50,920 --> 00:26:59,859 Pues yo me descargaría la imagen de no de red, que son estas capas que veis aquí abajo, y esa imagen permanecería inalterable en mi servidor. 486 00:27:00,279 --> 00:27:06,819 Y luego podría decidir levantar un contenedor sobre esa imagen para cada uno de vosotros, ¿vale? 487 00:27:06,819 --> 00:27:09,240 Yo os crearía cada uno un contenedor de no de red. 488 00:27:09,819 --> 00:27:14,559 ¿Eso qué implicaría? Pues implicaría que estaría creando estas capas de lectura y escritura. 489 00:27:14,819 --> 00:27:16,319 Crearía 10 capas, por ejemplo. 490 00:27:16,319 --> 00:27:21,640 esas 10 capas estarían completamente individualizadas unas de otras 491 00:27:21,640 --> 00:27:26,500 es decir, para vosotros lo que veríais son aplicaciones no de red vírgenes 492 00:27:26,500 --> 00:27:27,660 para cada uno de vosotros 493 00:27:27,660 --> 00:27:30,279 completamente aisladas de las de los demás compañeros 494 00:27:30,279 --> 00:27:33,039 y no de red lo vincularía a un volumen 495 00:27:33,039 --> 00:27:35,799 para que en caso de que se apagase el ordenador 496 00:27:35,799 --> 00:27:36,859 o hubiera cualquier problema 497 00:27:36,859 --> 00:27:38,440 vuestros datos persistieran 498 00:27:38,440 --> 00:27:41,480 estuvieran ahí la próxima vez que accedáis a no de red 499 00:27:41,480 --> 00:27:44,700 pues así es como funciona Docker de forma muy general 500 00:27:44,700 --> 00:28:10,720 ¿Vale? Entonces, ahora la cuestión es, si yo tengo todos esos servicios funcionando en la misma máquina, si yo tengo un montón de contenedores funcionando en una máquina, ¿cómo accedo a esos servicios desde el exterior? Hay que tener en cuenta que la mayoría de las aplicaciones web, pues por ejemplo Node-RED, OpenHAB, Paradomotica o Mosquito, lo que usan son interfaces web para poderlas configurar. ¿Vale? Se accede a ellas mediante un puerto HTTP. 501 00:28:11,240 --> 00:28:24,720 ¿Cómo podemos conseguir esto con Docker? Pues hay principalmente dos formas de hacerlo. Una forma es el binding, que es la que vamos a usar aquí, porque es la más sencilla, que es la siguiente, la que veis en la imagen de arriba. Voy a intentar ampliarla. 502 00:28:24,720 --> 00:28:26,480 ampliar. Imaginaos que yo tengo 503 00:28:26,480 --> 00:28:29,039 en una máquina un contenedor 504 00:28:29,039 --> 00:28:30,700 de Apache y un contenedor de 505 00:28:30,700 --> 00:28:32,720 MySQL. Los puertos 506 00:28:32,720 --> 00:28:34,700 por defecto de Apache y de MySQL 507 00:28:34,700 --> 00:28:37,140 son el 80 y el 3306. 508 00:28:37,400 --> 00:28:38,099 Esos son los puertos 509 00:28:38,099 --> 00:28:40,680 que yo debería usar en una máquina que estuviera 510 00:28:40,680 --> 00:28:42,740 instalada a Vermetal. Pero en este 511 00:28:42,740 --> 00:28:44,319 caso, como lo tengo con un contenedor, 512 00:28:44,960 --> 00:28:46,920 lo que hago es que voy a mapear 513 00:28:46,920 --> 00:28:48,680 o hacer binding de un 514 00:28:48,680 --> 00:28:50,660 puerto de la máquina anfitrión a 515 00:28:50,660 --> 00:28:52,619 ese puerto del contenedor. 516 00:28:52,799 --> 00:28:54,640 ¿Veis? Aquí lo que le estoy diciendo es que 517 00:28:54,640 --> 00:28:56,259 cuando alguien llegue desde el exterior 518 00:28:56,259 --> 00:28:59,200 solicitando acceder al puerto 8080 519 00:28:59,200 --> 00:29:00,799 lo que voy a hacer es redirigir 520 00:29:00,799 --> 00:29:02,619 esa petición al puerto 80 521 00:29:02,619 --> 00:29:04,019 del contenedor de Apache 522 00:29:04,019 --> 00:29:06,480 de igual forma lo podría hacer 523 00:29:06,480 --> 00:29:08,460 para otros puertos 524 00:29:08,460 --> 00:29:10,920 aquí por ejemplo el 6603 525 00:29:10,920 --> 00:29:13,480 lo han redirigido al puerto 3306 526 00:29:13,480 --> 00:29:14,740 que es el que 527 00:29:14,740 --> 00:29:16,880 corresponde por defecto al gestor de bases de datos 528 00:29:16,880 --> 00:29:17,500 MySQL 529 00:29:17,500 --> 00:29:20,619 ese es el sistema que vamos a utilizar 530 00:29:20,619 --> 00:29:22,180 ahora, es muy cómodo 531 00:29:22,180 --> 00:29:24,440 binding directamente, pero si 532 00:29:24,440 --> 00:29:53,559 Y quiero comentar que existe otra opción que es usar un proxy inverso, Engines, por ejemplo. ¿Y ese cómo funciona? Pues ya no tienes que usar esta asignación de puertos, sino que lo que hace es que hay un único puerto de acceso, que es el puerto 80 o el que sea, que tú hayas configurado, y lo que hace Engines o el proxy inverso que tú hayas decidido utilizar, aquí aparece este porque es el más popular, lo que hace es que en función del recurso que tú hayas solicitado, ya te redirige a un puerto concreto. 533 00:29:53,559 --> 00:30:00,000 Es decir, es el nombre del recurso que tú hayas indicado en la URL el que te redirige a un puerto concreto. 534 00:30:00,700 --> 00:30:08,039 Luego ya sí que puedo tener esa asignación por binding de un puerto de la máquina real a un puerto de la máquina virtual. 535 00:30:09,319 --> 00:30:16,880 Entonces, espero que me estéis siguiendo o que al menos os estéis haciendo una idea de cómo funciona esto. 536 00:30:17,319 --> 00:30:21,460 No se trata de que lo entendáis al detalle, porque nosotros no necesitamos entenderlo al detalle. 537 00:30:21,460 --> 00:30:25,160 pero sí que es necesario que entendáis que ahora tenemos contenedores 538 00:30:25,160 --> 00:30:27,720 y una máquina anfitrión 539 00:30:27,720 --> 00:30:31,440 que esa máquina anfitrión tiene sus puertos, que son puertos reales 540 00:30:31,440 --> 00:30:33,960 y que esos puertos reales lo que hacemos es 541 00:30:33,960 --> 00:30:36,799 vincularlos a un puerto interno del contenedor 542 00:30:36,799 --> 00:30:40,220 de tal forma que cuando la máquina anfitrión reciba una petición 543 00:30:40,220 --> 00:30:42,900 en uno de estos puertos, lo va a redirigir 544 00:30:42,900 --> 00:30:46,220 al puerto correspondiente de ese contenedor 545 00:30:46,220 --> 00:30:47,380 para el que hemos hecho binding 546 00:30:47,380 --> 00:30:49,599 eso de hecho cuando os he enseñado antes 547 00:30:49,599 --> 00:30:52,000 la máquina 548 00:30:52,000 --> 00:30:53,440 esta que han montado en el 549 00:30:53,440 --> 00:30:55,500 lo que ha ocurrido es eso 550 00:30:55,500 --> 00:30:57,480 yo la he accedido a una dirección web 551 00:30:57,480 --> 00:30:59,400 no sé si la tengo aquí todavía 552 00:30:59,400 --> 00:31:01,299 para poderla enseñar porque parece que la ha 553 00:31:01,299 --> 00:31:01,920 sobrescrito 554 00:31:01,920 --> 00:31:04,920 yo ahí indico 555 00:31:04,920 --> 00:31:07,400 la dirección de la máquina, la dirección IP 556 00:31:07,400 --> 00:31:08,759 y luego he puesto el nombre del puerto 557 00:31:08,759 --> 00:31:11,299 que es en este caso 9443 558 00:31:11,299 --> 00:31:12,819 pues este puerto 559 00:31:12,819 --> 00:31:15,160 en Docker lo tenemos vinculado 560 00:31:15,160 --> 00:31:16,339 en este caso 561 00:31:16,339 --> 00:31:21,140 al puerto de Portainer, que no recuerdo ahora cuál es, pero imagino que será el mismo. 562 00:31:21,240 --> 00:31:25,960 A ver, en Portainer, sí, al propio 9443. 563 00:31:25,960 --> 00:31:30,559 ¿Veis? Aquí lo que me está indicando es que el puerto de la máquina anfitrión 9443 564 00:31:30,559 --> 00:31:35,259 está dirigido al puerto del contenedor 9443. 565 00:31:35,720 --> 00:31:39,099 Bueno, pues esto es cómo funcionan las redes. 566 00:31:39,740 --> 00:31:42,660 Entonces, ahora, el siguiente paso para nosotros sería instalar Docker. 567 00:31:42,660 --> 00:31:45,380 como digo, está aquí preparado 568 00:31:45,380 --> 00:31:47,200 para instalar Docker en una Raspberry Pi 569 00:31:47,200 --> 00:31:48,700 y nosotros hoy lo que vamos a hacer 570 00:31:48,700 --> 00:31:51,700 es en lugar de hacerlo en una Raspberry Pi 571 00:31:51,700 --> 00:31:53,180 lo vamos a hacer en los servidores 572 00:31:53,180 --> 00:31:54,400 entonces 573 00:31:54,400 --> 00:31:57,980 a ver, Modesto y Adrián 574 00:31:57,980 --> 00:31:59,559 vais a usar 575 00:31:59,559 --> 00:32:01,599 el contenedor 576 00:32:01,599 --> 00:32:03,200 vais a usar mi servidor 577 00:32:03,200 --> 00:32:05,740 que es el ISMIE01, que ahora os pongo los detalles 578 00:32:05,740 --> 00:32:07,019 ¿vale? pero 579 00:32:07,019 --> 00:32:09,559 yo voy a hacer la instalación, luego vosotros 580 00:32:09,559 --> 00:32:11,680 lo usáis, pero la instalación la tengo que hacer solo yo 581 00:32:11,680 --> 00:32:30,799 Porque no podemos instalar varios a la vez. Entonces, os digo lo que tenéis que hacer ahora. Voy a intentar ir despacio porque entiendo que para algunos esto será la primera vez. Lo primero que necesitamos para poder acceder a esos servidores que os he dado las credenciales es un terminal de acceso remoto. 582 00:32:30,799 --> 00:32:37,400 Yo suelo usar Putty. Es una aplicación, la buscáis en internet, que se llama Putty. 583 00:32:37,839 --> 00:32:41,759 Podéis usar cualquier otra. Si vosotros tenéis otra favorita, pues la usáis. 584 00:32:42,440 --> 00:32:45,299 Y el que no haya usado nunca, pues yo le recomiendo Putty. 585 00:32:45,759 --> 00:32:53,339 Entonces tú te vas a la página web de Putty y ahí en Putty veis que te aparece la primera opción, Descargar Putty. 586 00:32:54,019 --> 00:32:58,539 Le das Download Putty y luego te dice aquí, ¿para quién te lo quieres descargar? 587 00:32:58,539 --> 00:33:00,819 para Windows, para Unix, lo que sea 588 00:33:00,819 --> 00:33:03,220 pues si tú tienes Windows 64 bits 589 00:33:03,220 --> 00:33:04,980 pues te descargas aquí 590 00:33:04,980 --> 00:33:06,559 la versión esta, la 0.83 591 00:33:06,559 --> 00:33:07,759 y ya está, vale 592 00:33:07,759 --> 00:33:10,680 entonces, a ver, voy a 593 00:33:10,680 --> 00:33:12,640 cambiar de servidor 594 00:33:12,640 --> 00:33:15,059 para darle los datos a Modesto 595 00:33:15,059 --> 00:33:15,880 y a Adrián 596 00:33:15,880 --> 00:33:19,140 una cosa 597 00:33:19,140 --> 00:33:19,880 Juanfe, que 598 00:33:19,880 --> 00:33:22,920 la presentación, ¿dónde está en 599 00:33:22,920 --> 00:33:24,880 la web? porque yo no la veo 600 00:33:24,880 --> 00:33:26,940 tema 4, está 601 00:33:26,940 --> 00:33:28,740 como tema 4, en el aula virtual 602 00:33:28,740 --> 00:33:30,039 vale 603 00:33:30,039 --> 00:33:31,640 ¿está Germán? 604 00:33:32,380 --> 00:33:33,339 voy a mirarlo 605 00:33:33,339 --> 00:33:35,740 vale, míralo y dime, porque lo acabo de poner ahora 606 00:33:35,740 --> 00:33:38,559 y a lo mejor se me ha olvidado darle que esté visible o algo de eso 607 00:33:38,559 --> 00:33:44,259 vale, sí, aquí hay una 608 00:33:44,259 --> 00:33:45,440 presentación 609 00:33:45,440 --> 00:33:47,640 vale, sí, está 610 00:33:47,640 --> 00:33:49,299 correcto, gracias 611 00:33:49,299 --> 00:33:51,759 vale, pues fijaos, yo tengo aquí 612 00:33:51,759 --> 00:33:52,880 el ISMIE01 613 00:33:52,880 --> 00:33:55,859 que es el servidor que vamos a usar 614 00:33:55,859 --> 00:33:57,319 Adrián Modesto y yo 615 00:33:57,319 --> 00:33:59,160 y lo que le voy a pedir ahora 616 00:33:59,160 --> 00:34:03,160 es dejar este servidor, lo voy a dejar virgen 617 00:34:03,160 --> 00:34:06,920 ¿cómo lo dejo virgen? voy a pedir que me lo reconstruyan el servidor 618 00:34:06,920 --> 00:34:10,219 yo he estado haciendo pruebas para la clase de hoy de que todo funcionaba bien 619 00:34:10,219 --> 00:34:14,980 y para evitar que este servidor aparezca distinto a los vuestros 620 00:34:14,980 --> 00:34:17,940 lo que voy a pedir ahora mismo es que me hagan un rebuild 621 00:34:17,940 --> 00:34:22,460 al hacer el rebuild veis que me dicen, oye, ¿qué sistema operativo quieres instalar? 622 00:34:22,559 --> 00:34:26,840 o incluso ya si quieres instalar alguna aplicación en concreto, puedes instalar directamente un sistema 623 00:34:26,840 --> 00:34:29,280 linux, mysql, php 624 00:34:29,280 --> 00:34:30,239 o lo que tú quieras, ¿vale? 625 00:34:30,539 --> 00:34:32,739 yo le voy a decir, pues mira, quiero usar un devian 626 00:34:32,739 --> 00:34:35,179 para que sean todos iguales, devian12 627 00:34:35,179 --> 00:34:36,880 le digo revuil 628 00:34:36,880 --> 00:34:39,159 aquí me pide 629 00:34:39,159 --> 00:34:41,019 que escribe esto, porque claro, como es una 630 00:34:41,019 --> 00:34:42,960 operación crítica, están diciendo, ¿estás seguro 631 00:34:42,960 --> 00:34:44,579 de lo que estás haciendo? sí, estoy seguro 632 00:34:44,579 --> 00:34:46,980 le digo revuil, ¿vale? 633 00:34:47,679 --> 00:34:48,860 y a partir de aquí 634 00:34:48,860 --> 00:34:50,800 ya podemos acceder a nuestra máquina 635 00:34:50,800 --> 00:34:52,960 ¿cómo accedemos a la máquina? pues con 636 00:34:52,960 --> 00:34:55,039 las credenciales que os he dado, entonces fijaos 637 00:34:55,039 --> 00:34:56,000 yo tengo aquí 638 00:34:56,000 --> 00:34:58,760 a ver, si puedo quitar esto 639 00:34:58,760 --> 00:35:00,159 de aquí arriba 640 00:35:00,159 --> 00:35:03,099 perdonad, es que yo veo 641 00:35:03,099 --> 00:35:04,980 aquí, me aparece una cosa en la pantalla que me tapa 642 00:35:04,980 --> 00:35:08,210 espacio y que no sé 643 00:35:08,210 --> 00:35:10,070 ahora se ha ido solo, vale, bien 644 00:35:10,070 --> 00:35:12,190 entonces como veis aquí, he recibido 645 00:35:12,190 --> 00:35:13,289 o recibiré 646 00:35:13,289 --> 00:35:16,170 está así, no tengo la cuenta de 647 00:35:16,170 --> 00:35:18,250 Duca Madrid, aquí, vale, veis que 648 00:35:18,250 --> 00:35:20,190 he recibido mis credenciales, que es exactamente 649 00:35:20,190 --> 00:35:22,130 lo mismo que os he pasado a vosotros, vale 650 00:35:22,130 --> 00:35:23,949 todo esto de aquí, por favor 651 00:35:23,949 --> 00:35:26,190 modesto Adrián, vosotros no lo hagáis, vale, lo voy a hacer 652 00:35:26,190 --> 00:35:28,090 yo por vosotros esta parte, pero luego 653 00:35:28,090 --> 00:35:30,130 ya tomáis el control vosotros del 654 00:35:30,130 --> 00:35:30,630 servidor. 655 00:35:31,429 --> 00:35:35,949 ¿Qué tengo que hacer yo con estos datos? 656 00:35:36,150 --> 00:35:38,190 Pues fijaos, ellos me dan una IP4, 657 00:35:38,349 --> 00:35:39,929 una IP6, un nombre 658 00:35:39,929 --> 00:35:41,670 de usuario y una contraseña. 659 00:35:42,130 --> 00:35:43,750 Entonces lo que yo hago es que arranco Putty, 660 00:35:44,090 --> 00:35:45,789 ese programa que os acabáis de descargar, 661 00:35:46,889 --> 00:35:48,130 que tiene este aspecto 662 00:35:48,130 --> 00:35:49,969 tan simplón, y aquí 663 00:35:49,969 --> 00:35:51,289 en la parte de arriba 664 00:35:51,289 --> 00:35:54,190 miro que esté activada 665 00:35:54,190 --> 00:35:56,329 la opción SSH, Secure Cell 666 00:35:56,329 --> 00:35:58,329 ¿vale? o acceso seguro 667 00:35:58,329 --> 00:36:00,269 remoto, y luego lo que 668 00:36:00,269 --> 00:36:01,909 tengo que hacer es, aquí donde pone 669 00:36:01,909 --> 00:36:04,349 hostname, pegar la dirección 670 00:36:04,349 --> 00:36:06,150 IP, entonces pongo ahí 671 00:36:06,150 --> 00:36:10,170 la dirección IP, el puerto 672 00:36:10,170 --> 00:36:11,909 no hay que cambiarlo, es el puerto 22 673 00:36:11,909 --> 00:36:14,170 ¿vale? y dejo aquí 674 00:36:14,170 --> 00:36:16,289 SSH, y ahora 675 00:36:16,289 --> 00:36:18,190 pulso Open, y esto lo que voy a 676 00:36:18,190 --> 00:36:19,730 hacer es que ahora mi ordenador 677 00:36:19,730 --> 00:36:22,389 en el que yo estoy usando ahora, el portátil 678 00:36:22,389 --> 00:36:24,010 desde el que estamos dando esta sesión 679 00:36:24,010 --> 00:36:26,030 se va a conectar a 680 00:36:26,030 --> 00:36:27,989 ese ordenador remoto de Nuremberg 681 00:36:27,989 --> 00:36:29,489 que hemos visto antes, vale 682 00:36:29,489 --> 00:36:30,750 entonces pulso intro 683 00:36:30,750 --> 00:36:34,170 y veis que me da un posible error 684 00:36:34,170 --> 00:36:35,849 esto es porque he decidido no usar 685 00:36:35,849 --> 00:36:36,869 certificados, vale 686 00:36:36,869 --> 00:36:39,170 os acordáis que al principio os he dicho 687 00:36:39,170 --> 00:36:41,889 no voy a usar certificados para facilitar las cosas 688 00:36:41,889 --> 00:36:44,130 lo suyo sería utilizar certificados 689 00:36:44,130 --> 00:36:45,650 pero por no complicarlo 690 00:36:45,650 --> 00:36:47,909 no los he usado y simplemente hay que pulsar 691 00:36:47,909 --> 00:36:49,750 aquí aceptar, vale 692 00:36:49,750 --> 00:36:52,150 entonces me dice, oye, ¿quién eres? 693 00:36:52,550 --> 00:36:53,909 ¿por qué quieres acceder a esta máquina? 694 00:36:53,909 --> 00:36:55,789 ¿cuál es tu nombre? pues mi nombre es 695 00:36:55,789 --> 00:36:58,090 root, que es el nombre que me están 696 00:36:58,090 --> 00:36:59,590 dando aquí en las credenciales, vale 697 00:36:59,590 --> 00:37:01,909 y ahora tengo que escribir el password 698 00:37:01,909 --> 00:37:03,750 y la primera vez que accedáis 699 00:37:03,750 --> 00:37:05,949 os va a obligar a cambiar el password 700 00:37:05,949 --> 00:37:07,550 vale, entonces con cuidadito 701 00:37:07,550 --> 00:37:09,090 escribimos ese password 702 00:37:09,090 --> 00:37:12,190 exactamente igual en mayúsculas 703 00:37:12,190 --> 00:37:13,050 y minúsculas 704 00:37:13,050 --> 00:37:16,070 vale, ya me he equivocado, perdona 705 00:37:16,070 --> 00:37:17,730 porque no puedo hablar y escribir a la vez 706 00:37:17,730 --> 00:37:19,469 porque acabo escribiendo lo que estoy diciendo 707 00:37:19,469 --> 00:37:20,909 a ver, me callo un rato 708 00:37:20,909 --> 00:37:44,190 vale, lo he conseguido, pues ahora tengo que 709 00:37:44,190 --> 00:37:46,369 volverlo a escribir, vale, una vez que lo he escrito 710 00:37:46,369 --> 00:37:49,389 lo primero que te dice, oye, tienes que cambiar tu contraseña 711 00:37:49,389 --> 00:37:51,230 entonces, por favor, vuelve a escribir 712 00:37:51,230 --> 00:37:52,769 la contraseña actual, veis que pone 713 00:37:52,769 --> 00:37:55,090 current password, ahí he escribido la contraseña 714 00:37:55,090 --> 00:37:57,090 actual, y luego vamos a poder escribir 715 00:37:57,090 --> 00:37:58,949 la contraseña nueva, entonces yo voy a escribir 716 00:37:58,949 --> 00:38:24,579 ahí otra vez, nueva 717 00:38:24,579 --> 00:38:27,039 contraseña, pues voy a usar como nueva contraseña 718 00:38:27,039 --> 00:38:28,460 modesto adrián 719 00:38:28,460 --> 00:38:30,739 ismie, vale, ismie 720 00:38:30,739 --> 00:38:34,699 ismie, vale, la voy a anotar 721 00:38:34,699 --> 00:38:36,800 que no se me olvide, ah, no me 722 00:38:36,800 --> 00:38:38,920 deja usar ismie, tiene que ser un poco más largo 723 00:38:38,920 --> 00:38:55,320 A ver, ¿qué podemos usar entonces? Vamos a poner ISMIE IoT. ISMIE IoT. Ya está. Pues esa es la contraseña. Usuarios root y la contraseña ISMIE IoT. 724 00:38:55,320 --> 00:38:57,619 lo pongo aquí 725 00:38:57,619 --> 00:39:04,420 vale 726 00:39:04,420 --> 00:39:06,260 bueno 727 00:39:06,260 --> 00:39:09,889 bien 728 00:39:09,889 --> 00:39:11,010 pues ya tenemos entonces 729 00:39:11,010 --> 00:39:11,869 acceso a la máquina 730 00:39:11,869 --> 00:39:12,570 si queréis 731 00:39:12,570 --> 00:39:13,989 Modesto y Adrián 732 00:39:13,989 --> 00:39:14,969 podéis acceder vosotros 733 00:39:14,969 --> 00:39:15,750 también ya a la máquina 734 00:39:15,750 --> 00:39:16,610 con vuestro Putty 735 00:39:16,610 --> 00:39:17,309 vale 736 00:39:17,309 --> 00:39:17,869 y veréis que 737 00:39:17,869 --> 00:39:19,550 os aparecerá algo parecido 738 00:39:19,550 --> 00:39:20,449 a lo que estoy viendo yo 739 00:39:20,449 --> 00:39:22,989 ¿cuál sería el siguiente paso? 740 00:39:23,210 --> 00:39:24,289 pues aquí estáis 741 00:39:24,289 --> 00:39:25,190 en una máquina 742 00:39:25,190 --> 00:39:26,429 pues que podéis ver 743 00:39:26,429 --> 00:39:27,530 que tiene instalado 744 00:39:27,530 --> 00:39:28,949 podéis instalar programas 745 00:39:28,949 --> 00:39:29,349 como digo 746 00:39:29,349 --> 00:39:30,429 en forma bare metal 747 00:39:30,429 --> 00:39:31,570 lo que vosotros queráis 748 00:39:31,570 --> 00:39:32,610 nosotros 749 00:39:32,610 --> 00:39:35,230 lo que vamos a hacer a continuación es 750 00:39:35,230 --> 00:39:37,230 instalar el gestor, el motor de 751 00:39:37,230 --> 00:39:39,250 contenedores Docker 752 00:39:39,250 --> 00:39:41,690 ¿vale? entonces para eso he preparado aquí unas notas 753 00:39:41,690 --> 00:39:48,940 de cómo se tendría 754 00:39:48,940 --> 00:39:50,400 que hacer, estas notas 755 00:39:50,400 --> 00:39:52,739 son específicas para Debian 756 00:39:52,739 --> 00:39:55,119 Debian 12 757 00:39:55,119 --> 00:39:56,780 ¿vale? que tiene este nombre de pila 758 00:39:56,780 --> 00:39:58,860 Bookworm, gusano 759 00:39:58,860 --> 00:40:00,320 de los libros 760 00:40:00,320 --> 00:40:02,920 ¿escuchas? 761 00:40:03,559 --> 00:40:04,880 ¿el resto lo hacemos también? 762 00:40:05,619 --> 00:40:07,079 no, no, esperad, esto no lo hagáis 763 00:40:07,079 --> 00:40:09,880 todavía no hacemos nada, ni siquiera el puti 764 00:40:09,880 --> 00:40:12,400 si, lo del puti 765 00:40:12,400 --> 00:40:13,780 si, eso si, hacedlo, por favor 766 00:40:13,780 --> 00:40:16,440 Juan Félix 767 00:40:16,440 --> 00:40:18,739 yo lo he intentado con el puti 768 00:40:18,739 --> 00:40:20,460 he pasado a la primera pantalla 769 00:40:20,460 --> 00:40:22,260 en el momento en el que me ha pedido 770 00:40:22,260 --> 00:40:24,699 cambiar la contraseña 771 00:40:24,699 --> 00:40:26,019 se me ha cerrado 772 00:40:26,019 --> 00:40:27,780 puti, no sé si será normal 773 00:40:27,780 --> 00:40:30,400 no, no es normal, vuelve a abrirlo y ya está, no te preocupes 774 00:40:30,980 --> 00:40:31,639 vale 775 00:40:31,639 --> 00:40:34,400 voy a apagar el otro 776 00:40:34,400 --> 00:40:34,679 PC 777 00:40:34,679 --> 00:40:40,360 Juanfe, yo no he conseguido 778 00:40:40,360 --> 00:40:42,219 instalarlo, me está dando algún problema 779 00:40:42,219 --> 00:40:43,119 no sé qué 780 00:40:43,119 --> 00:40:45,760 he generado 781 00:40:45,760 --> 00:40:48,179 lo que he instalado al final es como una especie 782 00:40:48,179 --> 00:40:50,079 de generador de una contraseña 783 00:40:50,079 --> 00:40:52,179 pero no ese es el programa tuyo, que tú quieres 784 00:40:52,179 --> 00:40:52,340 ¿no? 785 00:40:53,440 --> 00:40:56,159 yo lo único que os he pedido que instaléis es el Putty 786 00:40:56,159 --> 00:40:56,980 claro 787 00:40:56,980 --> 00:41:00,559 no, pero eso no es un generador de contraseñas 788 00:41:00,559 --> 00:41:01,099 eso es 789 00:41:01,099 --> 00:41:03,199 claro, no, no, pero es que es donde 790 00:41:03,199 --> 00:41:05,900 el único que me ha instalado 791 00:41:05,900 --> 00:41:07,300 a ver 792 00:41:07,300 --> 00:41:09,760 lo has escrito así 793 00:41:09,760 --> 00:41:11,059 puti con dos t's 794 00:41:11,059 --> 00:41:13,559 a ver, espera un momento que te vea 795 00:41:13,559 --> 00:41:16,019 a ver 796 00:41:16,019 --> 00:41:17,679 si, si, si 797 00:41:17,679 --> 00:41:19,099 no, no, si he llegado ahí, pero 798 00:41:19,099 --> 00:41:22,300 he instalado este, justo el de 64 bit 799 00:41:22,300 --> 00:41:23,300 este 800 00:41:23,300 --> 00:41:25,900 este, a ver si has cogido esto 801 00:41:25,900 --> 00:41:27,619 no, no, no, no 802 00:41:27,619 --> 00:41:28,639 has cogido esto, ¿no? 803 00:41:29,400 --> 00:41:29,880 ¿qué va, qué va? 804 00:41:29,880 --> 00:41:32,980 pues en principio esto te descarga un archivo 805 00:41:32,980 --> 00:41:34,719 con la extensión MSI, por favor 806 00:41:34,719 --> 00:41:35,559 compruébalo 807 00:41:35,559 --> 00:41:39,019 y cuando haces clic en él 808 00:41:39,019 --> 00:41:40,559 te lo instala sin más 809 00:41:40,559 --> 00:41:42,139 voy a cerrar yo mi sesión 810 00:41:42,139 --> 00:41:45,239 voy a hacerlo porque igual hay algún problema 811 00:41:45,239 --> 00:41:47,300 voy a cerrar esta y voy a instalarlo 812 00:41:47,300 --> 00:41:51,219 a ver, es un archivo ejecutable 813 00:41:51,860 --> 00:41:53,599 voy a quitarle y volverle a instalar 814 00:41:53,599 --> 00:41:55,619 le doy a aceptar 815 00:41:55,619 --> 00:42:09,300 a ver, voy a volver a instalarlo 816 00:42:09,300 --> 00:42:11,420 lo he quitado y lo he vuelto a instalar 817 00:42:11,420 --> 00:42:13,760 vale, yo ahora mismo 818 00:42:13,760 --> 00:42:15,659 creo que no me deja porque me aparece 819 00:42:15,659 --> 00:42:17,980 que ya lo tengo ejecutándose 820 00:42:17,980 --> 00:42:20,219 pero bueno, vamos a esperar a ver si es capaz de instalarlo 821 00:42:20,219 --> 00:42:23,420 vale, sí, ahora parece que 822 00:42:23,420 --> 00:42:28,960 a ver, sí 823 00:42:28,960 --> 00:42:31,940 vale, bien, no sé que me ha hecho antes 824 00:42:31,940 --> 00:42:33,860 pero he hecho lo mismo antes que ahora 825 00:42:33,860 --> 00:42:34,920 y ahora me funciona 826 00:42:34,920 --> 00:42:37,599 parece ser, sí, ahora ya sí que veo 827 00:42:37,599 --> 00:42:39,659 las mismas ventanas del programa 828 00:42:39,659 --> 00:42:40,420 este put, sí 829 00:42:40,420 --> 00:42:43,219 pues genial, entonces, adelante 830 00:42:43,219 --> 00:42:45,719 ha dicho que nos quedamos aquí, ¿no? 831 00:42:46,300 --> 00:42:47,739 no, no, ahí ya tirad para adelante 832 00:42:47,739 --> 00:42:49,659 ahí ya tenéis que cambiar la contraseña y todo 833 00:42:49,659 --> 00:42:51,179 ahí tenéis que acceder a vuestra máquina 834 00:42:51,179 --> 00:42:52,219 entonces 835 00:42:52,219 --> 00:42:55,780 Modesto y Adrián, os paso la 836 00:42:55,780 --> 00:42:57,599 dirección IP ahí por 837 00:42:57,599 --> 00:42:59,159 por 838 00:42:59,159 --> 00:43:01,619 el chat, ¿vale? para que la tengáis 839 00:43:01,619 --> 00:43:02,719 ya me he conectado, ¿eh? 840 00:43:03,420 --> 00:43:04,860 pues fenomenal 841 00:43:04,860 --> 00:43:07,880 Juanfe, una cosa 842 00:43:07,880 --> 00:43:09,760 cuando has dado el botón de 843 00:43:09,760 --> 00:43:10,519 open para 844 00:43:10,519 --> 00:43:13,239 asegurándonos que está habilitado 845 00:43:13,239 --> 00:43:14,280 lo del SSH 846 00:43:14,280 --> 00:43:17,559 me dirige hacia un puerto 847 00:43:17,559 --> 00:43:18,980 el 22, me lo ha asignado aquí 848 00:43:18,980 --> 00:43:21,300 y le doy al botón 849 00:43:21,300 --> 00:43:23,539 de open y como que no hace 850 00:43:23,539 --> 00:43:25,760 me da un sonido 851 00:43:25,760 --> 00:43:26,480 lo oyo, ¿no? 852 00:43:28,300 --> 00:43:29,159 y no paso 853 00:43:29,159 --> 00:43:31,019 no lo oigo, pero fíjate 854 00:43:31,019 --> 00:43:32,719 por favor, mira lo que voy a hacer yo 855 00:43:32,719 --> 00:43:34,300 porque es lo que debería hacer 856 00:43:34,300 --> 00:43:36,000 a ver, a ver 857 00:43:36,000 --> 00:43:37,840 ahí pones la dirección 858 00:43:37,840 --> 00:43:40,739 que me has mandado, la IP4, ¿no? 859 00:43:40,880 --> 00:43:42,639 No, no, esa no es la... ¿Tú quién eres? 860 00:43:42,739 --> 00:43:44,800 ¿Modesto o Adrián eres tú? No, no, no, no, yo soy 861 00:43:44,800 --> 00:43:46,719 Manuel, Manuel. Manuel, pues tú 862 00:43:46,719 --> 00:43:48,599 en el archivo que he mandado inicialmente 863 00:43:48,599 --> 00:43:50,880 te buscas... Yo tengo que poner la mía. Pones la tuya, eso. 864 00:43:51,260 --> 00:43:52,539 Vale, vale. Sí, sí. 865 00:43:52,820 --> 00:43:54,800 A ver, vale, vamos a ver dónde estoy yo. 866 00:43:55,519 --> 00:43:56,400 No hay ningún cambio ahí. 867 00:43:56,519 --> 00:43:58,219 Es SH y Open, ¿no? Nada más. 868 00:43:58,780 --> 00:44:00,699 Exacto. Pues a mí me da un error fatal 869 00:44:00,699 --> 00:44:01,340 cuando hago eso. 870 00:44:03,059 --> 00:44:04,559 Juan Félix, ¿me puedes 871 00:44:04,559 --> 00:44:06,619 reiniciar 872 00:44:06,619 --> 00:44:07,900 ISMIE2 873 00:44:07,900 --> 00:44:10,340 que me da acceso denegado 874 00:44:10,340 --> 00:44:13,039 no sé si es que he metido mal la contraseña 875 00:44:13,039 --> 00:44:14,000 dos, tres veces 876 00:44:14,000 --> 00:44:17,460 y se me ha quedado que me dice acceso denegado 877 00:44:17,460 --> 00:44:20,530 vale, te voy a hacer 878 00:44:20,530 --> 00:44:22,050 un rebuild del ISMIE2, ¿vale? 879 00:44:23,030 --> 00:44:23,349 vale 880 00:44:23,349 --> 00:44:26,050 login como 881 00:44:26,050 --> 00:44:28,309 el ISMIE guión que nos has dado a cada uno, ¿no? 882 00:44:30,829 --> 00:44:31,949 no, el login es 883 00:44:31,949 --> 00:44:33,809 root, para todos 884 00:44:33,809 --> 00:44:35,210 ah, root 885 00:44:35,210 --> 00:44:37,849 vale, enter 886 00:44:37,849 --> 00:44:39,570 y la password la que tiene 887 00:44:39,570 --> 00:44:40,230 lo que nos ha dado 888 00:44:40,230 --> 00:44:43,610 que esa es la parte difícil 889 00:44:43,610 --> 00:44:45,869 yo abro el mío 890 00:44:45,869 --> 00:44:48,190 y veis login as y ahí escribe root 891 00:44:48,190 --> 00:44:50,269 y la contraseña de este 892 00:44:50,269 --> 00:44:52,050 del que compartimos Adrián 893 00:44:52,050 --> 00:44:53,550 Modesto y yo es 894 00:44:53,550 --> 00:44:54,469 ismie.io 895 00:44:54,469 --> 00:45:01,849 el ismie.02 ya está 896 00:45:01,849 --> 00:45:02,710 reconstruido 897 00:45:02,710 --> 00:45:07,510 gracias, ahora voy a probarlo 898 00:45:07,510 --> 00:45:09,710 pero espérate porque ahora te tengo que pasar 899 00:45:09,710 --> 00:45:11,269 las nuevas credenciales 900 00:45:11,269 --> 00:45:14,489 te lo voy a pasar por el chat 901 00:45:14,489 --> 00:45:14,710 vale 902 00:45:14,710 --> 00:45:32,739 jw 903 00:45:32,739 --> 00:45:48,400 esta mañana 904 00:45:48,400 --> 00:45:49,619 yo que lo he probado 905 00:45:49,619 --> 00:45:52,039 lo digo por si estáis alguno en el instituto 906 00:45:52,039 --> 00:45:54,019 esta mañana lo he probado yo desde el instituto 907 00:45:54,019 --> 00:45:55,679 y no me ha dejado entrar 908 00:45:55,679 --> 00:45:57,059 pero me ha dado bastantes problemas 909 00:45:57,059 --> 00:45:59,260 y al final he llegado a la conclusión que era por la red 910 00:45:59,260 --> 00:46:01,239 por algún, no sé si 911 00:46:01,239 --> 00:46:03,199 tendrá alguna limitación, la red está de 912 00:46:03,199 --> 00:46:05,179 Wedu y he conectado a través del móvil y todos 913 00:46:05,179 --> 00:46:06,800 los problemas han desaparecido de pronto 914 00:46:06,800 --> 00:46:09,340 lo digo por si estáis alguno en el instituto 915 00:46:09,340 --> 00:46:09,780 no 916 00:46:09,780 --> 00:46:10,780 vale 917 00:46:10,780 --> 00:46:15,179 ya 918 00:46:15,179 --> 00:46:17,260 nos quedamos aquí una vez que hemos cambiado 919 00:46:17,260 --> 00:46:17,880 la password, ¿no? 920 00:46:18,179 --> 00:46:20,960 ya estamos todos aquí más o menos, entiendo 921 00:46:20,960 --> 00:46:22,800 estamos viendo ahí nuestra máquina que podemos 922 00:46:22,800 --> 00:46:25,039 puede ser que por 923 00:46:25,039 --> 00:46:29,969 exceso de intentos te bloquee 924 00:46:29,969 --> 00:46:31,590 el putic, no creo 925 00:46:31,590 --> 00:46:33,809 no, no, no, no puede ser 926 00:46:33,809 --> 00:46:35,610 ¿eres el de 927 00:46:35,610 --> 00:46:36,170 Ismíe02? 928 00:46:39,969 --> 00:46:40,369 Ismíe02 929 00:46:40,369 --> 00:46:41,690 soy yo, he metido la 930 00:46:41,690 --> 00:46:43,630 contraseña y me ha cerrado el puti 931 00:46:43,630 --> 00:46:47,800 a ver, voy a probar yo con 932 00:46:47,800 --> 00:46:49,960 Ismíe02, vale, fijaos, yo puedo tener 933 00:46:49,960 --> 00:46:51,519 ahí Ismíe01 abierto 934 00:46:51,519 --> 00:46:53,420 y ahora me puedo abrir otro 935 00:46:53,420 --> 00:46:54,559 al Ismíe02 936 00:46:54,559 --> 00:46:57,860 Ismíe02, con los datos que yo tengo aquí 937 00:46:57,860 --> 00:46:59,840 sería el que hemos 938 00:46:59,840 --> 00:47:02,019 asignado a Antonio, que tiene esta dirección 939 00:47:02,019 --> 00:47:02,300 IP 940 00:47:02,300 --> 00:47:06,900 procedemos 941 00:47:06,900 --> 00:47:08,639 me da este 942 00:47:08,639 --> 00:47:11,400 alerta de seguridad que le tengo 943 00:47:11,400 --> 00:47:13,300 que dar a aceptar, tú ni siquiera llegas a ver 944 00:47:13,300 --> 00:47:14,300 esto entonces, Antonio 945 00:47:14,300 --> 00:47:17,519 eso ha pasado, he metido 946 00:47:17,519 --> 00:47:19,260 la contraseña, he entrado 947 00:47:19,260 --> 00:47:21,380 como Ruth, he metido la contraseña 948 00:47:21,380 --> 00:47:23,320 y a partir de ahí es cuando 949 00:47:23,320 --> 00:47:25,199 van a empezar los problemas, se me ha cerrado 950 00:47:25,199 --> 00:47:27,139 el puti, vale, yo ya he puesto 951 00:47:27,139 --> 00:47:29,239 Ruth, tú has llegado a cambiar la contraseña entonces 952 00:47:29,239 --> 00:47:30,539 no me he dejado 953 00:47:30,539 --> 00:47:32,019 vale, voy a probar yo, vale 954 00:47:32,019 --> 00:47:36,699 uxl9x 955 00:47:36,699 --> 00:47:38,360 www.r 956 00:47:38,360 --> 00:47:40,800 wc 957 00:47:40,800 --> 00:47:42,480 a7 958 00:47:42,480 --> 00:47:43,940 esta no es, me parece 959 00:47:43,940 --> 00:47:46,579 me has dado una que empieza por jw 960 00:47:46,579 --> 00:47:49,760 hay dos antonios 961 00:47:49,760 --> 00:47:53,519 la ip que me has dado 962 00:47:53,519 --> 00:47:55,960 es la que empieza por jw 963 00:47:55,960 --> 00:47:56,920 me la acabas de enviar 964 00:47:56,920 --> 00:47:59,840 ah, perdona, claro, si es que la hemos 965 00:47:59,840 --> 00:48:01,280 renovado, si, si, perdona 966 00:48:01,280 --> 00:48:22,570 Sí, sí, a ver. Entonces, esta está aquí. JW, efectivamente, está aquí. Vamos a ver que falle. 967 00:48:22,570 --> 00:48:41,880 J-W-T-E-V-N-A-L-F-X-T-U-J-T-L-H-A-N 968 00:48:41,880 --> 00:48:44,780 Curren pasos. 969 00:48:44,780 --> 00:48:58,719 J-W-T-E-U-N-A-L-F-X-E-U-J-T-L-H-A-N. 970 00:48:59,219 --> 00:49:04,599 Pues efectivamente, a mí también me pasa eso. 971 00:49:05,219 --> 00:49:06,420 Vale, vale, no soy el único. 972 00:49:07,519 --> 00:49:08,840 ¿Y eso por qué? 973 00:49:16,320 --> 00:49:17,039 174. 974 00:49:20,250 --> 00:49:21,090 174. 975 00:49:25,119 --> 00:49:26,539 ¿A alguien más le pasa esto? 976 00:49:26,539 --> 00:49:29,090 ¿me oís? 977 00:49:29,769 --> 00:49:30,050 sí 978 00:49:30,050 --> 00:49:31,469 a mí me pasa 979 00:49:31,469 --> 00:49:32,349 si la metes mal 980 00:49:32,349 --> 00:49:32,849 te echa 981 00:49:32,849 --> 00:49:34,690 ah 982 00:49:34,690 --> 00:49:35,250 que a lo mejor 983 00:49:35,250 --> 00:49:35,909 la he metido mal 984 00:49:35,909 --> 00:49:36,190 y también 985 00:49:36,190 --> 00:49:37,250 nada más meterla 986 00:49:37,250 --> 00:49:38,789 antes de poner la nueva 987 00:49:38,789 --> 00:49:39,429 te vuelve a pedir 988 00:49:39,429 --> 00:49:40,090 otra vez la misma 989 00:49:40,090 --> 00:49:41,150 sí, sí 990 00:49:41,150 --> 00:49:41,730 eso seguro 991 00:49:41,730 --> 00:49:42,030 claro 992 00:49:42,030 --> 00:49:42,389 y entonces 993 00:49:42,389 --> 00:49:43,289 en cuanto que te equivoques 994 00:49:43,289 --> 00:49:43,650 te echa 995 00:49:43,650 --> 00:49:44,670 vale 996 00:49:44,670 --> 00:49:45,650 voy a probar entonces 997 00:49:45,650 --> 00:49:46,030 otra vez 998 00:49:46,030 --> 00:49:46,889 habré cometido un error 999 00:49:46,889 --> 00:49:47,369 perdonad 1000 00:49:47,369 --> 00:49:48,710 perdonad 1001 00:49:48,710 --> 00:49:49,269 la demora 1002 00:49:49,269 --> 00:49:49,889 a ver 1003 00:49:49,889 --> 00:49:50,909 voy a intentarlo otra vez 1004 00:49:50,909 --> 00:49:51,250 rápido 1005 00:49:51,250 --> 00:49:51,590 a ver 1006 00:49:51,590 --> 00:49:56,679 en 1007 00:49:56,679 --> 00:50:00,300 root 1008 00:50:00,300 --> 00:50:02,239 eh 1009 00:50:02,239 --> 00:50:31,059 J, W, T, T, ah, si antes me he equivocado, efectivamente, V, N, A, L, F, X, T, U, J, T, L, H, A, N, y ahora la vuelvo a escribir, que es J, W, T, T, V, N, A, L, F, X, T, U, J, T, 1010 00:50:32,239 --> 00:50:34,820 L-H-A-N. 1011 00:50:35,519 --> 00:50:36,000 Eso es. 1012 00:50:36,059 --> 00:50:36,940 Es que había algún error. 1013 00:50:37,139 --> 00:50:37,260 Vale. 1014 00:50:38,159 --> 00:50:40,599 Antonio, te pongo también como contraseña 1015 00:50:40,599 --> 00:50:42,599 Ismíe I-O-T. 1016 00:50:45,079 --> 00:50:45,559 Vale. 1017 00:50:45,780 --> 00:50:46,539 Todo en minúscula. 1018 00:50:46,599 --> 00:50:46,860 Ya está. 1019 00:50:47,719 --> 00:50:48,760 Ismíe I-O-T. 1020 00:50:49,500 --> 00:50:49,699 Vale. 1021 00:50:49,800 --> 00:50:50,719 Pues seguimos entonces. 1022 00:50:51,500 --> 00:50:52,820 Yo ya me salgo de tu máquina, ¿vale? 1023 00:50:53,480 --> 00:50:54,880 Yo tengo un problema con el puti 1024 00:50:54,880 --> 00:50:55,920 que me da error fatal. 1025 00:50:56,699 --> 00:50:57,820 Y me dice no conectado. 1026 00:50:57,820 --> 00:50:58,400 No sé por qué. 1027 00:50:58,940 --> 00:50:59,800 No entro ni siquiera. 1028 00:51:00,579 --> 00:51:01,019 ¿Al puti? 1029 00:51:01,719 --> 00:51:02,039 Sí. 1030 00:51:02,039 --> 00:51:04,380 le pongo la dirección 1031 00:51:04,380 --> 00:51:06,400 le pongo el SSH, le doy a open 1032 00:51:06,400 --> 00:51:08,019 y no me... 1033 00:51:08,019 --> 00:51:10,699 se pone PuTTY inactivo porque ha dado un error fatal 1034 00:51:10,699 --> 00:51:12,019 vale 1035 00:51:12,019 --> 00:51:13,380 puede ser que tengas 1036 00:51:13,380 --> 00:51:15,199 algún 1037 00:51:15,199 --> 00:51:17,900 antivirus en marcha o algo 1038 00:51:17,900 --> 00:51:19,420 no suelo tenerlo 1039 00:51:19,420 --> 00:51:22,199 vale, te voy a buscar 1040 00:51:22,199 --> 00:51:23,440 una alternativa PuTTY 1041 00:51:23,440 --> 00:51:28,320 Juan Félix 1042 00:51:28,320 --> 00:51:30,000 los que tenemos Linux 1043 00:51:30,000 --> 00:51:32,199 si utilizáramos el terminal 1044 00:51:32,199 --> 00:51:33,980 podríamos acceder 1045 00:51:33,980 --> 00:51:35,840 con una sesión tipo Telnet 1046 00:51:35,840 --> 00:51:38,599 con una sesión SSH 1047 00:51:38,599 --> 00:51:40,159 mejor, en vez de Telnet 1048 00:51:40,159 --> 00:51:41,739 sí, pero podríais perfectamente 1049 00:51:41,739 --> 00:51:43,440 a ver 1050 00:51:43,440 --> 00:51:46,000 yo que sé, el KITI por ejemplo 1051 00:51:46,000 --> 00:51:48,179 el KITI seguirá siendo gratuito 1052 00:51:48,179 --> 00:51:48,659 espero 1053 00:51:48,659 --> 00:51:51,179 vale, es este, prueba 1054 00:51:51,179 --> 00:51:54,159 que no le funcione al PUTI, que pruebe con el KITI 1055 00:51:54,920 --> 00:51:55,760 KITI 1056 00:51:55,760 --> 00:51:58,099 lo que pasa es que KITI creo que es solo para 1057 00:51:58,099 --> 00:51:59,679 no sé si tienen versión 1058 00:51:59,679 --> 00:52:00,940 creo que es solo para Windows 1059 00:52:00,940 --> 00:52:02,980 yo tengo Windows, sí 1060 00:52:02,980 --> 00:52:04,199 Kitty de nuevo el set 1061 00:52:04,199 --> 00:52:07,579 ya le saltamos 1062 00:52:07,579 --> 00:52:08,260 aquí 1063 00:52:08,260 --> 00:52:11,980 abrí 1064 00:52:11,980 --> 00:52:16,530 lo que pasa es que son de estas páginas 1065 00:52:16,530 --> 00:52:18,449 que no sabes lo que estás descargando ya 1066 00:52:18,449 --> 00:52:20,250 Kitty download 1067 00:52:20,250 --> 00:52:22,070 descargar la versión 1068 00:52:22,070 --> 00:52:24,929 clásica, la Windows clásica 1069 00:52:24,929 --> 00:52:27,010 entonces yo ya tengo aquí el Kitty 1070 00:52:27,010 --> 00:52:28,929 y 1071 00:52:28,929 --> 00:52:30,849 el Kitty es parecido 1072 00:52:30,849 --> 00:52:33,010 es este que ves aquí, vale, es muy parecido al Putty 1073 00:52:33,010 --> 00:52:35,389 y si, es parecido 1074 00:52:35,389 --> 00:52:36,570 entonces 1075 00:52:36,570 --> 00:52:37,769 bueno, de hecho es idéntico 1076 00:52:37,769 --> 00:52:41,050 es idéntico porque me está cogiendo 1077 00:52:41,050 --> 00:52:42,530 hasta la configuración de Putty 1078 00:52:42,530 --> 00:52:44,230 vale, pues pones ahí 1079 00:52:44,230 --> 00:52:46,710 y cuando termines, cuando des ahí 1080 00:52:46,710 --> 00:52:47,610 ¿qué es? ¿dónde tienes que dar? 1081 00:52:48,030 --> 00:52:49,710 aquí tienes que escribir la dirección IP 1082 00:52:49,710 --> 00:52:52,690 ¿quién eres tú? perdona 1083 00:52:52,690 --> 00:52:55,090 Fernando, con el 5 me parece que estoy 1084 00:52:55,090 --> 00:52:56,530 vale, Fernando 1085 00:52:56,530 --> 00:52:57,789 voy a entrar yo, vale 1086 00:52:57,789 --> 00:52:59,190 Fernando Rosa 1087 00:52:59,829 --> 00:53:01,750 Vale, Fernando, pues pones esta dirección IP 1088 00:53:01,750 --> 00:53:07,349 que es 116, 203, 135, 115. 1089 00:53:08,170 --> 00:53:09,610 Y no hay que tocar nada más, ¿vale? 1090 00:53:09,610 --> 00:53:10,650 El puerto queda al 22. 1091 00:53:11,489 --> 00:53:13,389 Sí, y aquí es donde se va a empezar. 1092 00:53:13,409 --> 00:53:15,630 Lo único, asegúrate que pongas SH y le das Open. 1093 00:53:16,510 --> 00:53:17,869 ¿Open dónde estaba? No lo he visto. 1094 00:53:19,530 --> 00:53:20,690 Open abajo a la izquierda. 1095 00:53:21,230 --> 00:53:23,409 Hay cuatro o cinco botones abajo a la izquierda 1096 00:53:23,409 --> 00:53:24,269 y el primero es Open. 1097 00:53:24,829 --> 00:53:25,230 Vale, vale. 1098 00:53:25,730 --> 00:53:29,170 Y te debería salir un mensaje de alerta de este estilo. 1099 00:53:29,190 --> 00:53:31,429 vale, no he llegado antes 1100 00:53:31,429 --> 00:53:33,610 a ver, voy a ir con el kit y a ver si me deja 1101 00:53:33,610 --> 00:53:34,030 gracias 1102 00:53:34,030 --> 00:53:36,389 te dejo entonces ahí solo 1103 00:53:36,389 --> 00:53:37,949 tú sigues si quieres 1104 00:53:37,949 --> 00:53:41,070 vale, entonces 1105 00:53:41,070 --> 00:53:43,530 lo que os estaba diciendo, ahora tenemos que instalar Docker 1106 00:53:43,530 --> 00:53:44,570 entonces 1107 00:53:44,570 --> 00:53:46,849 hay varias formas de instalar Docker 1108 00:53:46,849 --> 00:53:49,409 lo que os pongo aquí, lo que estáis viendo en pantalla ahora 1109 00:53:49,409 --> 00:53:51,429 son las instrucciones sacadas 1110 00:53:51,429 --> 00:53:53,010 de la propia documentación de Docker 1111 00:53:53,010 --> 00:53:54,690 entonces lo suyo es ir al sitio 1112 00:53:54,690 --> 00:53:57,309 de documentación de Docker y según el sistema 1113 00:53:57,309 --> 00:53:59,389 operativo que tengáis, pues un Ubuntu 1114 00:53:59,389 --> 00:54:01,349 un Raspbian, lo que 1115 00:54:01,349 --> 00:54:03,230 sea, ahí te va a decir cómo se instala, ¿vale? 1116 00:54:03,590 --> 00:54:05,250 y la instalación, como veis 1117 00:54:05,250 --> 00:54:07,230 en este caso, tiene como varias 1118 00:54:07,230 --> 00:54:09,269 partes, una primera parte que es 1119 00:54:09,269 --> 00:54:11,190 añadir las claves, otra segunda 1120 00:54:11,190 --> 00:54:12,869 parte que es añadir el repositorio 1121 00:54:12,869 --> 00:54:14,510 y otra 1122 00:54:14,510 --> 00:54:18,980 perdonad, que estoy con alergia 1123 00:54:18,980 --> 00:54:20,880 y me vienen estos nudos, a ver, y otra que es 1124 00:54:20,880 --> 00:54:22,840 hacer la instalación, que es esta de aquí abajo, ¿vale? 1125 00:54:22,860 --> 00:54:24,860 entonces, todo esto os lo voy a 1126 00:54:24,860 --> 00:54:26,679 pegar en el chat 1127 00:54:26,679 --> 00:54:28,780 y vais a tener que ir ejecutando, comando 1128 00:54:28,780 --> 00:54:30,679 a comando, vale, os llamo 1129 00:54:30,679 --> 00:54:31,800 la atención sobre este 1130 00:54:31,800 --> 00:54:33,739 fijaos este comando 1131 00:54:33,739 --> 00:54:36,539 eso es un único comando, vale, veis que está 1132 00:54:36,539 --> 00:54:38,539 sangrado, pues eso es un único comando 1133 00:54:38,539 --> 00:54:40,500 entonces si queréis, esperad a que lo vaya 1134 00:54:40,500 --> 00:54:42,360 haciendo yo y lo vamos haciendo a la vez, entonces 1135 00:54:42,360 --> 00:54:44,460 os lo pego en el chat para que lo tengáis 1136 00:54:44,460 --> 00:54:47,639 vamos al chat 1137 00:54:47,639 --> 00:54:55,929 y que no se desespere nadie porque la recompensa 1138 00:54:55,929 --> 00:54:57,530 merece, bien 1139 00:54:57,530 --> 00:54:59,650 y ahora, del chat 1140 00:54:59,650 --> 00:55:01,670 ¿qué hacemos? pues vamos cogiendo esos comandos 1141 00:55:01,670 --> 00:55:02,389 cojo el primero 1142 00:55:02,389 --> 00:55:05,670 en el chat lo que pasa es que creo 1143 00:55:05,670 --> 00:55:07,769 que se ve partido. No sé si se puede 1144 00:55:07,769 --> 00:55:08,590 poner el chat más ancho. 1145 00:55:08,829 --> 00:55:09,349 Juanfe, 1146 00:55:09,909 --> 00:55:13,590 yo es que estoy con dos 1147 00:55:13,590 --> 00:55:15,889 ordenadores. En uno te tengo aquí 1148 00:55:15,889 --> 00:55:19,469 y en otro lo tengo 1149 00:55:19,469 --> 00:55:20,969 esto. ¿Puedes pegar esto en 1150 00:55:20,969 --> 00:55:23,630 el aula 1151 00:55:23,630 --> 00:55:25,250 o en algún otro lado todo el fichero? 1152 00:55:27,699 --> 00:55:29,340 ¿Sabes lo que te digo? No sé si me he explicado. 1153 00:55:29,519 --> 00:55:30,679 Sí, sí, sí. 1154 00:55:31,199 --> 00:55:33,519 Es que si no, voy a tener que estar tecleando 1155 00:55:33,519 --> 00:55:35,340 ahí todo, de un 1156 00:55:35,340 --> 00:55:36,119 ordenador a otro. 1157 00:55:36,119 --> 00:55:38,639 eso es lo que estoy haciendo yo 1158 00:55:38,639 --> 00:55:40,239 estoy tecleando tecla a tecla 1159 00:55:40,239 --> 00:55:43,239 con las instrucciones iniciales 1160 00:55:43,239 --> 00:55:44,880 las que tienes ahora mismo en pantalla 1161 00:55:44,880 --> 00:55:48,460 lo mismo que hiciste 1162 00:55:48,460 --> 00:55:50,500 el martes 1163 00:55:50,500 --> 00:55:51,579 que lo pegaste ahí 1164 00:55:51,579 --> 00:55:53,480 en el aula 1165 00:55:53,480 --> 00:55:56,239 lo haces igual 1166 00:55:56,239 --> 00:55:58,360 y desde el aula ya lo cogemos 1167 00:55:58,360 --> 00:55:59,960 es lo mismo que hiciste el martes 1168 00:55:59,960 --> 00:56:01,519 con el programilla este 1169 00:56:01,519 --> 00:56:04,139 vale, voy al aula virtual 1170 00:56:04,139 --> 00:56:05,199 entonces 1171 00:56:05,199 --> 00:56:11,969 lo voy a pegar 1172 00:56:11,969 --> 00:56:13,010 ahí en el tema 4 1173 00:56:13,010 --> 00:56:15,829 en el tema 2 1174 00:56:15,829 --> 00:56:17,949 tema 4, añadir 1175 00:56:17,949 --> 00:56:21,489 un área de texto 1176 00:56:21,489 --> 00:56:26,230 instalación docker 1177 00:56:26,230 --> 00:56:28,489 instalación docker 1178 00:56:28,489 --> 00:56:32,650 a ver que verifique que está bien 1179 00:56:32,650 --> 00:56:36,760 sí, creo que está bien 1180 00:56:36,760 --> 00:56:39,239 vale, pues lo tenéis ahí, vale, guardar 1181 00:56:39,239 --> 00:56:46,000 sí, ahí está 1182 00:56:46,000 --> 00:56:48,159 lo he puesto por secciones para que sepáis 1183 00:56:48,159 --> 00:56:49,480 lo que estamos haciendo en cada uno 1184 00:56:49,480 --> 00:56:51,840 ya aparece, gracias 1185 00:56:51,840 --> 00:56:54,300 pues nada, ahora lo que no sé 1186 00:56:54,300 --> 00:56:55,860 es si podéis copiarlo de ahí, porque a mí no me deja 1187 00:56:55,860 --> 00:56:57,460 Dios, no me digas esto ahora 1188 00:56:57,460 --> 00:56:59,079 a ver, ¿podéis copiar el texto de ahí? 1189 00:56:59,760 --> 00:57:01,139 sí, sí, yo sí puedo copiarlo 1190 00:57:01,139 --> 00:57:02,599 que susto 1191 00:57:02,599 --> 00:57:05,059 ¿en qué parte estamos? que estoy perdido 1192 00:57:05,059 --> 00:57:06,460 tema 3, tema 4 1193 00:57:06,460 --> 00:57:09,179 tema 4 1194 00:57:09,179 --> 00:57:10,559 vale, está 1195 00:57:10,559 --> 00:57:14,099 entonces, el primer comando que cojo es este 1196 00:57:14,099 --> 00:57:15,739 sudo apt-get update 1197 00:57:15,739 --> 00:57:19,659 y me lo llevo a mi consola 1198 00:57:19,659 --> 00:57:20,820 de Putty 1199 00:57:20,820 --> 00:57:23,460 y lo pego ahí, ¿cómo se pega? con el botón 1200 00:57:23,460 --> 00:57:24,539 derecho del ratón, ¿vale? 1201 00:57:25,000 --> 00:57:27,519 se pulsa el botón derecho del ratón, no es con control V 1202 00:57:27,519 --> 00:57:28,860 es botón derecho del ratón 1203 00:57:28,860 --> 00:57:31,340 o sea, lo copiáis con control C 1204 00:57:31,340 --> 00:57:33,039 pero pegarlo es botón derecho del ratón 1205 00:57:33,039 --> 00:57:34,039 no lo estás compartiendo, ¿no? 1206 00:57:35,739 --> 00:57:36,139 ¿no? 1207 00:57:36,719 --> 00:57:38,199 lo estás compartiendo, a ver 1208 00:57:38,199 --> 00:57:40,639 sí, yo lo estaba viendo 1209 00:57:40,639 --> 00:57:43,059 ah, sí 1210 00:57:43,059 --> 00:57:43,880 sí, sí, sí 1211 00:57:43,880 --> 00:57:47,480 vale, yo ya he copiado el primero 1212 00:57:47,480 --> 00:57:49,320 ¿vale? y esto es uno detrás de otro 1213 00:57:49,320 --> 00:57:50,320 o sea, sin más 1214 00:57:50,320 --> 00:57:53,179 ya he hecho el sudo apt-get update 1215 00:57:53,179 --> 00:57:55,780 ahora pego el siguiente 1216 00:57:55,780 --> 00:57:59,340 el siguiente 1217 00:57:59,340 --> 00:58:08,050 el siguiente 1218 00:58:08,050 --> 00:58:14,300 y el siguiente 1219 00:58:14,300 --> 00:58:16,519 los que empiezan 1220 00:58:16,519 --> 00:58:18,440 con almohadilla no son comandos, ¿vale? 1221 00:58:18,460 --> 00:58:20,119 los que empiezan con almohadilla son 1222 00:58:20,119 --> 00:58:22,539 comentarios, entonces eso no hace falta que lo 1223 00:58:22,539 --> 00:58:24,260 peguéis. Perdona, Juanfe 1224 00:58:24,260 --> 00:58:26,199 en la ventana de Putty, ¿no? 1225 00:58:27,099 --> 00:58:27,619 Exacto 1226 00:58:27,619 --> 00:58:29,320 y fijaos 1227 00:58:29,320 --> 00:58:33,340 copiar comando a comando 1228 00:58:33,340 --> 00:58:34,599 lo que tienes ahí 1229 00:58:34,599 --> 00:58:37,360 exacto, pero esto es un solo comando 1230 00:58:37,360 --> 00:58:38,440 el que estoy enseñando ahora 1231 00:58:38,440 --> 00:58:39,579 todo este largote 1232 00:58:39,579 --> 00:58:41,340 es uno solo 1233 00:58:41,340 --> 00:59:27,880 Adrián y Modesto 1234 00:59:27,880 --> 00:59:29,820 esto no lo hagáis porque ya lo estoy 1235 00:59:29,820 --> 00:59:31,800 haciendo yo, ¿vale? Entonces, si lo hacéis, lo único 1236 00:59:31,800 --> 00:59:33,739 es que, bueno, pues estamos haciendo todos 1237 00:59:33,739 --> 00:59:35,699 lo mismo. Entonces, esperáos a que 1238 00:59:35,699 --> 00:59:38,059 lleguemos luego a la parte de 1239 00:59:38,059 --> 00:59:39,480 MIM y ahí ya lo 1240 00:59:39,480 --> 00:59:41,699 hacéis vosotros. Sí, sí, sin problema. 1241 00:59:41,900 --> 00:59:43,800 Yo ya he estado alguna vez en algún Linux, 1242 00:59:43,920 --> 00:59:47,630 así que no... 1243 00:59:47,630 --> 00:59:50,070 Entonces, vamos a ir todos hasta este comando, 1244 00:59:50,150 --> 00:59:51,889 ¿vale? Hasta este que tengo yo 1245 00:59:51,889 --> 00:59:54,110 aquí marcado, el sudo apt-get install docker. 1246 00:59:56,090 --> 00:59:57,989 La almohadilla también, no, ¿no? 1247 00:59:58,989 --> 01:00:00,050 No, los que tienen almohadilla 1248 01:00:00,050 --> 01:00:02,469 los ignoráis. Esa línea la ignoráis. Es un comentario. 1249 01:00:04,210 --> 01:00:06,329 El que has dicho que es solo uno 1250 01:00:06,329 --> 01:00:08,110 es este aquí. El de Echo 1251 01:00:08,110 --> 01:00:10,150 son cuatro líneas las que ocupa. 1252 01:00:10,869 --> 01:00:11,389 Correcto. 1253 01:00:49,059 --> 01:00:50,159 No me lo deja. 1254 01:00:51,659 --> 01:00:52,659 ¿Cuál no te deja? 1255 01:00:53,820 --> 01:00:56,039 El app de repository. 1256 01:00:56,260 --> 01:00:58,199 Los he ido colocando a mano todos 1257 01:00:58,199 --> 01:01:00,460 para evitar complicaciones 1258 01:01:00,460 --> 01:01:02,800 pero cuando le doy a botón 1259 01:01:02,800 --> 01:01:04,179 me posiciono 1260 01:01:04,179 --> 01:01:06,480 en el putty con el ratón 1261 01:01:06,480 --> 01:01:08,260 pulso botón derecho 1262 01:01:08,260 --> 01:01:09,059 si 1263 01:01:09,059 --> 01:01:12,019 se me queda el icono verde 1264 01:01:12,019 --> 01:01:14,280 no me aparece como habitualmente 1265 01:01:14,280 --> 01:01:16,139 me ocurre en los terminales 1266 01:01:16,139 --> 01:01:17,420 que te aparece todo el texto 1267 01:01:17,420 --> 01:01:19,059 no me pega nada 1268 01:01:19,059 --> 01:01:22,820 ¿qué comando es el que estás pegando ahora? 1269 01:01:23,559 --> 01:01:24,019 el add 1270 01:01:24,019 --> 01:01:26,780 iba a copiar add de repositorio 1271 01:01:26,780 --> 01:01:28,079 y las cuatro líneas 1272 01:01:28,199 --> 01:01:31,360 esa línea, la de 1273 01:01:31,360 --> 01:01:33,260 acer repository, esa no la has copiado, ¿no? 1274 01:01:34,179 --> 01:01:35,099 no, todavía, esa no 1275 01:01:35,099 --> 01:01:37,119 he intentado copiar la entera 1276 01:01:37,119 --> 01:01:39,119 esa y las otras tres 1277 01:01:39,119 --> 01:01:41,179 pero no me coge, no me aparece ninguna 1278 01:01:41,179 --> 01:01:41,679 en pantalla 1279 01:01:41,679 --> 01:01:44,579 vale, esta no la tienes que pegar, ¿vale? 1280 01:01:44,599 --> 01:01:47,460 la que tiene almohadilla, no, la que tiene almohadilla es un comentario 1281 01:01:47,460 --> 01:01:48,900 entonces, es la que empieza 1282 01:01:48,900 --> 01:01:50,539 por echo, la copias 1283 01:01:50,539 --> 01:01:51,699 que lo estoy haciendo yo ahora 1284 01:01:51,699 --> 01:01:53,760 control c 1285 01:01:53,760 --> 01:01:56,719 vale, un segundito, echo 1286 01:01:56,719 --> 01:02:19,829 no me sale nada en pantalla 1287 01:02:19,829 --> 01:02:21,329 voy a tratar de ponerlo a pelo 1288 01:02:21,329 --> 01:02:22,210 aunque me cueste 1289 01:02:22,210 --> 01:02:24,510 no, no, a pelo te vas a llevar un rato 1290 01:02:24,510 --> 01:02:25,630 tú tienes que escribir 1291 01:02:25,630 --> 01:02:28,309 esto lo estoy intentando 1292 01:02:28,309 --> 01:02:29,710 selecciono el texto 1293 01:02:29,710 --> 01:02:31,769 le doy a copiar 1294 01:02:31,769 --> 01:02:34,750 me voy al terminal 1295 01:02:34,750 --> 01:02:36,590 me posiciono 1296 01:02:36,590 --> 01:02:37,429 a ver, control c 1297 01:02:37,429 --> 01:02:38,989 por si hay algún error 1298 01:02:38,989 --> 01:02:43,980 es que con un terminal normal le doy a copiar 1299 01:02:43,980 --> 01:02:45,900 y pegar y me lo coge, pero es que aquí 1300 01:02:45,900 --> 01:02:46,940 botón derecho 1301 01:02:46,940 --> 01:02:48,659 botón derecho 1302 01:02:48,659 --> 01:02:51,239 tendría que salir directamente 1303 01:02:51,239 --> 01:02:52,860 no me sale 1304 01:02:52,860 --> 01:02:55,679 por eso es lo que me extraña 1305 01:02:55,679 --> 01:02:57,940 voy a intentar de ponerlo a mano 1306 01:02:57,940 --> 01:03:33,070 Vamos a ver. 1307 01:03:33,090 --> 01:03:37,230 está el Docker. Ahora podéis comprobar que el Docker está funcionando si escribís 1308 01:03:37,230 --> 01:03:42,369 Docker. Escribís Docker, sin más, pulsáis intro y veréis que os saldrá ahí toda la 1309 01:03:42,369 --> 01:03:48,010 información de Docker. Entonces, voy a contaros lo que vamos a hacer a continuación. El siguiente 1310 01:03:48,010 --> 01:03:52,989 paso va a ser crearnos un usuario que no sea el usuario raíz. Ahora mismo estamos utilizando 1311 01:03:52,989 --> 01:03:58,690 nuestra máquina virtual como usuario raíz, como el usuario superadministrador, por así 1312 01:03:58,690 --> 01:04:01,030 decirlo, hay aplicaciones 1313 01:04:01,030 --> 01:04:02,769 que no permiten 1314 01:04:02,769 --> 01:04:04,869 ser instaladas por el usuario raíz 1315 01:04:04,869 --> 01:04:06,909 luego vais a ver un ejemplo de ellas 1316 01:04:06,909 --> 01:04:08,750 entonces para evitar eso 1317 01:04:08,750 --> 01:04:10,550 lo que vamos a hacer es añadirnos 1318 01:04:10,550 --> 01:04:12,329 un usuario nuevo en nuestra máquina 1319 01:04:12,329 --> 01:04:14,789 eso se hace con los cuatro comandos 1320 01:04:14,789 --> 01:04:16,849 que os he puesto aquí abajo, el primer 1321 01:04:16,849 --> 01:04:17,309 comando 1322 01:04:17,309 --> 01:04:20,650 añade un usuario, en este caso yo lo he llamado 1323 01:04:20,650 --> 01:04:22,670 Juanfe, vosotros podéis poner ahí vuestro nombre 1324 01:04:22,670 --> 01:04:24,230 sudo adduser juanfe 1325 01:04:24,230 --> 01:04:26,329 el segundo comando 1326 01:04:26,329 --> 01:04:28,190 añade juanfe 1327 01:04:28,190 --> 01:04:29,789 al grupo docker 1328 01:04:29,789 --> 01:04:32,030 sabéis que en las máquinas 1329 01:04:32,030 --> 01:04:34,190 unit los usuarios 1330 01:04:34,190 --> 01:04:35,889 pueden pertenecer a varios grupos 1331 01:04:35,889 --> 01:04:37,449 y esos grupos les confieren 1332 01:04:37,449 --> 01:04:39,110 ciertas capacidades 1333 01:04:39,110 --> 01:04:41,929 entonces lo que vamos a hacer es añadir el usuario 1334 01:04:41,929 --> 01:04:43,650 que creáis tanto 1335 01:04:43,650 --> 01:04:46,150 al grupo docker como al grupo 1336 01:04:46,150 --> 01:04:48,130 sudo, con lo cual se va a convertir 1337 01:04:48,130 --> 01:04:49,130 en un super usuario 1338 01:04:49,130 --> 01:04:51,889 y por último vamos a comprobar 1339 01:04:51,889 --> 01:04:53,590 que sois capaces de cambiar de usuario 1340 01:04:53,590 --> 01:04:55,909 eso se hace con su guion y el nombre 1341 01:04:55,909 --> 01:04:56,550 del usuario 1342 01:04:56,550 --> 01:04:59,349 entonces bueno, yo voy a empezar a hacer esto 1343 01:04:59,349 --> 01:05:01,670 despacio para dar tiempo a que el compañero 1344 01:05:01,670 --> 01:05:03,590 nos coja, entonces añado 1345 01:05:03,590 --> 01:05:05,590 el usuario, vale, cuando 1346 01:05:05,590 --> 01:05:07,309 lo añado lo primero que me dice, oye 1347 01:05:07,309 --> 01:05:09,309 ¿qué contraseña quieres dar a este usuario? 1348 01:05:09,670 --> 01:05:11,550 esto si queréis Modesto y Adrián 1349 01:05:11,550 --> 01:05:13,269 si lo podéis hacer, si queréis, vale, podéis 1350 01:05:13,269 --> 01:05:15,010 crearos vuestros propios usuarios 1351 01:05:15,010 --> 01:05:17,369 ¿lo podemos hacer en paralelo o esperamos 1352 01:05:17,369 --> 01:05:19,329 a que lo hagas tú? Sí, sí, lo podéis hacer en paralelo 1353 01:05:19,329 --> 01:05:21,289 perfectamente, pero no le llaméis 1354 01:05:21,289 --> 01:05:22,409 Juanfe, darle otro nombre 1355 01:05:22,409 --> 01:05:25,409 vale, entonces 1356 01:05:25,409 --> 01:05:28,170 Les tengo que escribir la contraseña para Juanfe dos veces. 1357 01:05:28,690 --> 01:05:33,809 Luego me piden una serie de datos, el nombre completo, la habitación, el número de teléfono. 1358 01:05:34,510 --> 01:05:36,449 Todo eso lo dejáis vacío. 1359 01:05:37,449 --> 01:05:39,989 Y al final te dice, ¿es la información correcta? 1360 01:05:40,150 --> 01:05:41,630 Pulsáis Yes y ya está. 1361 01:05:41,710 --> 01:05:43,670 Ya está añadido el usuario Juanfe. 1362 01:05:44,869 --> 01:05:45,650 Siguiente paso. 1363 01:05:45,650 --> 01:05:50,469 Una vez que ya tengo ese usuario, lo añado al grupo Docker. 1364 01:05:50,690 --> 01:05:53,130 Eso es tan sencillo como pegar ese comando que veis ahí. 1365 01:05:55,409 --> 01:05:58,150 Lo añado también al grupo sudo. 1366 01:05:58,710 --> 01:05:59,349 Sí, perdón. 1367 01:05:59,590 --> 01:06:02,110 Perdona, cuando te introduces el número de usuario, 1368 01:06:02,210 --> 01:06:04,750 te pide que introduzcas la password, ¿no? 1369 01:06:04,769 --> 01:06:05,989 La que hemos puesto nosotros. 1370 01:06:06,750 --> 01:06:09,389 No, la password que tú le quieras asignar a ese usuario. 1371 01:06:09,389 --> 01:06:11,550 Estás creando un usuario nuevo y te dice 1372 01:06:11,550 --> 01:06:14,269 qué contraseña quieres que use este usuario. 1373 01:06:14,389 --> 01:06:15,730 Entonces, fue la password que tú quieras. 1374 01:06:16,489 --> 01:06:16,730 Vale. 1375 01:06:57,280 --> 01:07:00,530 oye Juanfe, una duda 1376 01:07:00,530 --> 01:07:02,630 porque yo iba ahí todo disparado, no lo sé 1377 01:07:02,630 --> 01:07:03,809 el sudo 1378 01:07:03,809 --> 01:07:05,550 el sudo 1379 01:07:05,550 --> 01:07:08,389 apt-get install docker 1380 01:07:08,389 --> 01:07:10,429 ese que se hace justo antes del usuario 1381 01:07:10,429 --> 01:07:12,590 que estamos creando, eso se hacía 1382 01:07:12,590 --> 01:07:13,429 como root, ¿no? 1383 01:07:14,130 --> 01:07:15,070 sí, como root 1384 01:07:15,070 --> 01:07:19,170 me pide un full number y un room number 1385 01:07:19,170 --> 01:07:20,489 sí, eso dale intro 1386 01:07:20,489 --> 01:07:22,809 lo dejas vacío, eso no hace falta especificarlo 1387 01:07:22,809 --> 01:07:23,389 es opcional 1388 01:07:23,389 --> 01:07:26,849 opcional, todo eso es opcional 1389 01:07:26,849 --> 01:07:27,590 todo esto fuera, ¿no? 1390 01:07:27,590 --> 01:07:30,389 intro, intro, intro, hasta que te diga 1391 01:07:30,389 --> 01:07:31,610 es correcta la información 1392 01:07:31,610 --> 01:07:34,190 y entonces pulsas la Y de Yes 1393 01:07:34,190 --> 01:07:35,530 y pulsas intro, y ya está 1394 01:07:35,530 --> 01:07:36,630 vale, ya está 1395 01:07:36,630 --> 01:07:40,190 ese es el primer comando, ahora seguimos con los demás, ¿no? 1396 01:07:40,730 --> 01:07:41,929 claro, ese es el primero 1397 01:07:41,929 --> 01:07:44,010 que es crear el usuario, y ahora lo que vas a hacer 1398 01:07:44,010 --> 01:07:45,989 es ese usuario incluirlo dentro de un grupo 1399 01:07:45,989 --> 01:07:47,869 que se llama Docker, y dentro de otro grupo 1400 01:07:47,869 --> 01:07:50,170 que se llama sudo, cada uno de estos grupos 1401 01:07:50,170 --> 01:07:51,849 le confiere habilidades, por ejemplo 1402 01:07:51,849 --> 01:07:53,869 el primero, pues le confiere la habilidad de poder 1403 01:07:53,869 --> 01:07:55,469 instalar, descargar imágenes 1404 01:07:55,469 --> 01:07:57,469 levantar contenedores, ¿vale? 1405 01:07:57,590 --> 01:07:59,929 y el segundo lo convierte en un superadministrador 1406 01:07:59,929 --> 01:08:00,489 del sistema 1407 01:08:00,489 --> 01:08:02,869 ¿Puedes dejar la página con los comandos? 1408 01:08:02,989 --> 01:08:03,530 Ah, sí, perdón 1409 01:08:03,530 --> 01:08:06,510 Está 1410 01:08:06,510 --> 01:08:08,070 aquí 1411 01:08:08,070 --> 01:08:10,530 No, no 1412 01:08:10,530 --> 01:08:13,090 Ah, sí, vale, la de user mod 1413 01:08:13,090 --> 01:08:13,849 Vale, sí 1414 01:08:13,849 --> 01:08:17,510 Hola, acabo de entrar ya, por fin 1415 01:08:17,510 --> 01:08:20,149 Me pierdo la clave 1416 01:08:20,149 --> 01:08:20,869 No, era que 1417 01:08:20,869 --> 01:08:23,510 al ser una contraseña 1418 01:08:23,510 --> 01:08:26,369 que estaba confundiendo 1419 01:08:26,369 --> 01:08:28,329 una letra, porque estaba subrayada de rojo 1420 01:08:28,329 --> 01:08:30,050 y no veía la I por la V. No, no. 1421 01:08:30,350 --> 01:08:32,550 He instalado el kitty de las 1422 01:08:32,550 --> 01:08:34,210 narices, que me ha costado. 1423 01:08:35,109 --> 01:08:36,449 Y ya con el kitty, después 1424 01:08:36,449 --> 01:08:38,329 de un buen rato, ya he entrado 1425 01:08:38,329 --> 01:08:40,510 y ahora ya estoy perdido absolutamente. 1426 01:08:40,869 --> 01:08:41,710 O sea, gracias, pero 1427 01:08:41,710 --> 01:08:44,289 bueno, me veré el vídeo, porque 1428 01:08:44,289 --> 01:08:46,289 otra cosa... No, no, no. 1429 01:08:46,289 --> 01:08:48,409 No estás tan perdido. Si ya estás dentro, 1430 01:08:48,970 --> 01:08:50,489 ¿vale? Sí. Lo único que tienes que hacer 1431 01:08:50,489 --> 01:08:52,470 es ir pegando estos comandos de uno en uno. 1432 01:08:52,909 --> 01:08:54,189 Que los tienes ahí en 1433 01:08:54,189 --> 01:08:55,229 el aula virtual. 1434 01:08:56,369 --> 01:08:56,850 ¿Vale? 1435 01:08:57,430 --> 01:08:58,930 Pego comando y doy a intro. 1436 01:08:59,949 --> 01:09:01,369 Perdón, no te he escuchado bien. 1437 01:09:01,890 --> 01:09:03,489 Perdón, pego comando y doy a intro. 1438 01:09:04,930 --> 01:09:05,369 Exacto. 1439 01:09:05,550 --> 01:09:07,750 Lo copias aquí, luego te vas 1440 01:09:07,750 --> 01:09:08,569 al terminal, 1441 01:09:09,550 --> 01:09:11,789 lo pegas, pero con el botón derecho del ratón 1442 01:09:11,789 --> 01:09:13,250 se pega aquí en este terminal, ¿vale? 1443 01:09:13,689 --> 01:09:14,970 Y ves que te va a aparecer 1444 01:09:14,970 --> 01:09:17,930 y pulsas intro. Comando a comando. 1445 01:09:18,390 --> 01:09:18,770 Y ya está. 1446 01:09:20,289 --> 01:09:21,130 Pero el otro número, 1447 01:09:21,729 --> 01:09:22,810 otro nombre al usuario. 1448 01:09:26,659 --> 01:09:27,140 ¿Perdón? 1449 01:09:29,220 --> 01:09:33,119 simplemente tú vete añadiendo estos comandos 1450 01:09:33,119 --> 01:09:33,920 tú no uno, por favor 1451 01:09:33,920 --> 01:09:36,699 vale, ten en cuenta lo que he dicho 1452 01:09:36,699 --> 01:09:38,699 este del echo son cuatro líneas 1453 01:09:38,699 --> 01:09:39,680 es un solo comando 1454 01:09:39,680 --> 01:09:42,079 el resto no, el resto son 1455 01:09:42,079 --> 01:09:43,819 una sola línea 1456 01:09:43,819 --> 01:09:49,020 venga, entonces lo que os decía 1457 01:09:49,020 --> 01:09:50,640 ya tengo mi usuario 1458 01:09:50,640 --> 01:09:52,659 ¿cómo cambio de usuario? pues simplemente escribe 1459 01:09:52,659 --> 01:09:54,739 su guión y yo quiero cambiar a Juanfe 1460 01:09:54,739 --> 01:09:56,760 primero, ¿cómo sé que estoy en root? 1461 01:09:56,840 --> 01:09:58,859 porque fijaos, aquí en el prom 1462 01:09:58,859 --> 01:09:59,840 veis que pone root 1463 01:09:59,840 --> 01:10:02,859 ahora mismo estoy identificado como el usuario 1464 01:10:02,859 --> 01:10:04,220 root en la máquina 1465 01:10:04,220 --> 01:10:06,760 ismie01, ahora con el comando 1466 01:10:06,760 --> 01:10:07,960 su-juanfe 1467 01:10:07,960 --> 01:10:10,840 me dice que estoy identificado 1468 01:10:10,840 --> 01:10:12,239 como el usuario juanfe 1469 01:10:12,239 --> 01:10:14,100 en la máquina ismie01 1470 01:10:14,100 --> 01:10:16,680 si quiero volver a ser root, pues simplemente 1471 01:10:16,680 --> 01:10:18,159 hago su-root 1472 01:10:18,159 --> 01:10:20,380 me pide la contraseña del root 1473 01:10:20,380 --> 01:10:22,539 que ahora 1474 01:10:22,539 --> 01:10:23,819 es ismie.iot 1475 01:10:23,819 --> 01:10:26,880 y veis, ya vuelvo a ser 1476 01:10:26,880 --> 01:10:27,359 root 1477 01:10:27,359 --> 01:10:31,079 esto es simplemente para que lo practiquéis 1478 01:10:31,079 --> 01:10:33,000 como se cambia de un usuario a otro 1479 01:10:33,000 --> 01:10:34,920 es más rápido 1480 01:10:34,920 --> 01:10:36,920 si escribes exit y ya está 1481 01:10:36,920 --> 01:10:38,159 no te pide contraseña 1482 01:10:38,159 --> 01:10:40,920 pues ya está, es más rápido todavía 1483 01:10:44,890 --> 01:10:54,109 y si sois como yo, que no tenéis mucha experiencia 1484 01:10:54,109 --> 01:10:55,829 en Linux, pues todo esto de tener que 1485 01:10:55,829 --> 01:10:58,630 usar el terminal os parecerá un suplicio 1486 01:10:58,630 --> 01:10:59,750 ¿vale? que a mí me pasa 1487 01:10:59,750 --> 01:11:02,130 entonces, ¿qué es lo que vamos a hacer a continuación? 1488 01:11:02,250 --> 01:11:04,510 pues lo primero que vamos a hacer 1489 01:11:04,510 --> 01:11:05,869 es instalarnos Portainer 1490 01:11:05,869 --> 01:11:08,390 Portainer es un gestor 1491 01:11:08,390 --> 01:11:09,949 de contenedores, es una 1492 01:11:09,949 --> 01:11:12,470 interfaz gráfica para manejar 1493 01:11:12,470 --> 01:11:14,470 Docker, entonces ya no vamos a tener que escribir 1494 01:11:14,470 --> 01:11:16,210 más cosas en el terminal 1495 01:11:16,210 --> 01:11:19,800 ¿vale? voy a esperar unos 1496 01:11:19,800 --> 01:11:21,439 minutillos para resolver 1497 01:11:21,439 --> 01:11:23,819 dudas, sí que me gustaría que por favor nadie abandone 1498 01:11:23,819 --> 01:11:25,779 o sea, por muy perdido que crea uno 1499 01:11:25,779 --> 01:11:27,859 que está, realmente no es tan 1500 01:11:27,859 --> 01:11:29,319 complicado, salvo que surjan 1501 01:11:29,319 --> 01:11:31,680 problemas con el ordenador o algo así 1502 01:11:31,680 --> 01:11:33,760 pero es básicamente copiar y pegar 1503 01:11:33,760 --> 01:11:35,600 esto que está extraído 1504 01:11:35,600 --> 01:11:37,979 directamente de la documentación, o sea, yo aquí no he inventado 1505 01:11:37,979 --> 01:11:39,619 nada, está tal cual está 1506 01:11:39,619 --> 01:11:41,619 la documentación y lo único que he hecho es 1507 01:11:41,619 --> 01:11:44,020 ponerlo aquí en fila para que os resultara 1508 01:11:44,020 --> 01:11:45,659 más sencillo 1509 01:11:45,659 --> 01:11:50,319 Vale, esto 1510 01:11:50,319 --> 01:11:52,720 estoy en 1, 2, 3 1511 01:11:52,720 --> 01:11:54,520 4, 5, 6, 7, el séptimo 1512 01:11:54,520 --> 01:11:56,899 comando que es una dirección HTTPS 1513 01:11:56,899 --> 01:11:57,739 ¿se supone también? 1514 01:12:01,170 --> 01:12:03,210 No, a ver, tú estás en, me temo que estás 1515 01:12:03,210 --> 01:12:04,829 en el comando de que empieza por 1516 01:12:04,890 --> 01:12:07,390 no, no, no, todavía no 1517 01:12:07,390 --> 01:12:08,970 he hecho todos los sudos 1518 01:12:08,970 --> 01:12:11,170 sudo, sudo, certificate, sudo, etc 1519 01:12:11,170 --> 01:12:13,489 sudo, ahora viene un HTTPS 1520 01:12:13,489 --> 01:12:15,350 eso también se pone 1521 01:12:15,350 --> 01:12:17,149 dime cuál es porque 1522 01:12:17,149 --> 01:12:18,609 no estoy entendiendo cuál me dices 1523 01:12:18,609 --> 01:12:20,270 léemelo un poco más, por favor 1524 01:12:20,270 --> 01:12:22,869 línea 9 que puede ser 1525 01:12:22,869 --> 01:12:25,350 1, 2, 3, 4, 5 1526 01:12:25,350 --> 01:12:26,810 6, 7, la línea 7 1527 01:12:26,810 --> 01:12:29,210 no, perdón 1528 01:12:29,210 --> 01:12:30,930 ah, no, vale, vale, perdón 1529 01:12:30,930 --> 01:12:32,609 es que no me he mirado aquí 1530 01:12:32,609 --> 01:12:34,109 y he copiado 1531 01:12:34,109 --> 01:12:37,390 el Sudocool 1532 01:12:37,390 --> 01:12:39,510 FS sin el HTTPS 1533 01:12:39,510 --> 01:12:42,430 la línea 9 1534 01:12:42,430 --> 01:12:44,569 no, no, no, 1, 2, 3 y 4 1535 01:12:44,569 --> 01:12:46,510 la línea, ¿esa es la 9? 1536 01:12:47,050 --> 01:12:48,369 ah, sí, no es la línea 9, perdón 1537 01:12:48,369 --> 01:12:49,770 sí, es que estaba contando 1538 01:12:49,770 --> 01:12:53,090 pues esa nada, simplemente coges todo esto 1539 01:12:53,090 --> 01:12:54,750 y lo copias y lo pegas y ya está 1540 01:12:54,750 --> 01:12:56,109 cojo todo, vale, vale, es que no 1541 01:12:56,109 --> 01:12:59,069 la contraseña de Rucco la he dicho que era, Juanfe 1542 01:12:59,069 --> 01:13:01,149 la que hayas puesto tú 1543 01:13:01,149 --> 01:13:02,770 ¿tú eres Adrián o Modesto? 1544 01:13:02,770 --> 01:13:04,449 no, no, no, no 1545 01:13:04,449 --> 01:13:06,069 pues esa la has puesto tú, la contraseña 1546 01:13:06,069 --> 01:13:07,430 ya la has puesto tú 1547 01:13:07,430 --> 01:13:20,710 a ver, Juanfélix 1548 01:13:20,710 --> 01:13:22,890 estoy, sigo perdido 1549 01:13:22,890 --> 01:13:24,010 en el 1550 01:13:24,010 --> 01:13:26,689 añadir el repositorio a las 1551 01:13:26,689 --> 01:13:28,229 fuentes, a las apt-surs 1552 01:13:28,229 --> 01:13:30,689 cuando lo 1553 01:13:30,689 --> 01:13:32,010 meta por línea de comando 1554 01:13:32,010 --> 01:13:34,289 la comilla que aparece delante del 1555 01:13:34,289 --> 01:13:36,229 dep, la quito o la mantengo 1556 01:13:36,229 --> 01:13:38,529 no, no, se mantiene todo, tiene que estar 1557 01:13:38,529 --> 01:13:40,250 idéntico a como está ahí, no se quita nada 1558 01:13:40,250 --> 01:13:42,649 el eco barra hacia atrás 1559 01:13:42,649 --> 01:13:44,810 todo seguido 1560 01:13:44,810 --> 01:13:46,510 con un espacio en medio 1561 01:13:46,510 --> 01:13:47,970 entre el eco y la barra un espacio 1562 01:13:47,970 --> 01:13:49,369 entre la barra y el 1563 01:13:49,369 --> 01:13:52,569 yo he copiado en un editor de texto plano 1564 01:13:52,569 --> 01:13:54,109 claro, copiátelo en un editor 1565 01:13:54,109 --> 01:13:55,529 a ver si te está cogiendo 1566 01:13:55,529 --> 01:13:58,010 igual te está cogiendo caracteres raros o algo 1567 01:13:58,010 --> 01:13:59,350 no sé lo que puede estar pasando 1568 01:13:59,350 --> 01:14:02,250 por eso he cogido el editor de texto plano de linux 1569 01:14:02,250 --> 01:14:03,430 a ver si me lo coge 1570 01:14:03,430 --> 01:14:05,989 lo pego de todas formas 1571 01:14:05,989 --> 01:14:07,310 en el chat 1572 01:14:07,310 --> 01:14:27,890 No, si el problema que tengo, Juan Félix, es que le doy a pincho, intento darle botón derecho, botón izquierdo y no me aparece nada en el put y no sé si es que al configurarlo alguna de las opciones que tiene de retorno de carro o alguna de estas no la ha configurado. 1573 01:14:29,630 --> 01:14:31,069 Esperamos, ya lo intentaré. 1574 01:14:32,890 --> 01:14:35,390 No te sé decir porque no me ha pasado nunca. 1575 01:14:35,390 --> 01:14:37,829 bueno 1576 01:14:37,829 --> 01:14:40,470 vamos a dar un pasito más 1577 01:14:40,470 --> 01:14:42,689 como seguramente nos atranquemos 1578 01:14:42,689 --> 01:14:44,529 otra vez, pues no desistáis 1579 01:14:44,529 --> 01:14:45,850 por favor, seguid intentándolo 1580 01:14:45,850 --> 01:14:48,609 insisto, son pasos 1581 01:14:48,609 --> 01:14:50,670 la operativa 1582 01:14:50,670 --> 01:14:52,550 es sencilla, porque es copiar 1583 01:14:52,550 --> 01:14:54,109 esto, pero claro, si no tienes que copiar a mano 1584 01:14:54,109 --> 01:14:55,810 es fácil que cometas errores o demás 1585 01:14:55,810 --> 01:14:58,449 entonces, por favor, no desistáis y continuar 1586 01:14:58,449 --> 01:14:59,729 ¿vale? entonces 1587 01:14:59,729 --> 01:15:02,369 ¿qué tenemos ahora? pues lo que tenemos ya 1588 01:15:02,369 --> 01:15:04,430 es un motor de contenedores instalado 1589 01:15:04,430 --> 01:15:07,409 tenemos aquí, estoy como usuario raíz 1590 01:15:07,409 --> 01:15:09,630 entonces lo que ha comentado Germán 1591 01:15:09,630 --> 01:15:11,369 si habéis entrado al usuario 1592 01:15:11,369 --> 01:15:13,470 Juanfe o al que 1593 01:15:13,470 --> 01:15:15,510 os hayáis creado, pues dais exit y volvéis 1594 01:15:15,510 --> 01:15:17,569 al raíz, y ahora lo que vamos a hacer 1595 01:15:17,569 --> 01:15:19,449 es instalar Portainer 1596 01:15:19,449 --> 01:15:21,789 para poder instalar Portainer 1597 01:15:21,789 --> 01:15:23,689 recordad lo que os he dicho, lo que tenemos que hacer 1598 01:15:23,689 --> 01:15:24,829 es ir 1599 01:15:24,829 --> 01:15:27,390 al registro y descargarnos 1600 01:15:27,390 --> 01:15:29,409 la imagen de Portainer, una vez que tengamos 1601 01:15:29,409 --> 01:15:31,569 la imagen, que son esas capas de solo lectura 1602 01:15:31,569 --> 01:15:33,390 vamos a desplegar un 1603 01:15:33,390 --> 01:15:35,770 contenedor sobre esas capas 1604 01:15:35,770 --> 01:15:36,869 de la imagen, ¿vale? 1605 01:15:37,229 --> 01:15:39,930 ¿Esto cómo se hace? Pues mira, os pongo la presentación. 1606 01:15:40,069 --> 01:15:41,670 Esto es volver ya a la presentación, ¿vale? 1607 01:15:42,270 --> 01:15:43,869 Entonces, el primer comando 1608 01:15:43,869 --> 01:15:45,029 es descargar la imagen 1609 01:15:45,029 --> 01:15:47,590 que os lo voy a pegar 1610 01:15:47,590 --> 01:15:49,649 para que lo tengáis 1611 01:15:49,649 --> 01:15:57,920 en el chat y lo voy a 1612 01:15:57,920 --> 01:16:00,060 ejecutar yo. Ahí lo único que le estamos 1613 01:16:00,060 --> 01:16:01,680 Una pregunta, 1614 01:16:01,800 --> 01:16:04,220 entonces, ahora antes de ejecutar 1615 01:16:04,220 --> 01:16:06,060 este comando, ¿estamos como root 1616 01:16:06,060 --> 01:16:08,060 o como el nuevo usuario que nos hemos creado? 1617 01:16:08,060 --> 01:16:10,260 estamos como root ahora mismo 1618 01:16:10,260 --> 01:16:11,300 como root, vale 1619 01:16:11,300 --> 01:16:14,359 pero vamos, daría igual, pero bueno, estamos como root 1620 01:16:14,359 --> 01:16:17,819 ¿en qué 1621 01:16:17,819 --> 01:16:19,300 diapositiva estás? 1622 01:16:19,899 --> 01:16:22,720 en la diapositiva 44 1623 01:16:22,720 --> 01:16:36,060 ¿esto qué ha hecho? 1624 01:16:36,220 --> 01:16:38,239 pues ha descargado la imagen 1625 01:16:38,239 --> 01:16:39,779 de Portainer 1626 01:16:39,779 --> 01:16:41,640 pero aún no tenemos el contenedor creado 1627 01:16:41,640 --> 01:16:43,659 entonces lo primero que podríamos 1628 01:16:43,659 --> 01:16:45,720 querer saber es, oye, pero esta 1629 01:16:45,720 --> 01:16:48,100 esta imagen, ¿dónde está? 1630 01:16:48,380 --> 01:16:49,579 ¿dónde está almacenado 1631 01:16:49,579 --> 01:16:51,939 en mi ordenador, pues esto si no queréis 1632 01:16:51,939 --> 01:16:53,100 no lo hagáis, lo hago yo 1633 01:16:53,100 --> 01:16:56,119 tú puedes hacer, está ahí en la presentación de todas formas 1634 01:16:56,119 --> 01:16:57,079 no os perdéis nada 1635 01:16:57,079 --> 01:16:59,140 yo le puedo dar un docker info 1636 01:16:59,140 --> 01:17:02,520 ¿vale? y al hacer el docker info 1637 01:17:02,520 --> 01:17:05,920 a ver si lo puedo poner más grande 1638 01:17:05,920 --> 01:17:06,680 para que lo veáis 1639 01:17:06,680 --> 01:17:09,279 lo que vais a ver aquí 1640 01:17:09,279 --> 01:17:11,800 es que, a ver 1641 01:17:11,800 --> 01:17:15,640 aquí bajo la esta 1642 01:17:15,640 --> 01:17:16,939 aquí hago el docker info 1643 01:17:16,939 --> 01:17:21,850 veis que aquí hay una línea 1644 01:17:21,850 --> 01:17:24,869 que me dice que está utilizando 1645 01:17:24,869 --> 01:17:26,949 el controlador overlay 2 1646 01:17:26,949 --> 01:17:30,970 y aquí abajo hay otra línea que me da el pad de docker 1647 01:17:30,970 --> 01:17:33,430 aquí es donde se están instalando esas imágenes 1648 01:17:33,430 --> 01:17:36,010 entonces toda esa información la tenéis ahí 1649 01:17:36,010 --> 01:17:42,680 esto no hace falta que lo hagáis, vosotros seguís con lo que estéis 1650 01:17:42,680 --> 01:17:45,380 yo simplemente voy a ir contando algunos detalles sobre docker 1651 01:17:45,380 --> 01:17:48,659 para que no sintáis que estáis haciendo 1652 01:17:48,659 --> 01:17:51,380 algo mágico, sino que realmente lo que estamos haciendo 1653 01:17:51,380 --> 01:18:15,000 Simplemente bajarnos un archivo de imagen, que ese archivo de imagen está perfectamente ubicado en esta carpeta var lib docker overlay 2, ¿vale? Entonces yo, por ejemplo, si hago un ls de esa carpeta, var lib docker overlay 2, veis que ahí tengo unos números que me parecen rarísimos, ¿vale? 1654 01:18:15,000 --> 01:18:17,199 estos números en realidad tan raros 1655 01:18:17,199 --> 01:18:19,319 son cada una de esas capas de la imagen 1656 01:18:19,319 --> 01:18:21,140 que os estaba hablando anteriormente, ¿vale? 1657 01:18:21,140 --> 01:18:23,220 ¿Cómo lo puedo saber eso? Pues eso 1658 01:18:23,220 --> 01:18:24,699 por ejemplo, tú puedes decir 1659 01:18:24,699 --> 01:18:27,380 para saber qué imágenes tienes instaladas, le dices 1660 01:18:27,380 --> 01:18:29,300 docker image, ¿vale? 1661 01:18:29,819 --> 01:18:31,220 Y veis que me dice que ahora mismo 1662 01:18:31,220 --> 01:18:33,359 la única imagen que tengo descargada 1663 01:18:33,359 --> 01:18:35,279 es la imagen de 1664 01:18:35,279 --> 01:18:36,939 Portainer. Y para 1665 01:18:36,939 --> 01:18:39,300 inspeccionar esa imagen 1666 01:18:39,300 --> 01:18:41,380 tengo que escribir docker image 1667 01:18:41,380 --> 01:18:43,539 esto no hace falta que lo hagáis, ¿eh? Insisto, simplemente 1668 01:18:43,539 --> 01:18:46,260 para que quede aquí como referencia grabado en el vídeo 1669 01:18:46,260 --> 01:18:48,439 estoy ejecutando una serie 1670 01:18:48,439 --> 01:18:50,319 de comandos de docker para que vosotros 1671 01:18:50,319 --> 01:18:52,279 tengáis un poco más de noción de cómo 1672 01:18:52,279 --> 01:18:54,800 funciona esto, entonces lo voy a inspeccionar 1673 01:18:54,800 --> 01:18:55,579 inspect 1674 01:18:55,579 --> 01:18:58,340 y tengo que poner el nombre que tiene la imagen 1675 01:18:58,340 --> 01:18:59,760 que el nombre es este que veis aquí 1676 01:18:59,760 --> 01:19:01,300 portainer, portainer c 1677 01:19:01,300 --> 01:19:02,699 entonces lo pego ahí 1678 01:19:02,699 --> 01:19:05,819 y veis aquí lo que se está diciendo 1679 01:19:05,819 --> 01:19:07,260 veis aquí tenemos 1680 01:19:07,260 --> 01:19:08,880 la capa inferior 1681 01:19:08,880 --> 01:19:11,760 que es uno de esos números raros que hemos visto 1682 01:19:11,760 --> 01:19:12,920 en la capa overlay 2 1683 01:19:12,920 --> 01:19:15,619 la capa de fusión y la capa superior 1684 01:19:15,619 --> 01:19:16,979 son distintas capas 1685 01:19:16,979 --> 01:19:19,260 así es como funciona Docker, las aplicaciones 1686 01:19:19,260 --> 01:19:21,039 están distribuidas en capas 1687 01:19:21,039 --> 01:19:22,880 entonces todo eso que 1688 01:19:22,880 --> 01:19:25,359 aparece ahí tan abstracto y tan complicado 1689 01:19:25,359 --> 01:19:27,680 en realidad son esas capas que os estaba enseñando 1690 01:19:27,680 --> 01:19:30,420 anteriormente en el gráfico 1691 01:19:30,420 --> 01:19:31,500 la capa 1692 01:19:31,500 --> 01:19:33,380 lower que es la de solo lectura, la capa 1693 01:19:33,380 --> 01:19:35,039 upper que es la de lectura y escritura 1694 01:19:35,039 --> 01:19:37,819 la capa merge que es la combinación de las dos anteriores 1695 01:19:37,819 --> 01:19:39,399 y la word que normalmente 1696 01:19:39,399 --> 01:19:41,380 es un directorio que está vacío, que es una capa 1697 01:19:41,380 --> 01:19:43,399 de trabajo, bueno, eso no tiene mayor 1698 01:19:43,399 --> 01:19:45,260 trascendencia, vale, ahora 1699 01:19:45,260 --> 01:19:47,279 ya si que, esto si lo tenéis que hacer 1700 01:19:47,279 --> 01:19:49,300 lo que vamos a hacer es ejecutar 1701 01:19:49,300 --> 01:19:51,199 un 1702 01:19:51,199 --> 01:19:53,560 contenedor de portainer 1703 01:19:53,560 --> 01:19:55,239 sobre esa imagen de portainer 1704 01:19:55,239 --> 01:19:57,180 y eso como se hace, con este comando 1705 01:19:57,180 --> 01:19:59,079 que veis aquí, que os lo voy a pegar, vale 1706 01:19:59,079 --> 01:19:59,920 y os lo voy a explicar 1707 01:19:59,920 --> 01:20:03,380 lo pego en el chat 1708 01:20:03,380 --> 01:20:05,279 y lo explico 1709 01:20:05,279 --> 01:20:09,819 entonces 1710 01:20:09,819 --> 01:20:12,039 en este comando lo que le estamos diciendo 1711 01:20:12,039 --> 01:20:13,659 docker 1712 01:20:14,260 --> 01:20:18,319 Quiero ejecutar la de paso de ahora de momento, ¿vale? 1713 01:20:18,340 --> 01:20:21,460 Eso es detached, que quiere decir con un terminal propio. 1714 01:20:22,640 --> 01:20:32,619 Quiero ejecutar, veis aquí, al final, este contenedor haciendo binding del puerto de la máquina anfitrión 8000 1715 01:20:32,619 --> 01:20:38,880 al puerto del contenedor 8000, haciendo binding del puerto de la máquina anfitrión 9443 1716 01:20:38,880 --> 01:20:41,819 al puerto del contenedor 9443 1717 01:20:41,819 --> 01:20:43,680 asignando a esta imagen 1718 01:20:43,680 --> 01:20:44,779 el nombre portainer 1719 01:20:44,779 --> 01:20:45,880 de tal forma 1720 01:20:45,880 --> 01:20:47,760 que en caso de que se apague 1721 01:20:47,760 --> 01:20:48,699 el ordenador 1722 01:20:48,699 --> 01:20:50,539 ella sola se reinicie siempre 1723 01:20:50,539 --> 01:20:51,100 con docker 1724 01:20:51,100 --> 01:20:53,220 y además quiero crear 1725 01:20:53,220 --> 01:20:54,399 varios volúmenes 1726 01:20:54,399 --> 01:20:55,399 esta V indica 1727 01:20:55,399 --> 01:20:56,720 quiero crear este volumen 1728 01:20:56,720 --> 01:20:57,779 y luego quiero crear 1729 01:20:57,779 --> 01:20:58,560 este otro volumen 1730 01:20:58,560 --> 01:21:00,640 recordad que los volúmenes son 1731 01:21:00,640 --> 01:21:03,420 directorios de la máquina anfitrión 1732 01:21:03,420 --> 01:21:04,539 este directorio 1733 01:21:04,539 --> 01:21:06,760 que quedan vinculados 1734 01:21:06,760 --> 01:21:08,199 a directorios del contenedor 1735 01:21:08,199 --> 01:21:26,939 De tal forma que lo que el contenedor almacenaría en este directorio y que se perdería en caso de que el contenedor se parase, lo que ocurre es que en lugar de guardarse en ese directorio del contenedor, se almacena en un directorio de la máquina anfitrión, que es este otro directorio, ¿vale? Y así evitamos que se pierda ese contenido. 1736 01:21:27,800 --> 01:21:31,319 Entonces, concretamente aquí, en el caso de Portainer, 1737 01:21:31,359 --> 01:21:34,300 os puede parecer un poco raro que hagamos binding de dos puertos. 1738 01:21:34,899 --> 01:21:38,500 Bueno, el puerto que realmente utiliza Portainer es el 9443. 1739 01:21:39,659 --> 01:21:45,239 Pero el puerto opcional es 8000 y se utiliza para algunas funcionalidades avanzadas. 1740 01:21:45,479 --> 01:21:47,920 Aquí, hoy concretamente no lo vamos a usar. 1741 01:21:47,920 --> 01:21:54,840 Pero bueno, como este es el comando que os vais a encontrar cuando vayáis al registro de Portainer en Docker Hub, 1742 01:21:55,340 --> 01:21:56,840 para que sepáis por qué está ahí eso. 1743 01:21:56,939 --> 01:22:15,079 Entonces, ese comando directamente me voy al terminal y lo ejecuto. Y ya está. Con esta operación, lo que acabo de conseguir es levantar un contenedor de Portainer en este servidor. Y ahora ese contenedor yo puedo acceder desde mi navegador web. 1744 01:22:15,079 --> 01:22:17,579 lo único que tengo que hacer, esto ya lo podéis 1745 01:22:17,579 --> 01:22:19,380 hacer también vosotros si queréis, Modesto 1746 01:22:19,380 --> 01:22:21,640 y Adrián, es en el navegador web 1747 01:22:21,640 --> 01:22:23,579 en Firefox o en el que vosotros utilicéis 1748 01:22:23,579 --> 01:22:26,880 voy a escribir 1749 01:22:26,880 --> 01:22:29,180 la dirección IP de mi 1750 01:22:29,180 --> 01:22:30,840 de mi 1751 01:22:30,840 --> 01:22:33,159 ISMIE01, a ver si me acuerdo 1752 01:22:33,159 --> 01:22:34,020 de cuál es 1753 01:22:34,020 --> 01:22:49,729 es esta de aquí, con el puerto 1754 01:22:49,729 --> 01:22:52,069 9443 1755 01:22:52,069 --> 01:22:55,390 hay que hacerlo con HTTP 1756 01:22:55,390 --> 01:22:56,569 S, ¿vale? 1757 01:22:56,569 --> 01:23:15,529 Con una petición HTTP no lo admite, HTTPS, dos puntos, barra, barra, ¿vale? Igual, como no tengo certificados, os sale esta advertencia de riesgo, le dais avanzado y le dice, sí, soy consciente y acepto el riesgo, ¿vale? 1758 01:23:15,529 --> 01:23:17,090 Y ahora aparece Portainer. 1759 01:23:18,470 --> 01:23:21,050 Aquí podéis estar teniendo un problema gordo. 1760 01:23:21,329 --> 01:23:25,270 Y es que si tardas más de 5 minutos en acceder a Portainer, 1761 01:23:25,430 --> 01:23:27,029 después de haber instalado la imagen, 1762 01:23:27,310 --> 01:23:31,090 no te va a permitir crear el usuario administrador, ¿vale? 1763 01:23:31,090 --> 01:23:32,750 Se va a detener el contenedor directamente. 1764 01:23:33,710 --> 01:23:35,930 Entonces, si os pasase eso, ¿qué tendréis que hacer? 1765 01:23:36,590 --> 01:23:39,170 Venir al terminal y en el terminal escribir 1766 01:23:39,170 --> 01:23:40,430 docker stop 1767 01:23:40,430 --> 01:23:42,829 por tainer 1768 01:23:42,829 --> 01:23:46,319 y docker 1769 01:23:46,319 --> 01:23:48,260 start por tainer 1770 01:23:48,260 --> 01:23:49,479 docker 1771 01:23:49,479 --> 01:23:53,319 start por tainer 1772 01:23:53,319 --> 01:23:55,000 esto como os digo es simplemente 1773 01:23:55,000 --> 01:23:56,199 una medida de seguridad 1774 01:23:56,199 --> 01:23:58,840 por si tardáis mucho tiempo en establecer la 1775 01:23:58,840 --> 01:24:00,939 contraseña para que no quede esto abierto 1776 01:24:00,939 --> 01:24:02,359 ahí sin ninguna contraseña 1777 01:24:02,359 --> 01:24:04,840 bueno yo ya que he accedido por primera vez 1778 01:24:04,840 --> 01:24:07,000 pues como veis lo que me está pidiendo 1779 01:24:07,000 --> 01:24:08,859 es una contraseña para 1780 01:24:08,859 --> 01:24:10,619 el usuario raíz que va a ser 1781 01:24:10,619 --> 01:24:12,640 Adrián y Modesto va a ser la misma 1782 01:24:12,640 --> 01:24:13,319 de antes, ¿vale? 1783 01:24:14,220 --> 01:24:15,239 Ismie, IOT 1784 01:24:15,239 --> 01:24:18,699 ¿Confirmo la contrase? No, están muy fastidios 1785 01:24:18,699 --> 01:24:20,699 Tiene que ser al menos de 12 caracteres 1786 01:24:20,699 --> 01:24:22,220 Pues entonces va a ser 1787 01:24:22,220 --> 01:24:24,000 Ismie, Ismie 1788 01:24:24,000 --> 01:24:25,319 IOT 1789 01:24:25,319 --> 01:24:29,720 Ismie, Ismie, 5, 13, sí 1790 01:24:29,720 --> 01:24:31,960 Ismie, Ismie 1791 01:24:31,960 --> 01:24:32,640 IOT 1792 01:24:32,640 --> 01:24:34,619 Y creo el usuario 1793 01:24:34,619 --> 01:24:43,579 ¿Puedes repetir esto último? ¿Cómo has entrado a esta 1794 01:24:43,579 --> 01:24:45,779 página para... ¿De dónde has sacado la IP? 1795 01:24:46,840 --> 01:24:47,579 Sí, la 1796 01:24:47,579 --> 01:24:50,380 La IP es la que os he dado en el documento 1797 01:24:50,380 --> 01:24:52,399 con las credenciales, ¿vale? 1798 01:24:53,500 --> 01:24:55,420 Y lo único es que cuando escribas 1799 01:24:55,420 --> 01:24:58,939 https://esa dirección IP 1800 01:24:58,939 --> 01:25:01,520 2.9443 1801 01:25:01,520 --> 01:25:03,739 te va a pedir que pongas 1802 01:25:03,739 --> 01:25:06,899 una contraseña nueva al usuario administrador. 1803 01:25:07,960 --> 01:25:10,319 Hay que añadir el puerto, ¿no? 9443. 1804 01:25:10,640 --> 01:25:11,560 Sí, sí, exacto. 1805 01:25:12,979 --> 01:25:13,720 9443, vale. 1806 01:25:13,979 --> 01:25:15,260 Pues es que a mí me da error. 1807 01:25:15,260 --> 01:25:17,819 no es seguro, a mí no me deja entrar 1808 01:25:17,819 --> 01:25:19,800 sí, sí, no, eso está bien 1809 01:25:19,800 --> 01:25:21,260 ahí estás bien, te dice no es seguro 1810 01:25:21,260 --> 01:25:23,539 pero abajo te pondrá opciones avanzadas 1811 01:25:23,539 --> 01:25:26,039 o continuar o algo así, dependiendo del navegador que estés usando 1812 01:25:26,039 --> 01:25:27,579 sí, ah, vale 1813 01:25:27,579 --> 01:25:29,819 sí, ah, vale 1814 01:25:29,819 --> 01:25:31,180 perfecto, ya está 1815 01:25:31,180 --> 01:25:33,779 ¿es barra barra dos puntos o dos puntos 1816 01:25:33,779 --> 01:25:34,380 barra barra? 1817 01:25:35,779 --> 01:25:37,500 https dos puntos barra barra 1818 01:25:37,500 --> 01:25:39,340 la dirección IP dos puntos 1819 01:25:39,340 --> 01:25:41,060 nueve mil cuatrocientos cuarenta y tres 1820 01:25:41,060 --> 01:26:00,779 vale, ya estoy dentro, Juanfe 1821 01:26:00,779 --> 01:26:02,159 muy bien 1822 01:26:02,640 --> 01:26:04,779 Ah, vale. Nuestro es la que más has dicho, ¿no? 1823 01:26:04,779 --> 01:26:05,300 Admin. 1824 01:26:06,960 --> 01:26:09,380 Admin y Ismier, Ismier y Jotet. 1825 01:26:14,989 --> 01:26:17,930 Me dice timeout HTML autorización. 1826 01:26:18,750 --> 01:26:19,409 ¿Qué puede ser eso? 1827 01:26:19,750 --> 01:26:21,630 Perdona, repítemelo que no lo he oído. 1828 01:26:22,050 --> 01:26:25,770 Sí, que me pone timeout html.html out. 1829 01:26:27,350 --> 01:26:28,970 Y no me ha pedido contraseña. 1830 01:26:28,970 --> 01:26:30,890 Https, dos puntos. 1831 01:26:33,229 --> 01:26:34,569 Voy a volver a intentarlo. 1832 01:26:34,710 --> 01:26:35,550 Sí, inténtalo. 1833 01:26:36,409 --> 01:26:38,170 igual, pero te parece 1834 01:26:38,170 --> 01:26:39,970 hay escrito algo en medio de 1835 01:26:39,970 --> 01:26:42,090 portainer, han pasado más de 5 minutos 1836 01:26:42,090 --> 01:26:43,789 new portainer installation 1837 01:26:43,789 --> 01:26:45,869 me parece 1838 01:26:45,869 --> 01:26:49,000 ¿qué más dice ahí? 1839 01:26:49,359 --> 01:26:50,159 ¿te dice algo más? 1840 01:26:51,060 --> 01:26:53,220 your portainer timeout of 1841 01:26:53,220 --> 01:26:54,619 security purposes 1842 01:26:54,619 --> 01:26:57,819 claro, pues eso es lo que os decía, si pasa más de 5 minutos 1843 01:26:57,819 --> 01:26:59,439 desde que 1844 01:26:59,439 --> 01:27:01,600 creáis el contenedor 1845 01:27:01,600 --> 01:27:02,619 hasta que accedéis a él 1846 01:27:02,619 --> 01:27:05,399 hay que pararlo y volverlo a poner en marcha 1847 01:27:05,399 --> 01:27:07,880 docker stop por tainer 1848 01:27:07,880 --> 01:27:09,939 docker start por tainer 1849 01:27:09,939 --> 01:27:11,479 Juanfe 1850 01:27:11,479 --> 01:27:14,220 puedes escribir el comando este de arrancar 1851 01:27:14,220 --> 01:27:15,279 el por tainer 1852 01:27:15,279 --> 01:27:18,060 en un fichero de texto 1853 01:27:18,060 --> 01:27:19,979 ahí en grande, es que al copiarlo 1854 01:27:19,979 --> 01:27:21,859 aquí en el chat está partido y 1855 01:27:21,859 --> 01:27:23,619 no sé si hay blancos por medio 1856 01:27:23,619 --> 01:27:28,680 este comando 1857 01:27:28,680 --> 01:27:29,819 lo dices, Germán 1858 01:27:29,819 --> 01:27:33,000 ¿dónde quieres 1859 01:27:33,000 --> 01:27:33,539 que lo pegue? 1860 01:27:34,039 --> 01:27:35,800 déjalo ahí, a ver ahora 1861 01:27:35,800 --> 01:27:43,439 Es que me da error de formato, ¿no? 1862 01:27:43,439 --> 01:27:45,159 De que le estoy poniendo mal los parámetros. 1863 01:27:45,859 --> 01:27:46,060 Vale. 1864 01:27:46,619 --> 01:27:47,439 No sé qué será. 1865 01:27:47,680 --> 01:27:49,140 A ver si vuelvo a ella. 1866 01:27:51,970 --> 01:27:54,630 ¿De username dejamos admin o cambiamos el username? 1867 01:27:54,670 --> 01:27:56,109 Sí, el username dejadlo, por favor. 1868 01:27:56,510 --> 01:27:57,250 Vale, de acuerdo. 1869 01:28:02,380 --> 01:28:05,180 Bueno, los que habéis llegado a instalar Portainer, 1870 01:28:05,239 --> 01:28:06,659 si queréis ir picheando un poco, 1871 01:28:06,779 --> 01:28:08,340 veis que estáis ahí en una pantalla inicial 1872 01:28:08,340 --> 01:28:12,239 que le está pidiendo elegir entre una de dos opciones. 1873 01:28:13,180 --> 01:28:16,380 La opción, perdona Germán, cambio un poco porque no me acuerdo. 1874 01:28:16,579 --> 01:28:19,659 La opción de la derecha es añadir un entorno. 1875 01:28:19,859 --> 01:28:20,500 ¿Eso qué sería? 1876 01:28:20,899 --> 01:28:23,199 Eso sería que tú tienes Portainer en una máquina, 1877 01:28:24,520 --> 01:28:26,800 en este servidor que hemos creado en Nuremberg, 1878 01:28:26,960 --> 01:28:31,859 y que tú quieres usar ese Portainer para gestionar contenedores de otra máquina distinta. 1879 01:28:32,439 --> 01:28:33,960 Eso no es lo que queremos hacer nosotros. 1880 01:28:34,239 --> 01:28:36,819 Nosotros lo que queremos hacer es usar la opción de la izquierda. 1881 01:28:36,819 --> 01:28:38,760 entonces le dais directamente 1882 01:28:38,760 --> 01:28:41,039 a la opción de Get Startup 1883 01:28:41,039 --> 01:28:42,899 a la de la izquierda 1884 01:28:42,899 --> 01:28:49,810 y ahí podéis 1885 01:28:49,810 --> 01:28:52,050 ir investigando por vuestra cuenta 1886 01:28:52,050 --> 01:28:53,729 lo que queráis, ahí vais a ver 1887 01:28:53,729 --> 01:28:56,390 que tenemos contenedores, que tenemos plantillas 1888 01:28:56,390 --> 01:28:57,850 de momento tenemos 1889 01:28:57,850 --> 01:28:59,989 un único contenedor que es el propio contenedor 1890 01:28:59,989 --> 01:29:15,880 de Portainer, ¿estás con ello Germán? 1891 01:29:17,359 --> 01:29:17,880 Bueno 1892 01:29:17,880 --> 01:29:19,579 sigo aquí, me sigue dando 1893 01:29:19,579 --> 01:29:20,520 ahí el error 1894 01:29:20,520 --> 01:29:28,810 ¿Quieres que te lo pegue en el documento 1895 01:29:28,810 --> 01:29:30,750 de la aula virtual, he añadido 1896 01:29:30,750 --> 01:29:31,390 al final del... 1897 01:29:31,390 --> 01:29:34,970 mejor, a ver si puedo hacer copiar y pegar 1898 01:29:34,970 --> 01:29:35,970 y se ve 1899 01:29:35,970 --> 01:29:45,180 pues lo pego, a ver si me deja editar 1900 01:29:45,180 --> 01:29:59,920 sí, arrancar 1901 01:29:59,920 --> 01:30:01,520 el contenedor 1902 01:30:02,340 --> 01:30:03,239 por binary 1903 01:30:03,239 --> 01:30:09,689 vale, pues ya 1904 01:30:09,689 --> 01:30:11,829 lo tienes ahí, vale, a ver si te deja cogerlo 1905 01:30:11,829 --> 01:30:12,470 de ahí 1906 01:30:12,470 --> 01:30:17,989 vale, entonces lo que os decía 1907 01:30:17,989 --> 01:30:20,130 si vais bicheando por ahí un poco 1908 01:30:20,130 --> 01:30:21,909 si dais aquí en la opción get started 1909 01:30:21,909 --> 01:30:24,010 veis que aparece que ahora mismo 1910 01:30:24,010 --> 01:30:25,909 el único entorno que tenemos es el entorno 1911 01:30:25,909 --> 01:30:28,029 local, entonces yo hago clic ahí 1912 01:30:28,029 --> 01:30:28,869 en el entorno local 1913 01:30:28,869 --> 01:30:31,890 y veis que me indica que ahora mismo no tengo 1914 01:30:31,890 --> 01:30:34,170 ningún stack, tengo una imagen, puedo acceder 1915 01:30:34,170 --> 01:30:35,289 a ver que imagen es esa 1916 01:30:35,289 --> 01:30:38,069 veis que la imagen que tengo es precisamente 1917 01:30:38,069 --> 01:30:39,590 la imagen de Portainer 1918 01:30:39,590 --> 01:30:41,010 que redes tengo 1919 01:30:41,010 --> 01:30:43,970 que volúmenes tengo, vale pues son los 1920 01:30:43,970 --> 01:30:46,210 volúmenes que hemos creado precisamente para Portainer 1921 01:30:46,210 --> 01:30:47,949 al arrancarlo, y luego 1922 01:30:47,949 --> 01:30:50,289 un detalle que tiene muy interesante Portainer 1923 01:30:50,289 --> 01:30:52,170 es este que os muestro aquí de las 1924 01:30:52,170 --> 01:30:54,189 plantillas, ¿vale? Entonces 1925 01:30:54,189 --> 01:30:56,609 fijaos, Portainer 1926 01:30:56,609 --> 01:30:58,149 viene con plantillas para que tú ya 1927 01:30:58,149 --> 01:31:00,029 puedas instalar directamente un montón de 1928 01:31:00,029 --> 01:31:01,909 aplicaciones, ¿vale? Aquí vienen unas pocas 1929 01:31:01,909 --> 01:31:04,270 entonces están organizadas 1930 01:31:04,270 --> 01:31:05,909 por categorías, entonces puedes decir 1931 01:31:05,909 --> 01:31:08,449 pues aplicaciones para la nube, aplicaciones 1932 01:31:08,449 --> 01:31:10,109 de monitorización, de plataforma 1933 01:31:10,109 --> 01:31:11,329 como servicio, ¿vale? 1934 01:31:12,850 --> 01:31:14,149 Aplicaciones para el borde 1935 01:31:14,149 --> 01:31:16,210 entonces veis que tenemos aquí 1936 01:31:16,210 --> 01:31:17,750 un montón de posibilidades 1937 01:31:17,750 --> 01:31:20,189 por ejemplo, si yo me voy al borde 1938 01:31:20,189 --> 01:31:22,109 veis que tengo 1939 01:31:22,109 --> 01:31:23,970 algunas de las que yo os he estado comentando 1940 01:31:23,970 --> 01:31:25,989 tenemos Grafana, tenemos InfluxDB 1941 01:31:25,989 --> 01:31:27,510 tenemos NodeRed 1942 01:31:27,510 --> 01:31:29,310 tenemos una versión de Mosquito 1943 01:31:29,310 --> 01:31:31,930 entonces lo interesante que tiene esto 1944 01:31:31,930 --> 01:31:33,649 es que ya podrías instalar desde aquí 1945 01:31:33,649 --> 01:31:35,350 si tú quisieras estas aplicaciones 1946 01:31:35,350 --> 01:31:37,609 ya no te tienes que andar con todo el rollo 1947 01:31:37,609 --> 01:31:39,350 que hemos tenido ahí en el terminal 1948 01:31:39,350 --> 01:31:41,710 de tener que estar descargando 1949 01:31:41,710 --> 01:31:43,850 la imagen y arrancando 1950 01:31:43,850 --> 01:31:45,689 el contenedor, sino que simplemente te vienes 1951 01:31:45,689 --> 01:31:47,890 aquí y dices, oye, yo quiero montar en mi servidor 1952 01:31:47,890 --> 01:31:49,890 un Wordpress o lo que sea 1953 01:31:49,890 --> 01:31:51,689 pues te vienes aquí a gestores 1954 01:31:51,689 --> 01:31:53,670 de contenidos y te puedes 1955 01:31:53,670 --> 01:31:55,670 montar un Drupal, un Joomla, lo que tú quieras 1956 01:31:55,670 --> 01:31:57,829 un Wordpress, ¿vale? que te quieres montar 1957 01:31:57,829 --> 01:31:59,770 yo que sé, hay muchísimas cosas 1958 01:31:59,770 --> 01:32:01,670 ¿vale? a ver, por ejemplo, en plataforma 1959 01:32:01,670 --> 01:32:03,569 como servicio, pues un 1960 01:32:03,569 --> 01:32:05,010 docu, como contenedor 1961 01:32:05,010 --> 01:32:09,189 un gestor de imágenes, ¿vale? 1962 01:32:10,029 --> 01:32:11,569 tienes un montón de cosas 1963 01:32:11,569 --> 01:32:13,630 lo que tú quieras, un servidor, pues te puedes montar 1964 01:32:13,630 --> 01:32:14,970 un Apache o lo que necesites 1965 01:32:14,970 --> 01:32:16,609 un cross inverso 1966 01:32:16,609 --> 01:32:18,430 entonces 1967 01:32:18,430 --> 01:32:21,210 lo interesante es que tenemos esta posibilidad 1968 01:32:21,210 --> 01:32:23,210 de como os digo, de instalarnos 1969 01:32:23,210 --> 01:32:23,850 directamente 1970 01:32:23,850 --> 01:32:26,810 un contenedor, yo voy a 1971 01:32:26,810 --> 01:32:29,149 hacerlo con Node.Ref, entonces imaginaos 1972 01:32:29,149 --> 01:32:30,890 que yo quiero instalarme con Node.Ref 1973 01:32:30,890 --> 01:32:32,489 ¿qué hago? le digo 1974 01:32:32,489 --> 01:32:33,510 hago clic aquí 1975 01:32:33,510 --> 01:32:34,909 y 1976 01:32:34,909 --> 01:32:37,369 le digo 1977 01:32:37,369 --> 01:32:40,289 le doy un nombre aquí arriba 1978 01:32:40,289 --> 01:32:42,710 le llamo por ejemplo Node.Ref 1979 01:32:42,710 --> 01:32:45,010 01 1980 01:32:45,010 --> 01:32:47,430 lo voy a llamar 1981 01:32:47,430 --> 01:32:49,350 la zona horaria 1982 01:32:49,350 --> 01:32:50,930 esto era 1983 01:32:50,930 --> 01:32:53,329 la zona horaria, no me acuerdo 1984 01:32:53,329 --> 01:32:54,430 como se ponía, era 1985 01:32:54,430 --> 01:32:57,069 no sé si era 1986 01:32:57,069 --> 01:32:57,869 es 1987 01:32:57,869 --> 01:33:00,869 era gmt más 1 1988 01:33:00,869 --> 01:33:03,130 no sé si era aquí poner gmt más 1 1989 01:33:03,130 --> 01:33:05,430 vale, y luego le digo 1990 01:33:05,430 --> 01:33:06,729 desplegar 1991 01:33:06,729 --> 01:33:16,340 entonces lo que está haciendo ahora es 1992 01:33:16,340 --> 01:33:17,659 descargar la imagen 1993 01:33:17,659 --> 01:33:19,340 del registro 1994 01:33:19,340 --> 01:33:21,279 crear el contenedor 1995 01:33:21,279 --> 01:33:23,560 y cuando termine tendremos el contenedor 1996 01:33:23,560 --> 01:33:24,760 listo para poderlo utilizar 1997 01:33:24,760 --> 01:33:28,479 ¿Lo vamos haciendo? 1998 01:33:29,279 --> 01:33:30,699 No, esto si queréis no lo hagáis, ¿vale? 1999 01:33:31,020 --> 01:33:32,779 Simplemente lo estoy ilustrando 2000 01:33:32,779 --> 01:33:35,539 para que veáis cómo se haría esto de instalar 2001 01:33:35,539 --> 01:33:37,000 un contenedor 2002 01:33:37,000 --> 01:33:39,619 De hecho es que no me acuerdo si esto era gmt más 1 2003 01:33:39,619 --> 01:33:41,119 lo que había que poner aquí en la zona horaria 2004 01:33:41,119 --> 01:33:42,699 Bueno, parece que ha funcionado, ¿vale? 2005 01:33:43,220 --> 01:33:45,680 Entonces, yo ahora mismo ya tendría aquí 2006 01:33:45,680 --> 01:33:47,220 este node red 01 2007 01:33:47,220 --> 01:33:49,220 ¿Veis que está arrancando 2008 01:33:49,220 --> 01:33:51,060 el contenedor? 2009 01:33:51,060 --> 01:33:52,140 está indicando aquí 2010 01:33:52,140 --> 01:33:54,199 y lo que ha hecho este contenedor 2011 01:33:54,199 --> 01:33:55,239 si os fijáis aquí 2012 01:33:55,239 --> 01:33:57,520 es que me está haciendo binding 2013 01:33:57,520 --> 01:34:00,199 del puerto externo 1880 2014 01:34:00,199 --> 01:34:02,420 al puerto interno 1880 2015 01:34:02,420 --> 01:34:03,899 esto no quiere decir 2016 01:34:03,899 --> 01:34:04,960 que si yo ahora 2017 01:34:04,960 --> 01:34:07,300 accediera a mi dirección IP 2018 01:34:07,300 --> 01:34:11,350 indicando como puerto 2019 01:34:11,350 --> 01:34:12,989 en 1880 2020 01:34:12,989 --> 01:34:15,970 ya tendría 2021 01:34:15,970 --> 01:34:17,289 hino de red funcionando 2022 01:34:17,289 --> 01:34:17,729 ¿veis? 2023 01:34:20,220 --> 01:34:23,340 esta es la potencia que tiene precisamente 2024 01:34:23,340 --> 01:34:25,880 los contenedores docker 2025 01:34:25,880 --> 01:34:27,460 yo ahora mismo he desplegado 2026 01:34:27,460 --> 01:34:29,619 un contenedor de docker 2027 01:34:29,619 --> 01:34:31,960 pero si por ejemplo tengo 10 alumnos 2028 01:34:31,960 --> 01:34:33,800 en clase, les podría levantar 2029 01:34:33,800 --> 01:34:35,000 a cada uno de ellos aquí 2030 01:34:35,000 --> 01:34:37,500 su propio contenedor, yo me podría 2031 01:34:37,500 --> 01:34:38,939 venir ahora a ver los contenedores 2032 01:34:38,939 --> 01:34:40,920 veis que ya tengo el de portainer 2033 01:34:40,920 --> 01:34:43,560 y el de node-red y podría simplemente 2034 01:34:43,560 --> 01:34:45,420 duplicar este contenedor 2035 01:34:45,420 --> 01:34:47,920 eso sí, vinculando 2036 01:34:47,920 --> 01:34:50,079 en vez del puerto 1880 externo 2037 01:34:50,079 --> 01:34:52,119 pues a uno el 1881 2038 01:34:52,119 --> 01:34:54,699 el otro en 1882 y así sucesivamente 2039 01:34:54,699 --> 01:34:56,880 porque si no se pisarían todos en el mismo puerto 2040 01:34:56,880 --> 01:34:58,720 esto es para que veáis 2041 01:34:58,720 --> 01:35:00,140 un poco la potencia que tiene esto 2042 01:35:00,140 --> 01:35:02,420 de Portainer para instalar 2043 01:35:02,420 --> 01:35:04,600 aplicaciones, yo este contenedor como no lo voy 2044 01:35:04,600 --> 01:35:05,800 a usar directamente 2045 01:35:05,800 --> 01:35:09,649 lo voy a eliminar 2046 01:35:09,649 --> 01:35:11,970 y también en un 2047 01:35:11,970 --> 01:35:14,210 momento te cargas un contenedor 2048 01:35:14,210 --> 01:35:16,010 igual que lo has levantado lo eliminas 2049 01:35:16,010 --> 01:35:17,689 es realmente muy 2050 01:35:17,689 --> 01:35:19,170 conveniente, muy cómodo 2051 01:35:19,170 --> 01:35:21,069 bueno, no sé 2052 01:35:21,069 --> 01:35:23,409 como y que tal lo lleváis, me gustaría 2053 01:35:23,409 --> 01:35:33,289 No sé si hacer una ronda de minuto y resultado, como dicen en la radio, o lo que vosotros me digáis. 2054 01:35:33,729 --> 01:35:41,350 Yo, que soy Germán, que yo por mi parte ya estoy enganchado aquí al container, ya está bien. 2055 01:35:42,090 --> 01:35:46,670 Vale, bueno, mirad, algunos comandos básicos, los tenéis ahí en la presentación, no los voy a hacer todos, 2056 01:35:46,670 --> 01:35:48,289 pero uno que se usa mucho 2057 01:35:48,289 --> 01:35:50,810 es docker ps menos a 2058 01:35:50,810 --> 01:35:52,909 eso te va a sacar un listado 2059 01:35:52,909 --> 01:35:55,170 de todos los contenedores que tienes en funcionamiento 2060 01:35:55,170 --> 01:35:56,550 docker ps menos a 2061 01:35:56,550 --> 01:35:58,489 entonces ves que yo tengo ahora mismo 2062 01:35:58,489 --> 01:36:00,550 el portainer en funcionamiento desde hace 2063 01:36:00,550 --> 01:36:01,390 13 minutos 2064 01:36:01,390 --> 01:36:03,569 y aquí te da toda la información 2065 01:36:03,569 --> 01:36:06,229 que tiene vinculado el puerto 8000 al 8000 2066 01:36:06,229 --> 01:36:09,109 el 9443 al 9443 2067 01:36:09,109 --> 01:36:10,229 que es exactamente 2068 01:36:10,229 --> 01:36:11,850 la misma información 2069 01:36:11,850 --> 01:36:14,710 que estáis viendo de forma visual 2070 01:36:14,710 --> 01:36:16,890 en el port liner 2071 01:36:16,890 --> 01:36:18,909 entonces es mucho más cómodo 2072 01:36:18,909 --> 01:36:20,510 verlo en port liner que verlo aquí 2073 01:36:20,510 --> 01:36:22,350 entonces eso ya lo tenemos 2074 01:36:22,350 --> 01:36:24,289 ya tenemos el port liner funcionando 2075 01:36:24,289 --> 01:36:26,449 ya hemos visto como se pueden instalar 2076 01:36:26,449 --> 01:36:28,930 distintas aplicaciones 2077 01:36:28,930 --> 01:36:30,810 que podríamos tener varios contenedores 2078 01:36:30,810 --> 01:36:31,470 funcionando 2079 01:36:31,470 --> 01:36:33,890 y ahora lo que vamos a hacer 2080 01:36:33,890 --> 01:36:36,489 es dar un pasito más 2081 01:36:36,489 --> 01:36:38,210 en docker 2082 01:36:38,210 --> 01:36:40,829 nosotros lo que podemos hacer es instalar 2083 01:36:40,829 --> 01:36:42,529 aplicaciones independientes 2084 01:36:42,529 --> 01:36:45,590 pero hay veces que me interesa que un conjunto de aplicaciones 2085 01:36:45,590 --> 01:36:47,210 funcionen de forma 2086 01:36:47,210 --> 01:36:49,310 conjunta, eso es precisamente 2087 01:36:49,310 --> 01:36:50,909 lo que queremos hacer con MIM 2088 01:36:50,909 --> 01:36:53,630 con Mosquito, InfluxDB, Node.js y Grafana 2089 01:36:53,630 --> 01:36:55,489 queremos que se comporten, que se puedan 2090 01:36:55,489 --> 01:36:57,010 comunicar entre ellas directamente 2091 01:36:57,010 --> 01:36:59,229 para hacer eso, lo que 2092 01:36:59,229 --> 01:37:01,289 se usa es un orquestador 2093 01:37:01,289 --> 01:37:03,170 de paquetes, vamos a usar un 2094 01:37:03,170 --> 01:37:04,670 orquestador muy básico 2095 01:37:04,670 --> 01:37:06,609 que se llama Docker Compose 2096 01:37:06,609 --> 01:37:09,109 entonces, ese contenedor 2097 01:37:09,109 --> 01:37:11,130 ese orquestador, lo que me 2098 01:37:11,130 --> 01:37:18,470 Me permite decir, oye, yo quiero crear un entorno independiente para estas cuatro aplicaciones que van a colaborar entre sí. 2099 01:37:19,430 --> 01:37:20,529 ¿Y esto cómo se hace? 2100 01:37:21,250 --> 01:37:26,229 Pues, si nos ha parecido complicado todo esto que hemos hecho en el terminal, 2101 01:37:26,829 --> 01:37:35,449 pues resulta que para hacer un Docker Compose, resulta que tenemos que configurarlo todo en un archivo de texto que se llama docker-compose.yml. 2102 01:37:36,050 --> 01:37:38,170 ¿Qué aspecto tienen esos archivos de texto? 2103 01:37:38,170 --> 01:37:40,829 Pues tienen este aspecto que veis aquí, nada amigable. 2104 01:37:41,130 --> 01:37:43,069 nada amigable a primera vista 2105 01:37:43,069 --> 01:37:44,569 luego cuando te pones a mirarlos 2106 01:37:44,569 --> 01:37:46,289 ves que no son tan complicados 2107 01:37:46,289 --> 01:37:47,689 por ejemplo, este 2108 01:37:47,689 --> 01:37:49,109 ¿este quién está diciendo? 2109 01:37:49,529 --> 01:37:52,229 pues que este entorno 2110 01:37:52,229 --> 01:37:54,569 va a tener un servicio 2111 01:37:54,569 --> 01:37:55,609 que se llama Junla 2112 01:37:55,609 --> 01:37:58,090 y otro servicio que se llama JunlaDB 2113 01:37:58,090 --> 01:37:59,210 que es una base de datos 2114 01:37:59,210 --> 01:38:02,289 el servicio Junla va a utilizar la imagen Docker 2115 01:38:02,289 --> 01:38:03,630 Junla, y sin embargo 2116 01:38:03,630 --> 01:38:06,270 el servicio JunlaDB va a usar la imagen 2117 01:38:06,270 --> 01:38:08,109 MySQL, y como veis 2118 01:38:08,109 --> 01:38:10,130 es lo mismo que hemos escrito antes a mano 2119 01:38:10,130 --> 01:38:12,250 solo que ahora lo tenemos aquí 2120 01:38:12,250 --> 01:38:13,890 en un solo archivo de texto 2121 01:38:13,890 --> 01:38:16,149 y veis tiene tres servicios en realidad 2122 01:38:16,149 --> 01:38:18,390 Joomla, JoomlaDB y phpMyAdmin 2123 01:38:18,390 --> 01:38:20,489 como veis aquí, entonces que ocurre 2124 01:38:20,489 --> 01:38:22,170 pues claro, si ahora nos ponemos 2125 01:38:22,170 --> 01:38:24,189 nosotros a generar un archivo 2126 01:38:24,189 --> 01:38:25,949 como este, para mosquito 2127 01:38:25,949 --> 01:38:28,189 influxDB, grafana 2128 01:38:28,189 --> 01:38:30,090 y no de red, pues es bastante probable 2129 01:38:30,090 --> 01:38:31,890 que metamos la pata, entonces 2130 01:38:31,890 --> 01:38:34,270 para evitar que podamos meter la pata 2131 01:38:34,270 --> 01:38:36,130 resulta que hay una aplicación 2132 01:38:36,130 --> 01:38:37,689 que se llama IoT Stack 2133 01:38:37,689 --> 01:38:39,770 que nos va a permitir 2134 01:38:39,770 --> 01:38:42,510 crear estos archivos de forma automática 2135 01:38:42,510 --> 01:38:44,710 entonces, por favor 2136 01:38:44,710 --> 01:38:46,590 Modesto y Adrián, esto lo voy a hacer 2137 01:38:46,590 --> 01:38:47,390 también solo yo 2138 01:38:47,390 --> 01:38:50,689 ¿cómo se instala esta aplicación? 2139 01:38:50,850 --> 01:38:52,149 pues lo primero que os voy a pedir 2140 01:38:52,149 --> 01:38:54,789 es que cambiéis al usuario que habéis creado 2141 01:38:54,789 --> 01:38:56,810 antes, el mío se llamaba Juanfe 2142 01:38:56,810 --> 01:38:58,189 pues cambio a ese usuario 2143 01:38:58,189 --> 01:39:00,810 ¿por qué? porque esta es una de esas 2144 01:39:00,810 --> 01:39:02,489 aplicaciones que no está permitido 2145 01:39:02,489 --> 01:39:04,310 ejecutarla como usuario raíz 2146 01:39:04,310 --> 01:39:05,590 como usuario root 2147 01:39:05,590 --> 01:39:08,409 entonces tenéis que escribir su espacio 2148 01:39:08,409 --> 01:39:10,590 guión, espacio y el nombre 2149 01:39:10,590 --> 01:39:12,270 de usuario que vosotros hayáis elegido 2150 01:39:12,270 --> 01:39:14,170 una vez que hemos hecho eso 2151 01:39:14,170 --> 01:39:16,689 lo único que hay que hacer es ir siguiendo los comandos 2152 01:39:16,689 --> 01:39:18,689 que tenemos en la presentación 2153 01:39:18,689 --> 01:39:20,470 que es instalar 2154 01:39:20,470 --> 01:39:22,550 curr, este en principio no haría 2155 01:39:22,550 --> 01:39:24,789 falta porque seguramente esté ya instalado 2156 01:39:24,789 --> 01:39:26,489 pero bueno, como lo pone en la documentación 2157 01:39:26,489 --> 01:39:28,289 pues lo voy a ejecutar 2158 01:39:28,289 --> 01:39:31,090 a mi antes no me ha funcionado 2159 01:39:31,090 --> 01:39:33,029 a la hora de copiar y pegar desde la presentación 2160 01:39:33,029 --> 01:39:33,989 es un pdf 2161 01:39:33,989 --> 01:39:35,170 a mi tampoco 2162 01:39:35,170 --> 01:39:38,310 claro, es que igual vosotros al tener el pdf 2163 01:39:38,310 --> 01:39:40,489 tenéis problemas, vale, pues voy a 2164 01:39:40,489 --> 01:39:42,109 voy a pegar estos cuatro comandos igual 2165 01:39:42,109 --> 01:39:44,590 en el aula virtual como he hecho antes con Germán 2166 01:39:44,590 --> 01:39:46,210 vale, me parece que no te va a quedar 2167 01:39:46,210 --> 01:39:47,369 con remedio, si, porque no funciona 2168 01:39:47,369 --> 01:39:49,770 vale, pues lo hago un momento, venga, vamos allá 2169 01:39:49,770 --> 01:39:51,550 donde está el aula virtual, aquí 2170 01:39:51,550 --> 01:39:55,989 lo edito 2171 01:39:55,989 --> 01:40:00,189 recordad que esto no lo podéis hacer como usuario raíz 2172 01:40:00,189 --> 01:40:02,369 vale, esto, insisto, tenéis que hacerlo 2173 01:40:02,369 --> 01:40:04,350 como el otro usuario 2174 01:40:04,350 --> 01:40:06,329 que hemos creado, entonces esto 2175 01:40:06,329 --> 01:40:08,109 va a ser instalar 2176 01:40:08,109 --> 01:40:09,850 IOT stack 2177 01:40:09,850 --> 01:40:12,029 IOT stack 2178 01:40:12,029 --> 01:40:14,189 el CUR 2179 01:40:14,189 --> 01:40:15,729 lo hemos usado antes, así que 2180 01:40:15,729 --> 01:40:18,029 sí, por eso, el CUR sé que no hace 2181 01:40:18,029 --> 01:40:19,970 falta porque lo hemos usado, pero bueno 2182 01:40:19,970 --> 01:40:22,310 como viene la documentación 2183 01:40:22,310 --> 01:40:23,770 lo pego también, que no me cuesta nada 2184 01:40:23,770 --> 01:40:26,210 es el CUR 2185 01:40:26,210 --> 01:40:28,449 luego con el CUR descargamos 2186 01:40:28,449 --> 01:40:30,470 el script de IOT 2187 01:40:30,470 --> 01:40:32,010 stack, que es esta 2188 01:40:32,010 --> 01:40:32,970 segunda línea 2189 01:40:32,970 --> 01:40:38,939 y luego 2190 01:40:38,939 --> 01:40:42,520 nada, las instrucciones nada 2191 01:40:42,520 --> 01:41:05,619 luego cambiamos a la carpeta IOTStack, que es esta otra, y desde la carpeta IOTStack ejecutamos el menú .sh, creo que era esta, con sudo, pues vale, con sudo, ya está, ahí tenéis, son esos cuatro comandos que he puesto al final, 2192 01:41:05,619 --> 01:41:08,300 instalar el CUR, que en teoría no haría falta 2193 01:41:08,300 --> 01:41:10,260 después de instalar el CUR 2194 01:41:10,260 --> 01:41:12,119 descargarnos 2195 01:41:12,119 --> 01:41:13,439 con CUR 2196 01:41:13,439 --> 01:41:16,800 el gestor de instalación 2197 01:41:16,800 --> 01:41:18,300 que es lo que voy a hacer yo ahora 2198 01:41:18,300 --> 01:41:19,500 ¿vale? 2199 01:41:20,220 --> 01:41:22,420 ¿veis? este paso, si intentáis hacerlo 2200 01:41:22,420 --> 01:41:23,760 como raíz, os va a dar un error 2201 01:41:23,760 --> 01:41:25,920 os va a decir que no se puede hacer como raíz 2202 01:41:25,920 --> 01:41:46,279 pues ya está, yo he tenido mucha suerte 2203 01:41:46,279 --> 01:41:48,359 y no me da ningún error, y seguro que a vosotros 2204 01:41:48,359 --> 01:41:50,060 tampoco os va a dar ningún error, porque tenemos 2205 01:41:50,060 --> 01:41:52,100 máquinas idénticas todas, así es que 2206 01:41:52,100 --> 01:41:54,100 fenomenal, si ahora hago un 2207 01:41:54,100 --> 01:41:56,260 ls, pues veis que me ha creado ahí una carpeta 2208 01:41:56,260 --> 01:41:58,199 que se llama iotstack, pues si yo cambio 2209 01:41:58,199 --> 01:41:59,600 a esa carpeta 2210 01:41:59,600 --> 01:42:02,060 desde esa carpeta 2211 01:42:02,060 --> 01:42:03,739 ahora ya puedo ejecutar 2212 01:42:03,739 --> 01:42:10,119 el script del menú 2213 01:42:10,119 --> 01:42:12,479 antes de hacer esto, antes de ejecutarlo 2214 01:42:12,479 --> 01:42:14,399 es muy importante que maximicéis la pantalla 2215 01:42:14,399 --> 01:42:16,140 ¿vale? que maximicéis el terminal 2216 01:42:16,140 --> 01:42:29,079 y aquí tenemos en todo su esplendor 2217 01:42:29,079 --> 01:42:31,199 el generador 2218 01:42:31,199 --> 01:42:33,020 de docker-compose 2219 01:42:33,020 --> 01:42:33,920 de iotstack 2220 01:42:33,920 --> 01:42:36,859 entonces 2221 01:42:36,859 --> 01:42:39,079 es un menú muy sencillo 2222 01:42:39,079 --> 01:42:41,380 en el que tú te desplazas con las teclas del cursor 2223 01:42:41,380 --> 01:42:43,260 ¿veis? yo estoy pulsando la flecha abajo 2224 01:42:43,260 --> 01:42:45,199 y como veis he llegado 2225 01:42:45,199 --> 01:42:47,460 a una sección que se llama instalaciones nativas 2226 01:42:47,460 --> 01:42:49,000 si quiero ver que opciones 2227 01:42:49,000 --> 01:42:51,140 tengo ahí, pues simplemente pulso intro 2228 01:42:51,140 --> 01:42:53,039 ¿vale? y veis que 2229 01:42:53,039 --> 01:42:55,180 una de las opciones que 2230 01:42:55,180 --> 01:42:57,199 tiene es instalar Docker y Docker Compose 2231 01:42:57,199 --> 01:42:59,340 así es que ¿qué podríamos haber hecho? 2232 01:42:59,560 --> 01:43:01,079 hoy en vez de martirizaros 2233 01:43:01,079 --> 01:43:02,840 instalando Docker y Docker Compose 2234 01:43:02,840 --> 01:43:05,020 podría haber venido directamente 2235 01:43:05,020 --> 01:43:06,800 y haber instalado IoT Stack 2236 01:43:06,800 --> 01:43:08,680 es decir, estos últimos cuatro pasos 2237 01:43:08,680 --> 01:43:09,239 que hemos hecho 2238 01:43:09,239 --> 01:43:11,000 y desde aquí haber pulsado 2239 01:43:11,000 --> 01:43:12,399 Instal Docker y Docker Compose 2240 01:43:12,399 --> 01:43:13,859 y se hubiera instalado automáticamente 2241 01:43:13,859 --> 01:43:16,760 ¿por qué no lo he hecho? 2242 01:43:16,840 --> 01:43:18,100 y he preferido martirizaros 2243 01:43:18,100 --> 01:43:20,100 porque así me ha permitido explicaros 2244 01:43:20,100 --> 01:43:21,520 cómo funcionan los contenedores 2245 01:43:21,520 --> 01:43:22,859 y cómo funciona Portainer 2246 01:43:22,859 --> 01:43:25,119 entonces vuelvo atrás 2247 01:43:25,119 --> 01:43:28,140 eso es respecto a las instalaciones nativas 2248 01:43:28,140 --> 01:43:30,260 pero lo que a nosotros nos interesa hoy 2249 01:43:30,260 --> 01:43:33,560 es la primera opción 2250 01:43:33,560 --> 01:43:36,359 ¿cómo has llegado ahí? 2251 01:43:36,539 --> 01:43:39,380 es que yo estoy todavía en el proceso de instalación 2252 01:43:39,380 --> 01:43:40,279 o de carga 2253 01:43:40,279 --> 01:43:41,340 de lo de antes 2254 01:43:41,340 --> 01:43:46,399 eso hay que meter 2255 01:43:46,399 --> 01:43:48,600 los últimos cuatro comandos que he puesto yo 2256 01:43:48,600 --> 01:43:49,300 ahí en 2257 01:43:49,300 --> 01:43:52,199 ¿eso ya los has hecho? 2258 01:43:52,699 --> 01:43:54,319 no, es que estaba en ello mientras te estaba 2259 01:43:54,319 --> 01:43:54,739 escuchando 2260 01:43:54,739 --> 01:43:56,720 espero que lo hagáis 2261 01:43:56,720 --> 01:43:59,699 prefiero que vayamos a la vez aquí 2262 01:43:59,699 --> 01:44:02,279 Juanfe, soy Adrián 2263 01:44:02,279 --> 01:44:03,939 yo con mi usuario también tengo que hacerlo 2264 01:44:03,939 --> 01:44:05,239 o tengo que esperar a que termines tú 2265 01:44:05,239 --> 01:44:08,399 no Adrián, tienes que esperar a que lo haga yo 2266 01:44:08,399 --> 01:44:08,659 vale 2267 01:44:08,659 --> 01:44:12,420 hay algunos 2268 01:44:12,420 --> 01:44:13,760 comandos que no me los coge 2269 01:44:13,760 --> 01:44:15,800 me dice 2270 01:44:15,800 --> 01:44:17,079 command of phone 2271 01:44:17,079 --> 01:44:21,060 ¿en cuál estás? 2272 01:44:21,060 --> 01:44:22,100 ¿cuál es el que te lo deje? 2273 01:44:22,439 --> 01:44:23,800 sudo espacio 2274 01:44:23,800 --> 01:44:26,319 punto barra menú punto sh 2275 01:44:26,319 --> 01:44:30,369 ¿qué has hecho del anterior? 2276 01:44:30,590 --> 01:44:32,989 cd virgulilla barra iot stack 2277 01:44:32,989 --> 01:44:38,960 para que ese comando te funcione 2278 01:44:38,960 --> 01:44:41,539 he acabado con install.sh 2279 01:44:41,539 --> 01:44:42,539 completed 2280 01:44:42,539 --> 01:44:44,720 vale 2281 01:44:44,720 --> 01:44:47,439 y a la hora de meter el último comando 2282 01:44:47,439 --> 01:44:49,659 no, pero es que no es el último, te falta este 2283 01:44:49,659 --> 01:44:50,640 entonces, te falta 2284 01:44:50,640 --> 01:44:54,789 ¿cuál? 2285 01:44:55,229 --> 01:44:57,890 este que estoy marcando ahora en la pantalla, el de cd 2286 01:44:57,890 --> 01:44:59,229 espacio virgulilla 2287 01:44:59,229 --> 01:45:00,930 si, ah 2288 01:45:00,930 --> 01:45:04,369 a ver, este creo que ya lo he hecho 2289 01:45:04,369 --> 01:45:05,689 espérate, un momento 2290 01:45:05,689 --> 01:45:08,130 si lo has hecho, deberías estar viendo 2291 01:45:08,130 --> 01:45:09,850 aquí en el PROM y OTSTACK 2292 01:45:09,850 --> 01:45:11,750 Sí, ahora sí, efectivamente 2293 01:45:11,750 --> 01:45:13,850 tiene razón, no lo había, me he saltado uno 2294 01:45:13,850 --> 01:45:15,750 Perfecto 2295 01:45:15,750 --> 01:45:18,180 Ya 2296 01:45:18,180 --> 01:45:20,159 Está creando 2297 01:45:20,159 --> 01:45:22,600 Python virtual 2298 01:45:22,600 --> 01:45:25,119 La primera vez tardó un pelín 2299 01:45:25,119 --> 01:45:27,260 en arrancar, pero luego ya que arrancaba 2300 01:45:27,260 --> 01:45:28,739 rápido. Ya, ya lo tengo 2301 01:45:28,739 --> 01:45:31,100 Vale, y ahora os podéis estar 2302 01:45:31,100 --> 01:45:32,939 preguntando, ¿para qué tanto sufrimiento? 2303 01:45:33,119 --> 01:45:35,100 Bueno, pues el sufrimiento es por esto, fijaos 2304 01:45:35,100 --> 01:45:37,300 si yo voy ahí a la primera opción, VULSTACK 2305 01:45:37,300 --> 01:45:40,949 ¿Veis todo esto que tenemos 2306 01:45:40,949 --> 01:45:42,729 aquí son aplicaciones, ¿vale? 2307 01:45:42,829 --> 01:45:44,270 Todas relacionadas con IoT. 2308 01:45:45,050 --> 01:45:47,090 Blink, Cronograph, Decon, 2309 01:45:47,850 --> 01:45:48,789 DomoticZ para 2310 01:45:48,789 --> 01:45:51,029 Domotica, Spruino, 2311 01:45:51,430 --> 01:45:52,810 Grafana, Home Assistant, 2312 01:45:53,090 --> 01:45:54,770 InfluzeDB, Mosquito, 2313 01:45:54,970 --> 01:45:57,229 N8n, Node.Rez, OpenHab, 2314 01:45:57,750 --> 01:45:59,130 Pijol, Portainer, 2315 01:45:59,449 --> 01:46:01,189 Postgre, Base de Datos, Prometheus, 2316 01:46:01,390 --> 01:46:02,829 Python, ¿vale? 2317 01:46:03,270 --> 01:46:04,710 Todo esto son 2318 01:46:04,710 --> 01:46:07,010 aplicaciones que alguien ya se ha comido 2319 01:46:07,010 --> 01:46:08,949 la cabeza para que 2320 01:46:08,949 --> 01:46:10,590 nosotros ahora podamos crear un Docker 2321 01:46:10,590 --> 01:46:12,789 Compose con la combinación de estas 2322 01:46:12,789 --> 01:46:14,510 aplicaciones que nosotros queramos 2323 01:46:14,510 --> 01:46:16,909 ¿vale? yo tengo un proyecto que necesito 2324 01:46:16,909 --> 01:46:18,770 Python, Node.js y 2325 01:46:18,770 --> 01:46:20,829 Mosquito, pues elijo aquí Python, Node.js 2326 01:46:20,829 --> 01:46:22,670 y Mosquito y esto me va a generar 2327 01:46:22,670 --> 01:46:24,710 ese archivo YML que os he 2328 01:46:24,710 --> 01:46:26,369 comentado que no son súper complejos 2329 01:46:26,369 --> 01:46:28,210 pero que es fácil meter la pata 2330 01:46:28,210 --> 01:46:30,869 entonces, como esta herramienta 2331 01:46:30,869 --> 01:46:32,689 es solamente para generar ese archivo 2332 01:46:32,689 --> 01:46:34,529 y lo que vamos a hacer es empezar desde arriba 2333 01:46:34,529 --> 01:46:36,550 y vamos a ir marcando las aplicaciones 2334 01:46:36,550 --> 01:46:37,789 que a nosotros nos interesan 2335 01:46:37,789 --> 01:46:40,569 ¿vale? que son las que os decía 2336 01:46:40,569 --> 01:46:41,810 de min, entonces 2337 01:46:41,810 --> 01:46:43,310 perdona que me he pasado 2338 01:46:43,310 --> 01:46:46,529 vamos despacio, están por orden 2339 01:46:46,529 --> 01:46:48,350 alfabético, cuando lleguéis a la A 2340 01:46:48,350 --> 01:46:50,489 pues empezamos, no sé si habrá alguna por la A 2341 01:46:50,489 --> 01:46:51,310 pero vamos a la primera 2342 01:46:51,310 --> 01:46:54,449 es importante que tengáis la ventana 2343 01:46:54,449 --> 01:46:56,229 maximizada porque si no vais a empezar a ver 2344 01:46:56,229 --> 01:46:57,310 este menú bastante raro 2345 01:46:57,310 --> 01:46:59,289 bueno 2346 01:46:59,289 --> 01:47:09,899 estoy como tú, eso nos ha pasado 2347 01:47:09,899 --> 01:47:11,100 por impacientes 2348 01:47:11,100 --> 01:47:15,529 vale, pues ya 2349 01:47:15,529 --> 01:47:17,310 estamos, entonces estoy aquí 2350 01:47:17,310 --> 01:47:19,590 y claro, cuando ves esto, pues te hace una ilusión 2351 01:47:19,590 --> 01:47:21,189 impresionante, porque de pronto dices 2352 01:47:21,189 --> 01:47:22,770 pues es que puedo instalar lo que quiera 2353 01:47:22,770 --> 01:47:25,430 entonces, nosotros vamos a ir pasito 2354 01:47:25,430 --> 01:47:27,470 a pasito, y vamos a instalar 2355 01:47:27,470 --> 01:47:29,409 grafana, veis 2356 01:47:29,409 --> 01:47:31,149 estoy en la posición de grafana 2357 01:47:31,149 --> 01:47:33,170 ¿cómo la selecciono? con la barra espaciadora 2358 01:47:33,170 --> 01:47:35,569 y vais a ver que en los paréntesis que hay a la izquierda 2359 01:47:35,569 --> 01:47:36,930 aparece una X 2360 01:47:36,930 --> 01:47:39,289 para indicarme que ya tengo seleccionado grafana 2361 01:47:39,289 --> 01:47:41,149 para instalarlo, vale 2362 01:47:41,149 --> 01:47:43,069 pues ahora que ya tengo grafana, sigo bajando 2363 01:47:43,069 --> 01:47:45,270 y yo quiero instalar 2364 01:47:45,270 --> 01:47:47,090 también influxdb, como veis 2365 01:47:47,090 --> 01:47:49,250 hay dos versiones de InfluxDB, la 1 2366 01:47:49,250 --> 01:47:51,069 y la 2, yo de momento 2367 01:47:51,069 --> 01:47:52,409 sigo usando la 1, vale 2368 01:47:52,409 --> 01:47:55,449 y os recomiendo que hoy uséis la 1 porque los ejercicios 2369 01:47:55,449 --> 01:47:57,329 que vamos a hacer están basados en la 1 2370 01:47:57,329 --> 01:47:59,109 pero bueno, la verdad es que ya sería 2371 01:47:59,109 --> 01:48:00,810 momento de ir pasando a la versión 2 2372 01:48:00,810 --> 01:48:03,010 InfluxDB 2373 01:48:03,010 --> 01:48:05,310 luego sigo bajando 2374 01:48:05,310 --> 01:48:06,850 y aquí 2375 01:48:06,850 --> 01:48:08,369 viene ya 2376 01:48:08,369 --> 01:48:10,850 la opción de elegir 2377 01:48:10,850 --> 01:48:13,329 Node.Ref, a ver me he salto a Mosquito 2378 01:48:13,329 --> 01:48:14,850 perdona, me he salto a Mosquito, vale 2379 01:48:14,850 --> 01:48:15,710 Mosquito 2380 01:48:15,710 --> 01:48:19,329 y por último no de red 2381 01:48:19,329 --> 01:48:21,409 y no de red ojito 2382 01:48:21,409 --> 01:48:23,770 ¿vale? veis en no de red cuando lo he seleccionado 2383 01:48:23,770 --> 01:48:25,270 me aparece ahí a la derecha 2384 01:48:25,270 --> 01:48:27,890 en amarillo y unas exclamaciones 2385 01:48:27,890 --> 01:48:29,510 eso quiere decir que 2386 01:48:29,510 --> 01:48:31,329 no de red requiere una 2387 01:48:31,329 --> 01:48:32,810 configuración adicional 2388 01:48:32,810 --> 01:48:35,310 para entrar en esa configuración adicional 2389 01:48:35,310 --> 01:48:37,329 tengo que pulsar la tecla flecha derecha 2390 01:48:37,329 --> 01:48:39,229 esto está ahí puesto ¿vale? está ahí escrito 2391 01:48:39,229 --> 01:48:40,569 donde pone abajo control 2392 01:48:40,569 --> 01:48:43,689 ahí lo explica, pulso la tecla flecha derecha 2393 01:48:43,689 --> 01:48:45,369 y entonces me aparece 2394 01:48:45,369 --> 01:48:45,890 otro menú 2395 01:48:45,890 --> 01:48:49,390 en el que aparece seleccionada la primera opción 2396 01:48:49,390 --> 01:48:50,930 select and build add-on list 2397 01:48:50,930 --> 01:48:52,989 hago pulso intro 2398 01:48:52,989 --> 01:48:55,550 y veis me aparece un listado 2399 01:48:55,550 --> 01:48:57,449 de extensiones 2400 01:48:57,449 --> 01:48:59,270 que se pueden instalar junto a 2401 01:48:59,270 --> 01:49:01,090 Node-RED, Node-RED es un lenguaje de 2402 01:49:01,090 --> 01:49:03,189 programación visual al que se le pueden 2403 01:49:03,189 --> 01:49:04,590 añadir por así decirle 2404 01:49:04,590 --> 01:49:07,029 add-ons o en realidad se llaman 2405 01:49:07,029 --> 01:49:09,149 módulos, entonces veis que por defecto 2406 01:49:09,149 --> 01:49:11,149 ya me trae varios seleccionados 2407 01:49:11,149 --> 01:49:13,149 uno que se llama ping, otro para 2408 01:49:13,149 --> 01:49:15,149 influxdb, otro 2409 01:49:15,149 --> 01:49:17,069 para generar dashboard, que está muy bien 2410 01:49:17,069 --> 01:49:19,029 el que no vamos a necesitar hoy 2411 01:49:19,029 --> 01:49:20,810 es este, por ejemplo, el que pone ahí 2412 01:49:20,810 --> 01:49:22,390 NodePy GPIOD 2413 01:49:22,390 --> 01:49:25,109 eso no tiene sentido, si tú tienes 2414 01:49:25,109 --> 01:49:26,930 NodeRed, en una Raspberry Pi 2415 01:49:26,930 --> 01:49:29,029 es decir, si esto lo hacéis en una Raspberry Pi 2416 01:49:29,029 --> 01:49:30,229 estupendo, dejad ese 2417 01:49:30,229 --> 01:49:33,050 módulo disponible, pero 2418 01:49:33,050 --> 01:49:34,949 como no es el caso, pues 2419 01:49:34,949 --> 01:49:37,090 no lo necesitamos, entonces lo he 2420 01:49:37,090 --> 01:49:38,930 lo he deshabilitado pulsando 2421 01:49:38,930 --> 01:49:40,609 la tecla barra espaciadora 2422 01:49:40,609 --> 01:49:42,350 como veis hay muchos más 2423 01:49:42,350 --> 01:49:44,869 y no os agobiéis, si tú se te 2424 01:49:44,869 --> 01:49:46,810 olvide instalar un módulo aquí, lo vas a poder instalar 2425 01:49:46,810 --> 01:49:48,810 posteriormente, así que tampoco hay que vivir 2426 01:49:48,810 --> 01:49:50,930 agobiado, simplemente que sepáis 2427 01:49:50,930 --> 01:49:52,829 que te está diciendo el menú, oye si quieres 2428 01:49:52,829 --> 01:49:55,149 te ayudo, y ya de paso te instalo 2429 01:49:55,149 --> 01:49:57,130 los módulos que probablemente vas a necesitar 2430 01:49:57,130 --> 01:49:59,029 porque claro, si me has pedido instalar InfluxDB 2431 01:49:59,029 --> 01:50:00,890 probablemente vas a necesitar 2432 01:50:00,890 --> 01:50:02,609 el módulo de InfluxDB, bueno 2433 01:50:02,609 --> 01:50:05,310 yo aquí he quitado el de Raspberry Pi 2434 01:50:05,310 --> 01:50:06,909 simplemente pulso intro 2435 01:50:06,909 --> 01:50:08,909 para volver al menú anterior 2436 01:50:08,909 --> 01:50:10,609 ahora con las flechas abajo 2437 01:50:10,609 --> 01:50:13,010 le digo go back, para volver 2438 01:50:13,010 --> 01:50:15,250 al menú anterior 2439 01:50:15,250 --> 01:50:16,829 vale 2440 01:50:16,829 --> 01:50:19,609 y aquí para iniciar 2441 01:50:19,609 --> 01:50:21,670 la creación del docker compose 2442 01:50:21,670 --> 01:50:22,710 pulso intro 2443 01:50:22,710 --> 01:50:24,130 y ya está 2444 01:50:24,130 --> 01:50:26,569 entonces si ha ido todo bien te dirá 2445 01:50:26,569 --> 01:50:29,149 construcción completa docker compose 2446 01:50:29,149 --> 01:50:30,109 yml 2447 01:50:30,109 --> 01:50:33,149 y esto que es lo que ha hecho 2448 01:50:33,149 --> 01:50:35,189 lo que ha hecho es crear un archivo docker compose 2449 01:50:35,189 --> 01:50:36,670 con todo lo necesario 2450 01:50:36,670 --> 01:50:39,250 para que yo ahora baje aquí una opción 2451 01:50:39,250 --> 01:50:40,409 vaya a docker commands 2452 01:50:40,409 --> 01:50:42,210 pulso intro 2453 01:50:42,210 --> 01:50:43,670 y le diga 2454 01:50:43,670 --> 01:50:45,729 restar stack 2455 01:50:45,729 --> 01:50:47,689 reiniciarle la pila 2456 01:50:47,689 --> 01:50:49,750 y lo que está ocurriendo ahora mismo 2457 01:50:49,750 --> 01:50:51,930 es que se están descargando las imágenes de grafana 2458 01:50:51,930 --> 01:50:53,130 mosquitono, de red 2459 01:50:53,130 --> 01:50:55,930 se están creando contenedores de todos ellos 2460 01:50:55,930 --> 01:50:58,029 y en unos instantes tendré 2461 01:50:58,029 --> 01:50:59,770 todo esto montado en mi servidor 2462 01:50:59,770 --> 01:51:07,579 para poder utilizarlo 2463 01:51:07,579 --> 01:51:10,619 yo me he quedado en build 2464 01:51:10,619 --> 01:51:12,000 complete, ¿quiere quedar después? 2465 01:51:13,300 --> 01:51:13,520 sí 2466 01:51:13,520 --> 01:51:15,659 ahora no te lo puedo enseñar pero 2467 01:51:15,659 --> 01:51:18,319 en docker commands 2468 01:51:18,319 --> 01:51:20,300 el primero es boolean stack 2469 01:51:20,300 --> 01:51:22,619 el segundo creo que es docker commands 2470 01:51:22,619 --> 01:51:24,640 pues entras ahí y hay uno 2471 01:51:24,640 --> 01:51:26,239 que es restart stack 2472 01:51:26,239 --> 01:51:27,039 me parece que se llama 2473 01:51:27,039 --> 01:51:29,060 vale 2474 01:51:29,060 --> 01:51:36,060 entonces si tenéis la misma suerte que he tenido yo 2475 01:51:36,060 --> 01:51:38,319 que deberíais, pues veis que aquí va a acabar 2476 01:51:38,319 --> 01:51:40,399 diciéndote ya tenemos construido 2477 01:51:40,399 --> 01:51:42,119 mosquitos, no de red, la red de los 2478 01:51:42,119 --> 01:51:44,199 contenedores grafana, mosquitos, está todo perfecto 2479 01:51:44,920 --> 01:51:45,100 vale 2480 01:51:45,100 --> 01:51:47,319 entonces ya directamente pulso intro 2481 01:51:47,319 --> 01:51:50,319 y ya lo que puedo hacer es salir 2482 01:51:50,319 --> 01:51:51,239 de esta aplicación 2483 01:51:51,239 --> 01:51:53,840 para salir de esta aplicación 2484 01:51:53,840 --> 01:51:55,239 le digo volver atrás 2485 01:51:55,239 --> 01:51:56,920 y salir 2486 01:51:56,920 --> 01:51:59,340 ¿vale? 2487 01:51:59,479 --> 01:52:01,539 y ya están todos los contenedores funcionando 2488 01:52:01,539 --> 01:52:03,579 ¿cómo lo sé? porque por ejemplo si hago un docker 2489 01:52:03,579 --> 01:52:04,619 ps-a 2490 01:52:04,619 --> 01:52:07,439 veis que me está diciendo aquí que ya tengo node-red 2491 01:52:07,439 --> 01:52:09,699 grafana, mosquito, influxdb funcionando 2492 01:52:09,699 --> 01:52:11,600 si no quiero verlo aquí 2493 01:52:11,600 --> 01:52:13,500 y me gusta más verlo en portainer 2494 01:52:13,500 --> 01:52:15,479 pues si me voy a portainer y le digo 2495 01:52:15,479 --> 01:52:17,479 que quiero ver los contenedores, veis que ya tengo 2496 01:52:17,479 --> 01:52:19,239 todos los contenedores funcionando 2497 01:52:19,239 --> 01:52:21,220 grafana, influxdb, mosquito y node-red 2498 01:52:21,239 --> 01:52:23,359 ¿vale? además aquí en Grafana 2499 01:52:23,359 --> 01:52:25,439 está muy bien porque te está indicando 2500 01:52:25,439 --> 01:52:27,300 precisamente que puertos utilizan 2501 01:52:27,300 --> 01:52:29,279 perdón, en Portainer está muy bien porque te indica 2502 01:52:29,279 --> 01:52:29,960 los puertos 2503 01:52:29,960 --> 01:52:32,560 perdona, cuando termina 2504 01:52:32,560 --> 01:52:34,960 que vuelves otra vez al menú 2505 01:52:34,960 --> 01:52:37,340 simplemente salir o hay que darle restar 2506 01:52:37,340 --> 01:52:39,300 stack para que vuelva, para que arranque 2507 01:52:39,300 --> 01:52:40,060 todo, que has dicho 2508 01:52:40,060 --> 01:52:42,939 restar stack hay que dárselo solo una vez 2509 01:52:42,939 --> 01:52:44,619 si ya se lo has dado no hace falta que se lo des 2510 01:52:44,619 --> 01:52:47,039 otra vez, y ya que has reiniciado 2511 01:52:47,039 --> 01:52:48,739 la pila, ya directamente le das salir 2512 01:52:48,739 --> 01:52:50,000 la opción salir del menú 2513 01:52:50,000 --> 01:52:55,399 Sí, sí, no, pero RestartStack se le da después de que ha empezado a bajarse todo y demás y tal. 2514 01:52:55,760 --> 01:52:57,359 Sí, sí, sí, sí. 2515 01:52:57,359 --> 01:53:01,460 Y te dice, intro tal para volver al menú. 2516 01:53:02,079 --> 01:53:08,060 Sí, ya no tienes que volver a hacerlo. O sea, eso es porque ya se ha hecho un RestartStack, entiendo yo, ¿no? 2517 01:53:08,159 --> 01:53:08,760 Vale, vale. 2518 01:53:08,760 --> 01:53:09,239 No lo habías hecho. 2519 01:53:10,239 --> 01:53:11,939 Vale, entonces va aquí ya está, ¿no? 2520 01:53:11,939 --> 01:53:20,380 entonces, lo que os decía 2521 01:53:20,380 --> 01:53:23,279 ya podéis ver vuestros contenedores aquí, todos saludables 2522 01:53:23,279 --> 01:53:24,720 todos funcionando, vale 2523 01:53:24,720 --> 01:53:29,420 como veis, tenemos ahora dos stacks 2524 01:53:29,420 --> 01:53:31,920 uno que era el que había creado yo antes para 2525 01:53:31,920 --> 01:53:34,439 no de red y otro que se ha creado 2526 01:53:34,439 --> 01:53:37,539 específico para estos últimos cuatro contenedores 2527 01:53:37,539 --> 01:53:41,020 bien, y ahora ya 2528 01:53:41,020 --> 01:53:43,579 todos, vale, Adrián, Modesto 2529 01:53:43,579 --> 01:53:45,640 también podéis hacer lo que voy a hacer ahora yo 2530 01:53:45,640 --> 01:53:48,199 ya podéis ir con vuestros navegadores web 2531 01:53:48,199 --> 01:53:50,159 a visitar vuestros nodes de red 2532 01:53:50,159 --> 01:53:51,960 simplemente tenéis que 2533 01:53:51,960 --> 01:53:53,680 escribir la dirección IP 2534 01:53:53,680 --> 01:53:56,420 2.1880 2535 01:53:56,420 --> 01:53:58,460 y os van a aparecer 2536 01:53:58,460 --> 01:53:59,939 ahí vuestros nodes de red 2537 01:53:59,939 --> 01:54:01,079 ¿vale? 2538 01:54:03,789 --> 01:54:05,970 es esto que estoy mostrando yo ahora en pantalla 2539 01:54:05,970 --> 01:54:07,770 para los que no lo hayáis visto antes 2540 01:54:07,770 --> 01:54:10,270 es un lenguaje de programación que crearon 2541 01:54:10,270 --> 01:54:11,449 ingenieros de IBM 2542 01:54:11,449 --> 01:54:14,250 específico para Internet de las Cosas 2543 01:54:14,250 --> 01:54:15,750 ellos se dieron cuenta de que 2544 01:54:15,750 --> 01:54:17,810 internet de las cosas era muy complejo 2545 01:54:17,810 --> 01:54:19,789 porque realmente entran en juego 2546 01:54:19,789 --> 01:54:21,949 muchas tecnologías distintas 2547 01:54:21,949 --> 01:54:23,529 y entonces lo que hicieron fue 2548 01:54:23,529 --> 01:54:25,510 crear este lenguaje de programación 2549 01:54:25,510 --> 01:54:27,250 que estaba basado en Javascript 2550 01:54:27,250 --> 01:54:29,050 concretamente en Node.js 2551 01:54:29,050 --> 01:54:31,590 de tal forma que aquí por ejemplo 2552 01:54:31,590 --> 01:54:32,949 para que os hagáis una idea 2553 01:54:32,949 --> 01:54:35,210 pues crear un servidor web 2554 01:54:35,210 --> 01:54:37,970 es tan sencillo como hacer lo que yo acabo de hacer 2555 01:54:37,970 --> 01:54:39,750 con hacer esto acabo de crearme 2556 01:54:39,750 --> 01:54:40,470 un servidor web 2557 01:54:40,470 --> 01:54:41,689 ¿vale? 2558 01:54:42,789 --> 01:54:45,029 si quiero crearme un servidor TCP 2559 01:54:45,029 --> 01:54:47,189 igual de sencillo 2560 01:54:47,189 --> 01:54:49,590 que quiero publicar 2561 01:54:49,590 --> 01:54:50,729 un broker MQTT 2562 01:54:50,729 --> 01:54:52,090 igual de sencillo 2563 01:54:52,090 --> 01:54:54,390 aquí la ventaja que tenemos 2564 01:54:54,390 --> 01:54:56,989 es que simplemente arrastrando un módulo 2565 01:54:56,989 --> 01:54:57,550 de estos 2566 01:54:57,550 --> 01:55:00,569 directamente nos evitamos 2567 01:55:00,569 --> 01:55:02,489 crear un montón de 2568 01:55:02,489 --> 01:55:04,210 código, entonces como veis 2569 01:55:04,210 --> 01:55:06,569 están aquí organizados 2570 01:55:06,569 --> 01:55:09,109 los nodos 2571 01:55:09,109 --> 01:55:10,590 en distintas categorías 2572 01:55:10,590 --> 01:55:13,069 categoría de red, categoría de secuencia 2573 01:55:13,069 --> 01:55:14,989 de analizador, de almacenamiento 2574 01:55:14,989 --> 01:55:17,470 fijaos que curioso, veis, ahí aparecen ya 2575 01:55:17,470 --> 01:55:19,229 nodos para InfluxDB 2576 01:55:19,229 --> 01:55:21,390 esto es precisamente porque en el 2577 01:55:21,390 --> 01:55:22,869 menú anterior 2578 01:55:22,869 --> 01:55:25,029 en Node.RED, cuando aparecía lo de issue 2579 01:55:25,029 --> 01:55:27,189 yo he visto que allá 2580 01:55:27,189 --> 01:55:29,270 me estaba diciendo Node.RED, oye, ¿quieres que te instale 2581 01:55:29,270 --> 01:55:30,250 los nodos de InfluxDB? 2582 01:55:30,729 --> 01:55:33,130 y como estaba marcado, veis, ya los tengo aquí 2583 01:55:33,130 --> 01:55:35,550 instalados, los del dashboard 2584 01:55:35,550 --> 01:55:36,529 que también venían allí 2585 01:55:36,529 --> 01:55:39,109 entonces veis que tenemos un montón de nodos 2586 01:55:39,109 --> 01:55:41,069 lo que os decía 2587 01:55:41,069 --> 01:55:43,350 no hay que asustarse, si se te ha olvidado 2588 01:55:43,350 --> 01:55:45,149 algo, lo puedes añadir en cualquier momento 2589 01:55:45,149 --> 01:55:47,310 fijaos, me vengo aquí a la derecha, no hace falta 2590 01:55:47,310 --> 01:55:49,090 que lo hagáis, porque voy a instalar uno al azar 2591 01:55:49,090 --> 01:55:50,390 para que veáis como se hace 2592 01:55:50,390 --> 01:55:53,609 y aquí, en administrar 2593 01:55:53,609 --> 01:55:55,289 paleta, esto es la paleta donde 2594 01:55:55,289 --> 01:55:57,390 están los nodos, ves que aparecen los nodos 2595 01:55:57,390 --> 01:55:59,170 que yo tengo instalado, pero también tengo 2596 01:55:59,170 --> 01:56:00,609 la opción de instalar nuevos nodos 2597 01:56:00,609 --> 01:56:03,109 ¿nodos cuántos? o sea, ¿módulos 2598 01:56:03,109 --> 01:56:05,210 cuántos hay? muchísimos 2599 01:56:05,210 --> 01:56:07,289 porque como Node.js es código abierto 2600 01:56:07,289 --> 01:56:09,109 pues hay muchísima gente 2601 01:56:09,109 --> 01:56:11,470 contribuyendo, entonces, por ejemplo 2602 01:56:11,470 --> 01:56:36,390 Hay uno que se llama World Map, que es para mostrar información sobre un mapa, pues sería este, que además se ha actualizado hace dos días, pues yo le doy a instalar, le digo a instalar, y vais a ver que en un instante ese módulo está ya instalado, y lo que vamos a ver es que aquí a la izquierda, pues veis que nos aparecen nuevos nodos relacionados con ese módulo. 2603 01:56:36,390 --> 01:56:38,210 pues igual que he hecho esto 2604 01:56:38,210 --> 01:56:40,149 ya podéis estar imaginando 2605 01:56:40,149 --> 01:56:42,170 que existen módulos prácticamente para cualquier 2606 01:56:42,170 --> 01:56:43,590 cosa que se os pase por la cabeza 2607 01:56:43,590 --> 01:56:46,010 imaginaos que yo quiero hacer una integración 2608 01:56:46,010 --> 01:56:47,310 con telegram 2609 01:56:47,310 --> 01:56:49,350 pues me vengo aquí a administrar paletas 2610 01:56:49,350 --> 01:56:52,010 voy a instalar, busco telegram 2611 01:56:52,010 --> 01:56:55,289 y veis que tengo varios 2612 01:56:55,289 --> 01:56:57,409 incluso, ahora ya me tocaría un poco 2613 01:56:57,409 --> 01:56:59,569 más investigar cual de estos es más fiable 2614 01:56:59,569 --> 01:57:01,449 pues hombre, a lo mejor uno que tiene 2615 01:57:01,449 --> 01:57:03,329 tres años, pues es menos fiable 2616 01:57:03,329 --> 01:57:04,829 que uno que hace un mes que se 2617 01:57:04,829 --> 01:57:07,189 editó, pero como veis 2618 01:57:07,189 --> 01:57:08,850 tenéis aquí la opción de hacer prácticamente 2619 01:57:08,850 --> 01:57:10,130 lo que se os pase por la cabeza. 2620 01:57:10,930 --> 01:57:12,970 Bien, vamos a empezar con una introducción muy básica 2621 01:57:12,970 --> 01:57:13,710 a Node-RED, ¿vale? 2622 01:57:14,670 --> 01:57:16,250 Simplemente para que entendáis cómo funciona esto. 2623 01:57:16,250 --> 01:57:18,149 Perdona un momento, no me entra en Node-RED. 2624 01:57:18,229 --> 01:57:20,029 ¿Qué dirección hay que dar para que entre en Node-RED? 2625 01:57:20,369 --> 01:57:22,829 La dirección IP que te haya correspondido a ti, 2626 01:57:23,050 --> 01:57:24,970 dos puntos, 1880. 2627 01:57:25,409 --> 01:57:26,369 ¿Con el HTTPS? 2628 01:57:26,949 --> 01:57:29,250 No, sin la S, en este caso. 2629 01:57:30,369 --> 01:57:31,550 Vale, yo creo que será el fallo. 2630 01:57:34,270 --> 01:57:34,829 Sin la S. 2631 01:57:44,029 --> 01:57:44,630 La dirección. 2632 01:57:44,970 --> 01:57:45,930 Vale, sí, sí que entra. 2633 01:57:46,069 --> 01:57:47,310 Era la S la que me fallaba. 2634 01:57:47,750 --> 01:57:49,270 Un momento, Juanfe, que voy a intentarlo yo. 2635 01:57:49,890 --> 01:57:50,829 Vale, sí, sí, sin problema. 2636 01:57:57,359 --> 01:57:58,279 Vale, pues ya estamos aquí. 2637 01:58:01,100 --> 01:58:03,220 Juanfe, una cosa, ahí en el... 2638 01:58:03,220 --> 01:58:05,220 aquí en el 2639 01:58:05,220 --> 01:58:07,300 Portainer, yo me veo 2640 01:58:07,300 --> 01:58:09,119 aquí el Portainer corriendo, pero el 2641 01:58:09,119 --> 01:58:11,100 resto de nodos no lo veo. ¿Dónde hay 2642 01:58:11,100 --> 01:58:12,699 que acceder ahí para ver todo 2643 01:58:12,699 --> 01:58:15,159 lo que está corriendo ahí de Docker? 2644 01:58:17,199 --> 01:58:19,020 Eso lo puedes ver en el Portainer, 2645 01:58:19,119 --> 01:58:20,439 que lo ves aquí en Contenedores. 2646 01:58:21,140 --> 01:58:23,319 A ver, pero ese... 2647 01:58:23,319 --> 01:58:28,819 A ver, yo tengo Home y debajo parece que tengo otra cosa diferente a lo tuyo, ¿no? 2648 01:58:29,140 --> 01:58:32,180 ¿Tú no tienes el entorno local ahí abajo, debajo de Home? 2649 01:58:33,399 --> 01:58:38,800 Debajo de Home tengo una cosa que pone Environment y ya está, y no pone nada más. 2650 01:58:38,840 --> 01:58:40,880 Vale, pues dale ahí a Environment, Germán. 2651 01:58:41,600 --> 01:58:47,020 Pero aquí en Environment esto parece que no tiene nada. 2652 01:58:47,020 --> 01:58:50,960 ¿Tú cuando entras, cuando le das a Home no te aparece esto que estoy viendo yo ahora? 2653 01:58:50,960 --> 01:58:53,920 cuando le doy a home 2654 01:58:53,920 --> 01:58:55,520 me aparece, sí, el 2655 01:58:55,520 --> 01:58:57,359 el portainer, ya está 2656 01:58:57,359 --> 01:58:58,880 y ahí el local 2657 01:58:58,880 --> 01:59:00,279 ¿aparece local? 2658 01:59:01,079 --> 01:59:02,340 ah, sí, aparece aquí local 2659 01:59:02,340 --> 01:59:04,500 pues le das a local, ¿vale? 2660 01:59:05,180 --> 01:59:07,640 y en local veis que ya te aparecen ahí 2661 01:59:07,640 --> 01:59:09,720 por ejemplo, dos stats, seis imágenes 2662 01:59:09,720 --> 01:59:10,539 cinco contenedores 2663 01:59:10,539 --> 01:59:13,640 sí, me aparece cinco containers, sí, ahora sí me aparece 2664 01:59:13,640 --> 01:59:15,819 y luego aquí a 2665 01:59:15,819 --> 01:59:17,460 containers, vale, ahora sí 2666 01:59:17,460 --> 01:59:19,300 vale, correcto, venga, gracias 2667 01:59:19,300 --> 01:59:24,079 Muy bien. Vale, vamos a empezar con algo sencillito, ¿vale? 2668 01:59:24,779 --> 01:59:29,300 En Node-RED. Perdona, ¿otro compañero me había dicho que iba a probar él con Node-RED? ¿Lo ha conseguido? 2669 01:59:29,659 --> 01:59:29,939 Sí. 2670 01:59:30,939 --> 01:59:33,359 Perfecto. Venga, pues vamos a hacerlo más sencillo. 2671 01:59:33,479 --> 01:59:39,479 Lo más sencillo es usar un nodo de inyección, que es esto, y engancharlo a un nodo de depuración. 2672 01:59:39,819 --> 01:59:47,300 ¿Y cómo se engancha? Pues fijaros, todos los nodos tienen un puerto de salida y algunos tienen un puerto de entrada. 2673 01:59:47,300 --> 01:59:50,199 lo único que hay que hacer es hacer clic en el puerto de salida 2674 01:59:50,199 --> 01:59:53,539 y arrastrar el ratón para unirlo al puerto de entrada del siguiente 2675 01:59:53,539 --> 01:59:56,720 entonces veis que así lo que he creado 2676 01:59:56,720 --> 01:59:58,840 es un flujo, que lo puedes mover 2677 01:59:58,840 --> 02:00:01,640 lo que estoy haciendo es programar, no lo perdáis de vista 2678 02:00:01,640 --> 02:00:03,640 lo que estoy haciendo es crear un programa 2679 02:00:03,640 --> 02:00:06,939 y este programa que hace, pues un nodo inyector 2680 02:00:06,939 --> 02:00:10,539 lo que hace es que va a inyectar una marca de tiempo 2681 02:00:10,539 --> 02:00:12,840 un time stand, es decir, la fecha y la hora 2682 02:00:12,840 --> 02:00:16,659 entonces cuando nosotros hagamos clic en esta lengüetita que está aquí 2683 02:00:16,659 --> 02:00:17,800 a la izquierda 2684 02:00:17,800 --> 02:00:20,920 este nodo va a inyectar la fecha y hora 2685 02:00:20,920 --> 02:00:22,319 que va a salir por este cable 2686 02:00:22,319 --> 02:00:24,420 y va a llegar a este otro nodo 2687 02:00:24,420 --> 02:00:25,720 que es un nodo de depuración 2688 02:00:25,720 --> 02:00:28,439 y la misión de este segundo nodo de depuración 2689 02:00:28,439 --> 02:00:30,399 es mostrarme todo lo que le llegue 2690 02:00:30,399 --> 02:00:32,779 aquí, en la paleta de depuración 2691 02:00:32,779 --> 02:00:34,720 ¿vale? tenéis que hacer clic 2692 02:00:34,720 --> 02:00:36,020 en la mariquita esta que hay ahí 2693 02:00:36,020 --> 02:00:38,119 y os debería mostrar 2694 02:00:38,119 --> 02:00:39,319 una paleta vacía 2695 02:00:39,319 --> 02:00:42,239 bien, pues yo ya tengo mi programa creado 2696 02:00:42,239 --> 02:00:44,739 si os fijáis, junto a los nodos 2697 02:00:44,739 --> 02:00:46,260 aparece un puntito de color azul 2698 02:00:46,260 --> 02:00:48,319 y en el propio flujo 2699 02:00:48,319 --> 02:00:50,779 aparece un punto de color azul 2700 02:00:50,779 --> 02:00:53,359 eso quiere decir que a ese flujo 2701 02:00:53,359 --> 02:00:54,619 se le han hecho cambios 2702 02:00:54,619 --> 02:00:56,840 que aún no están en ejecución 2703 02:00:56,840 --> 02:00:58,340 hemos hecho cambios 2704 02:00:58,340 --> 02:01:01,020 y esos cambios no se están ejecutando aún 2705 02:01:01,020 --> 02:01:02,899 para ejecutarlos hay que pulsar en 2706 02:01:02,899 --> 02:01:04,180 instanciar 2707 02:01:04,180 --> 02:01:09,229 entonces, ¿qué es lo que me pasa a mí? 2708 02:01:09,289 --> 02:01:11,329 que como Modesto y o Adrián 2709 02:01:11,329 --> 02:01:13,350 están también trabajando por ahí 2710 02:01:13,350 --> 02:01:15,430 ¿veis? a mí me dice que puede haber 2711 02:01:15,430 --> 02:01:17,270 un problema, bueno, yo le digo, no pasa nada 2712 02:01:17,270 --> 02:01:19,430 vamos a fusionar lo de todos y ya está 2713 02:01:19,430 --> 02:01:21,210 ¿vale? entonces le doy a 2714 02:01:21,210 --> 02:01:23,649 distanciar y ya está funcionando 2715 02:01:23,649 --> 02:01:25,010 ¿veis? yo tengo aquí un flujo 1 2716 02:01:25,010 --> 02:01:27,550 imagino que por aquí ha estado también trabajando 2717 02:01:27,550 --> 02:01:30,050 alguno de los compañeros y tiene su propio flujo 2718 02:01:30,050 --> 02:01:31,529 ¿vale? ¿la marca de tiempo 2719 02:01:31,529 --> 02:01:32,810 la editas? ¿qué has dicho? 2720 02:01:33,029 --> 02:01:35,350 no, no, no la he tocado, le he dejado, o sea, solo han puesto 2721 02:01:35,350 --> 02:01:37,270 los dos nodos y los he unido con un cable 2722 02:01:37,270 --> 02:01:39,649 porque quiero enseñaros cómo funciona y ya está 2723 02:01:39,649 --> 02:01:44,060 y ahora fijaos 2724 02:01:44,060 --> 02:01:46,560 activo el panel de la mariquita 2725 02:01:46,560 --> 02:01:49,300 aquí a la derecha, ¿vale? del debug, del insecto 2726 02:01:49,300 --> 02:01:51,039 y aquí, en la marca 2727 02:01:51,039 --> 02:01:52,739 de tiempo, hago clic en la lengüecita 2728 02:01:52,739 --> 02:01:54,319 que tiene a la izquierda 2729 02:01:54,319 --> 02:01:57,000 al hacer clic ahí, se inyecta 2730 02:01:57,000 --> 02:01:58,979 la fecha y la hora a través del 2731 02:01:58,979 --> 02:02:01,180 cable, llega al panel de depuración 2732 02:02:01,180 --> 02:02:03,119 y el panel de depuración 2733 02:02:03,119 --> 02:02:04,979 me lo está mostrando aquí, me está diciendo 2734 02:02:04,979 --> 02:02:06,979 oye, he recibido 2735 02:02:06,979 --> 02:02:08,920 un objeto con la propiedad payload 2736 02:02:08,920 --> 02:02:10,920 que es un número, ¿vale? 2737 02:02:11,039 --> 02:02:13,239 y ahí tenemos la hora y fecha actual 2738 02:02:13,239 --> 02:02:14,760 en formato timestamp 2739 02:02:14,760 --> 02:02:16,479 el compañero veis que están haciendo clic 2740 02:02:16,479 --> 02:02:18,319 y van apareciendo debajo 2741 02:02:18,319 --> 02:02:20,579 cada vez que ellos hacen clic, pues va apareciendo 2742 02:02:20,579 --> 02:02:36,010 aquí debajo también, ¿todo bien? 2743 02:02:37,250 --> 02:02:37,689 sí 2744 02:02:37,689 --> 02:02:39,989 vale, esto es 2745 02:02:39,989 --> 02:02:41,890 muy sencillo, ¿vale? ¿qué vamos a hacer a continuación? 2746 02:02:42,350 --> 02:02:44,109 el otro día en clase, lo que estuvimos 2747 02:02:44,109 --> 02:02:46,329 haciendo fue integrar 2748 02:02:46,329 --> 02:02:48,189 con Zing Speed, y para integrar 2749 02:02:48,189 --> 02:02:49,750 os tuve que contar HTTP 2750 02:02:49,750 --> 02:02:52,050 y os dije, hombre, no es 2751 02:02:52,050 --> 02:02:53,770 muy habitual usar en Internet de las cosas 2752 02:02:53,770 --> 02:02:56,090 HTTP, se usa por conveniencia 2753 02:02:56,090 --> 02:02:57,569 porque estamos muy acostumbrados 2754 02:02:57,569 --> 02:03:00,250 todos conocéis ese protocolo y nos resulta familiar 2755 02:03:00,250 --> 02:03:03,010 pero en Internet de las Cosas es más habitual 2756 02:03:03,010 --> 02:03:05,250 utilizar un protocolo que se llama MQTT 2757 02:03:05,250 --> 02:03:09,090 voy a dar unas nociones sobre MQTT 2758 02:03:09,090 --> 02:03:11,550 e inmediatamente vamos a pasar a utilizarlo 2759 02:03:11,550 --> 02:03:14,789 MQTT es simplemente un protocolo de aplicación más 2760 02:03:14,789 --> 02:03:17,890 igual que tenemos HTTP, FTP u otros 2761 02:03:17,890 --> 02:03:19,550 pues hay uno que se llama MQTT 2762 02:03:19,550 --> 02:03:24,090 es un protocolo bastante antiguo que ya se diseñó en su momento 2763 02:03:24,090 --> 02:03:26,029 para transmitir 2764 02:03:26,029 --> 02:03:27,649 información entre máquinas 2765 02:03:27,649 --> 02:03:29,630 o sea, información que en principio 2766 02:03:29,630 --> 02:03:31,090 no estaba destinada a personas 2767 02:03:31,090 --> 02:03:33,489 entonces es un protocolo mucho menos 2768 02:03:33,489 --> 02:03:34,729 verboso que HTTP 2769 02:03:34,729 --> 02:03:37,270 ¿y cómo funciona? pues funciona 2770 02:03:37,270 --> 02:03:38,810 fijaos en el gráfico de la derecha 2771 02:03:38,810 --> 02:03:41,590 lo que tenemos es un elemento 2772 02:03:41,590 --> 02:03:43,289 central, que es el broker 2773 02:03:43,289 --> 02:03:45,329 MQTT, ¿vale? el broker es simplemente 2774 02:03:45,329 --> 02:03:47,489 un despachador, es como una oficina 2775 02:03:47,489 --> 02:03:49,350 de correos, a esa oficina 2776 02:03:49,350 --> 02:03:51,090 de correos le llegan 2777 02:03:51,090 --> 02:03:51,789 mensajes 2778 02:03:51,789 --> 02:03:55,409 y esta oficina de correo despacha 2779 02:03:55,409 --> 02:03:58,390 esos mensajes. Entonces, ¿cómo le llegan 2780 02:03:58,390 --> 02:04:01,289 los mensajes? Pues le llegan porque otros dispositivos 2781 02:04:01,289 --> 02:04:03,649 o otros ordenadores o otras motas 2782 02:04:03,649 --> 02:04:07,369 publican en ese broker. ¿Veis? Yo aquí, por ejemplo, 2783 02:04:07,590 --> 02:04:10,210 tengo un automóvil que está publicando 2784 02:04:10,210 --> 02:04:13,289 su velocidad en el broker y a su vez 2785 02:04:13,289 --> 02:04:15,569 tengo un teléfono móvil, ¿vale? 2786 02:04:15,789 --> 02:04:18,810 Y un servidor que están suscritos 2787 02:04:18,810 --> 02:04:21,029 a esa información 2788 02:04:21,029 --> 02:04:22,710 con lo cual el automóvil 2789 02:04:22,710 --> 02:04:24,430 publica en el broker 2790 02:04:24,430 --> 02:04:26,890 y el móvil y el servidor 2791 02:04:26,890 --> 02:04:28,869 como están suscritos reciben 2792 02:04:28,869 --> 02:04:31,250 automáticamente la velocidad 2793 02:04:31,250 --> 02:04:32,210 de ese automóvil 2794 02:04:32,210 --> 02:04:35,270 por eso esto se llama un protocolo de publicación 2795 02:04:35,270 --> 02:04:36,390 suscripción 2796 02:04:36,390 --> 02:04:38,010 ventajas 2797 02:04:38,010 --> 02:04:39,829 es súper ligero 2798 02:04:39,829 --> 02:04:42,909 MQTT a diferencia del HTTP 2799 02:04:42,909 --> 02:04:44,770 es mucho más ligero 2800 02:04:44,770 --> 02:04:46,689 y apenas consume ancho de banda 2801 02:04:46,689 --> 02:04:49,229 por lo que os decía, porque es muy poco verboso 2802 02:04:49,229 --> 02:04:52,890 entonces se suele decir que MQTT produce un desacoplamiento 2803 02:04:52,890 --> 02:04:56,069 a tres niveles, el primero es un desacoplamiento 2804 02:04:56,069 --> 02:04:58,590 en el espacio, ¿por qué? porque 2805 02:04:58,590 --> 02:05:02,350 el móvil no necesita saber la dirección IP 2806 02:05:02,350 --> 02:05:04,989 del automóvil para acceder a la información del automóvil 2807 02:05:04,989 --> 02:05:08,050 solamente necesitan, todos los elementos 2808 02:05:08,050 --> 02:05:11,090 que intervienen, solo necesitan conocer la dirección IP 2809 02:05:11,090 --> 02:05:14,090 del broker, entonces esto es un 2810 02:05:14,090 --> 02:05:15,829 desacoplamiento en el espacio, porque veis 2811 02:05:15,829 --> 02:05:17,810 aquí podría aparecer otro suscriptor 2812 02:05:17,810 --> 02:05:19,210 suscribirse a esa información 2813 02:05:19,210 --> 02:05:21,930 sin tener que conocer nada del 2814 02:05:21,930 --> 02:05:23,970 automóvil, ¿vale? ese es el primer 2815 02:05:23,970 --> 02:05:25,729 desacoplamiento en el espacio 2816 02:05:25,729 --> 02:05:28,189 luego es en el tiempo, ¿por qué? 2817 02:05:29,050 --> 02:05:30,029 porque por ejemplo el móvil 2818 02:05:30,029 --> 02:05:31,270 podría estar apagado 2819 02:05:31,270 --> 02:05:33,829 el automóvil estar publicando 2820 02:05:33,829 --> 02:05:36,130 sus velocidades y cuando el teléfono 2821 02:05:36,130 --> 02:05:37,550 móvil se active 2822 02:05:37,550 --> 02:05:40,090 podría descargar todas esas velocidades 2823 02:05:40,090 --> 02:05:41,930 del broker, ¿vale? pues entonces 2824 02:05:41,930 --> 02:05:43,430 tenemos un desacoplamiento 2825 02:05:43,430 --> 02:05:45,510 en el espacio, en el tiempo 2826 02:05:45,510 --> 02:05:47,949 y por último tenemos un desacoplamiento 2827 02:05:47,949 --> 02:05:50,050 más difícil de entender que es el desacoplamiento 2828 02:05:50,050 --> 02:05:52,250 asíncrono, os decía antes 2829 02:05:52,250 --> 02:05:53,949 MQTT es tan ligero 2830 02:05:53,949 --> 02:05:54,829 que yo lo puedo 2831 02:05:54,829 --> 02:05:57,710 incluir por ejemplo en un SP32 2832 02:05:57,710 --> 02:05:58,949 como el que usamos el otro día 2833 02:05:58,949 --> 02:06:02,090 sin que suponga para ese SP32 2834 02:06:02,090 --> 02:06:04,149 una carga grande, es decir, el SP32 2835 02:06:04,149 --> 02:06:05,829 va a poder tener toda su 2836 02:06:05,829 --> 02:06:08,069 funcionalidad, la que sea leer sensores, actuadores 2837 02:06:08,069 --> 02:06:09,930 o lo que sea, y la carga 2838 02:06:09,930 --> 02:06:12,390 que le supone publicar o suscribirse 2839 02:06:12,390 --> 02:06:17,890 un bróker MQTT es mínima, es decir, apenas vamos a encontrar pausas en el funcionamiento 2840 02:06:17,890 --> 02:06:22,869 normal del microcontrolador para atender el bróker MQTT. Por eso se dice también que 2841 02:06:22,869 --> 02:06:30,489 produce un desacoplamiento de sincronía. Entonces, ¿cómo se publica y se suscribe 2842 02:06:30,489 --> 02:06:36,569 a la información un bróker MQTT? Mediante buzones. Este automóvil publica un buzón 2843 02:06:36,569 --> 02:06:41,350 y estos dispositivos se suscriben a ese buzón, con lo cual toda la información que entre 2844 02:06:41,350 --> 02:06:43,250 en ese buzón va a ser 2845 02:06:43,250 --> 02:06:45,550 recibida por todos los suscriptores de ese buzón 2846 02:06:45,550 --> 02:06:47,470 en la terminología MQTT 2847 02:06:47,470 --> 02:06:49,470 no se llaman buzones, se llaman 2848 02:06:49,470 --> 02:06:50,270 topics 2849 02:06:50,270 --> 02:06:53,289 y los topics tienen este aspecto 2850 02:06:53,289 --> 02:06:54,430 que estáis viendo aquí abajo 2851 02:06:54,430 --> 02:06:57,609 simplemente son como rutas de archivos, por así decirlo 2852 02:06:57,609 --> 02:06:58,989 veis que aquí tengo un topic 2853 02:06:58,989 --> 02:07:01,229 de primer nivel, que sería mi casa 2854 02:07:01,229 --> 02:07:03,609 que tiene a su vez un subtopic 2855 02:07:03,609 --> 02:07:05,189 que se llama planta baja 2856 02:07:05,189 --> 02:07:07,350 que tiene otro subtopic que se llama 2857 02:07:07,350 --> 02:07:09,510 salón, que tiene otro subtopic 2858 02:07:09,510 --> 02:07:11,390 que se llama temperatura, esto que sería 2859 02:07:11,390 --> 02:07:13,470 el sensor de temperatura del salón 2860 02:07:13,470 --> 02:07:14,810 de la planta baja de mi casa 2861 02:07:14,810 --> 02:07:17,250 y veis que el separador que se utiliza 2862 02:07:17,250 --> 02:07:18,670 es la barra 2863 02:07:18,670 --> 02:07:21,949 ¿vale? pues además de utilizar 2864 02:07:21,949 --> 02:07:23,449 estos topics 2865 02:07:23,449 --> 02:07:25,649 podemos utilizar también metacaracteres 2866 02:07:25,649 --> 02:07:26,909 por ejemplo 2867 02:07:26,909 --> 02:07:29,470 en un topic MQTT si ponemos 2868 02:07:29,470 --> 02:07:31,149 el signo más, quiere decir 2869 02:07:31,149 --> 02:07:33,310 cualquier valor, es decir 2870 02:07:33,310 --> 02:07:35,670 que aquí estoy viendo los sensores 2871 02:07:35,670 --> 02:07:37,930 de temperatura de cualquier 2872 02:07:37,930 --> 02:07:40,010 habitación de la planta baja 2873 02:07:40,010 --> 02:07:40,750 de mi casa 2874 02:07:40,750 --> 02:07:43,949 ¿veis? eso es lo que significa el signo más 2875 02:07:43,949 --> 02:07:46,069 los sensores 2876 02:07:46,069 --> 02:07:48,390 de temperatura de cualquier estancia 2877 02:07:48,390 --> 02:07:50,270 de la planta baja de mi casa 2878 02:07:50,270 --> 02:07:52,250 y el otro metacarácter 2879 02:07:52,250 --> 02:07:53,909 que podemos utilizar es la almohadilla 2880 02:07:53,909 --> 02:07:56,069 que quiere decir todos los 2881 02:07:56,069 --> 02:07:58,130 subniveles a partir de aquí ¿vale? la almohadilla 2882 02:07:58,130 --> 02:07:59,989 siempre tiene que ser el último, no puede 2883 02:07:59,989 --> 02:08:01,390 haber nada detrás de la almohadilla 2884 02:08:01,390 --> 02:08:03,029 esto querría decir 2885 02:08:03,029 --> 02:08:06,189 todos los sensores, sean de temperatura 2886 02:08:06,189 --> 02:08:07,470 o de cualquier otra cosa 2887 02:08:07,470 --> 02:08:09,810 de todas las estancias 2888 02:08:09,810 --> 02:08:11,869 sea el living room o cualquier otro 2889 02:08:11,869 --> 02:08:13,630 de la planta baja de mi casa 2890 02:08:13,630 --> 02:08:15,130 ¿se entiende? 2891 02:08:16,829 --> 02:08:17,390 los 2892 02:08:17,390 --> 02:08:19,949 topics se separan con barras 2893 02:08:19,949 --> 02:08:21,949 el signo más indica 2894 02:08:21,949 --> 02:08:22,550 cualquiera 2895 02:08:22,550 --> 02:08:25,750 y el signo amarillo significa 2896 02:08:25,750 --> 02:08:27,489 cualquier subnivel 2897 02:08:27,489 --> 02:08:29,050 todos los subniveles a partir de aquí 2898 02:08:29,050 --> 02:08:31,869 bueno, pues esto es lo básico 2899 02:08:31,869 --> 02:08:33,770 de MQTT, luego tiene otros detalles que son 2900 02:08:33,770 --> 02:08:35,569 muy interesantes como la garantía de servicio 2901 02:08:35,569 --> 02:08:36,489 no voy a entrar en esto 2902 02:08:36,489 --> 02:08:39,689 básicamente es que hay garantía de servicio 0, 1 o 2 2903 02:08:39,689 --> 02:08:41,170 esto que quiere decir 2904 02:08:41,170 --> 02:08:43,189 que tú puedes utilizar MQTT 2905 02:08:43,189 --> 02:08:45,229 con QoS Quality of Service 2906 02:08:45,229 --> 02:08:46,250 0, 1 o 2 2907 02:08:46,250 --> 02:08:49,289 Quality of Service 0 es disparar y olvidar 2908 02:08:49,289 --> 02:08:51,170 es decir, el cliente 2909 02:08:51,170 --> 02:08:53,409 envía la información 2910 02:08:53,409 --> 02:08:54,510 publica en el broker 2911 02:08:54,510 --> 02:08:55,829 ¿vale? 2912 02:08:57,329 --> 02:08:58,649 y se olvida 2913 02:08:58,649 --> 02:09:01,170 el destinatario 2914 02:09:01,170 --> 02:09:02,109 no hace ACK 2915 02:09:02,109 --> 02:09:05,329 entonces lo que sabemos con esto 2916 02:09:05,329 --> 02:09:08,090 es que el paquete se va a publicar 2917 02:09:08,090 --> 02:09:10,029 pero puede ocurrir que se publique varias veces 2918 02:09:10,029 --> 02:09:11,729 entonces para evitar eso 2919 02:09:11,729 --> 02:09:14,069 o que no se publique ninguna, esto podría 2920 02:09:14,069 --> 02:09:16,010 estar caído y perderse 2921 02:09:16,010 --> 02:09:18,149 alguna de estas comunicaciones, entonces esta calidad 2922 02:09:18,149 --> 02:09:19,430 de servicio ¿para qué se usa? 2923 02:09:19,850 --> 02:09:22,069 por ejemplo, tú tienes un sensor de temperatura que está 2924 02:09:22,069 --> 02:09:24,470 enviando cada 5 minutos 2925 02:09:24,470 --> 02:09:26,069 pues oye, porque se pierda 2926 02:09:26,069 --> 02:09:27,689 alguna medición, no pasa nada 2927 02:09:27,689 --> 02:09:29,989 si es una vivienda, claro, si es un dispositivo 2928 02:09:29,989 --> 02:09:31,890 crítico, no, entonces usa 2929 02:09:31,890 --> 02:09:33,949 calidad de servicio cero, ¿por qué? porque es la 2930 02:09:33,949 --> 02:09:39,390 más rápida la que menos recursos consume pero si tú tienes que tener la certeza de que no se pierde 2931 02:09:39,390 --> 02:09:46,210 ninguna medida entonces puedes utilizar calidad de servicio 1 eso es lo que se llama al menos una vez 2932 02:09:46,210 --> 02:09:51,210 es decir tienes la certeza de que todo lo que publiques se va a recibir en el broker pero 2933 02:09:51,210 --> 02:09:56,329 tienes el inconveniente de que se puede recibir duplicado si por el motivo que fuera no quieres 2934 02:09:56,329 --> 02:10:01,189 que se reciban mensajes duplicados ya tienes que ir a calidad de servicio 2 que es la de exactamente 2935 02:10:01,189 --> 02:10:03,289 una vez, el problema que tiene esto 2936 02:10:03,289 --> 02:10:05,529 es que ya se vuelve bastante más pesado el protocolo 2937 02:10:05,529 --> 02:10:06,609 entonces lo habitual 2938 02:10:06,609 --> 02:10:09,250 es utilizar una garantía de servicio 0 2939 02:10:09,250 --> 02:10:10,890 o 1, en la mayoría de los casos 2940 02:10:10,890 --> 02:10:12,829 ¿vale? entonces 2941 02:10:12,829 --> 02:10:14,609 lo que vamos a hacer ahora 2942 02:10:14,609 --> 02:10:17,510 es ver cómo podemos enviar paquetes 2943 02:10:17,510 --> 02:10:19,189 a un broker MQTT, cómo podemos 2944 02:10:19,189 --> 02:10:21,229 mandar la información, y para eso 2945 02:10:21,229 --> 02:10:23,289 tenemos que entender lo que hemos hecho 2946 02:10:23,289 --> 02:10:24,649 con el stack IoT 2947 02:10:24,649 --> 02:10:27,270 nosotros lo que hemos hecho en un stack es instalar 2948 02:10:27,270 --> 02:10:29,090 varios contenedores, influx de red 2949 02:10:29,090 --> 02:10:30,930 no de red, grafana, ¿vale? 2950 02:10:31,189 --> 02:10:53,250 Y todos esos contenedores, por estar dentro de un stack, comparten una red propia. Y esa red cuenta con un servidor DNS de nombres de dominio. Entonces, unos pueden referirse a otros desde no de red. Yo, por ejemplo, puedo hacer alusión a Mosquito simplemente escribiendo el nombre de Mosquito. 2951 02:10:53,250 --> 02:10:56,289 o sea, no tengo que saber en qué dirección IP está Mosquito 2952 02:10:56,289 --> 02:10:59,329 ni nada por el estilo, simplemente escribo Mosquito 2953 02:10:59,329 --> 02:11:02,869 y ya tengo acceso al broker de Mosquito 2954 02:11:02,869 --> 02:11:05,649 entonces vamos a hacer este ejercicio que os muestro en pantalla 2955 02:11:05,649 --> 02:11:07,010 y ahora lo voy a hacer paso a paso 2956 02:11:07,010 --> 02:11:10,029 yo aquí lo que hago es con un inyector 2957 02:11:10,029 --> 02:11:14,430 en vez de inyectar la fecha y la hora, voy a inyectar cualquier información 2958 02:11:14,430 --> 02:11:16,310 por ejemplo, voy a inyectar una temperatura 2959 02:11:16,310 --> 02:11:19,090 la inyecto, sale por el cable 2960 02:11:19,090 --> 02:11:22,130 y esto es un nodo de publicación MQTT 2961 02:11:22,130 --> 02:11:24,350 que lo que va a hacer es publicar esa información 2962 02:11:24,350 --> 02:11:26,590 que le llega en el topic televisión 2963 02:11:26,590 --> 02:11:28,430 del salón de la casa 2964 02:11:28,430 --> 02:11:29,949 en mosquito 2965 02:11:29,949 --> 02:11:31,890 ¿vale? veis que aparece aquí esto verde 2966 02:11:31,890 --> 02:11:34,229 eso quiere decir que ya tenemos nodo de red conectado 2967 02:11:34,229 --> 02:11:34,829 con mosquito 2968 02:11:34,829 --> 02:11:38,489 y a la vez voy a tener aquí otro nodo 2969 02:11:38,489 --> 02:11:40,229 de mosquito que va a estar suscrito 2970 02:11:40,229 --> 02:11:42,149 a cualquier cosa que entra a mi casa 2971 02:11:42,149 --> 02:11:44,649 sea el salón, sea la televisión 2972 02:11:44,649 --> 02:11:45,689 o sea cualquier otra cosa 2973 02:11:45,689 --> 02:11:48,170 y me lo va a mostrar en el panel de depuración 2974 02:11:48,170 --> 02:11:48,750 ¿vale? 2975 02:11:48,750 --> 02:11:50,689 entonces 2976 02:11:50,689 --> 02:11:53,510 voy a montar esto en Node.js 2977 02:11:53,510 --> 02:11:54,810 para que veáis como se hace 2978 02:11:54,810 --> 02:11:56,850 me vengo a Node.js 2979 02:11:56,850 --> 02:11:59,729 yo a mi flujo le voy a cambiar 2980 02:11:59,729 --> 02:12:00,270 el nombre 2981 02:12:00,270 --> 02:12:03,670 para no confundirlo con el de los compañeros 2982 02:12:03,670 --> 02:12:04,750 que están compartiendo 2983 02:12:04,750 --> 02:12:07,829 estamos compartiendo 2984 02:12:07,829 --> 02:12:09,130 la misma instancia ¿vale? 2985 02:12:10,090 --> 02:12:11,210 entonces hago 2986 02:12:11,210 --> 02:12:13,149 un inyector 2987 02:12:13,149 --> 02:12:16,069 y este inyector que antes no lo he configurado 2988 02:12:16,069 --> 02:12:18,010 si lo quisiera configurar tengo que hacer 2989 02:12:18,010 --> 02:12:19,289 doble clic sobre él 2990 02:12:19,289 --> 02:12:21,689 ¿vale? y veis que por defecto 2991 02:12:21,689 --> 02:12:23,369 está inyectando 2992 02:12:23,369 --> 02:12:26,170 los milisegundos que han transcurrido 2993 02:12:26,170 --> 02:12:26,989 desde la época 2994 02:12:26,989 --> 02:12:29,029 yunis 2995 02:12:29,029 --> 02:12:31,970 pues en lugar de eso, yo podría mandarle 2996 02:12:31,970 --> 02:12:33,909 por ejemplo un objeto json, un booleano 2997 02:12:33,909 --> 02:12:35,989 o lo que yo quisiera, vamos a suponer que le quiero mandar 2998 02:12:35,989 --> 02:12:38,170 un json, que va a ser por ejemplo 2999 02:12:38,170 --> 02:12:40,470 temperatura 3000 02:12:40,470 --> 02:12:43,640 2.25 3001 02:12:44,399 --> 02:12:45,439 ¿vale? 3002 02:12:46,060 --> 02:12:47,319 lo podéis hacer así 3003 02:12:47,319 --> 02:12:49,979 o veis que tiene un editor incluso más bonito 3004 02:12:49,979 --> 02:12:52,500 o incluso un editor visual, lo que tú prefieras. 3005 02:12:52,859 --> 02:12:54,159 ¿Qué no os queréis complicar? 3006 02:12:54,279 --> 02:12:56,399 Pues no os compliquéis, si le mandáis simplemente un texto, 3007 02:12:56,539 --> 02:12:58,380 me llamo fulanito o lo que tú quieras. 3008 02:12:59,760 --> 02:13:01,819 Os llamo la atención ahora aquí sobre una cosa. 3009 02:13:02,159 --> 02:13:05,840 Yo os he dicho que cuando pulsemos el iconito del inyector 3010 02:13:05,840 --> 02:13:08,180 va a salir información por el cable 3011 02:13:08,180 --> 02:13:11,500 y esa información se inyecta en varios objetos. 3012 02:13:11,859 --> 02:13:14,619 Tenemos un objeto principal que es el objeto missave, 3013 02:13:14,619 --> 02:13:17,380 el objeto mensaje, que tiene propiedades 3014 02:13:17,380 --> 02:13:18,880 una carga de pago y un topic 3015 02:13:18,880 --> 02:13:21,220 hoy solo vamos a usar la carga 3016 02:13:21,220 --> 02:13:23,199 de pago, pero habrá algún módulo que nos obliga 3017 02:13:23,199 --> 02:13:25,380 a usar el topic, de momento usamos la carga de pago 3018 02:13:25,380 --> 02:13:26,739 pulso hecho 3019 02:13:26,739 --> 02:13:29,180 yo habiendo hecho esto, ¿qué ocurre? 3020 02:13:29,239 --> 02:13:30,840 pues fijaos, si lo engancho aquí al debug 3021 02:13:30,840 --> 02:13:32,300 y instancio 3022 02:13:32,300 --> 02:13:35,279 si pulso aquí, ¿veis que aparece? 3023 02:13:35,439 --> 02:13:37,039 temperatura 25, bueno 3024 02:13:37,039 --> 02:13:39,199 pues ya está, ahora ¿qué voy a hacer? 3025 02:13:39,380 --> 02:13:40,760 publicarlo en el broker MQTT 3026 02:13:40,760 --> 02:13:42,640 ¿lo vamos haciendo esto, Juan Félix? 3027 02:13:42,640 --> 02:13:43,279 ¿cómo? 3028 02:13:43,699 --> 02:13:45,020 ¿vamos haciendo esto al mismo tiempo? 3029 02:13:45,199 --> 02:13:47,340 sí, sí, sí, esto lo tenéis que ir haciendo a la vez 3030 02:13:47,340 --> 02:13:49,619 espero un poco si queréis 3031 02:13:49,619 --> 02:13:51,420 para que os pongáis a la vez 3032 02:13:51,420 --> 02:13:52,220 yo creo que sí 3033 02:13:52,220 --> 02:14:15,220 el objeto es un JSON, ¿no? 3034 02:14:15,800 --> 02:14:16,880 sí, yo he puesto un JSON 3035 02:14:16,880 --> 02:14:18,319 pero vamos, si no os queréis complicar 3036 02:14:18,319 --> 02:14:20,800 pues cogéis un texto o un número y mandáis cualquier cosa 3037 02:14:20,800 --> 02:14:22,199 que no tiene importancia ahora mismo 3038 02:14:22,199 --> 02:14:28,170 entre comillas lo de temperatura 3039 02:14:28,170 --> 02:14:29,770 sí 3040 02:14:29,770 --> 02:14:31,869 en JSON siempre 3041 02:14:31,869 --> 02:14:33,710 la clave va entre comillas 3042 02:14:56,960 --> 02:15:02,220 ahora lo que os decía, en la paleta vais bajando 3043 02:15:02,220 --> 02:15:04,600 hasta la sección de red, y veis que tenéis 3044 02:15:04,600 --> 02:15:07,340 de MQTT hay dos, el primero que es 3045 02:15:07,340 --> 02:15:10,640 para suscribirse, y el segundo que es 3046 02:15:10,640 --> 02:15:13,159 para lo que yo quiero hacer en este caso, que es para publicar 3047 02:15:13,159 --> 02:15:16,939 entonces fijaos que aquí ocurre algo que no habíamos visto hasta ahora 3048 02:15:16,939 --> 02:15:19,199 cuando lo coloco en la zona central 3049 02:15:19,199 --> 02:15:22,859 además del punto azul que me indica que todavía 3050 02:15:22,859 --> 02:15:25,539 no he puesto en funcionamiento este nodo, me aparece 3051 02:15:25,539 --> 02:15:29,439 un triángulo rojo. El triángulo rojo indica que ese nodo 3052 02:15:29,439 --> 02:15:33,500 requiere una configuración adicional. Es decir, no basta con pulsar instancial 3053 02:15:33,500 --> 02:15:37,500 para que funcione. Si pulso instancial me va a dar un error. Necesito 3054 02:15:37,500 --> 02:15:41,539 configurar algo en este nodo. Entonces, para ver qué es lo que tengo que configurar 3055 02:15:41,539 --> 02:15:48,140 hago doble clic sobre él. Y claro, evidentemente lo que me está 3056 02:15:48,140 --> 02:15:51,880 pidiendo configurar, veis que aparece marcado en rojo, es 3057 02:15:51,880 --> 02:15:56,420 oye, tú quieres publicar, pero dime en qué broker MQTT quieres publicar. 3058 02:15:56,420 --> 02:15:59,680 y aquí viene la magia 3059 02:15:59,680 --> 02:16:01,359 de lo que hemos hecho con Jotestack 3060 02:16:01,359 --> 02:16:03,659 y es que vamos a poder desde Node.js 3061 02:16:03,659 --> 02:16:05,640 hacer referencia 3062 02:16:05,640 --> 02:16:07,520 a Mosquito simplemente 3063 02:16:07,520 --> 02:16:08,619 utilizando su nombre 3064 02:16:08,619 --> 02:16:11,579 entonces lo que voy a hacer aquí donde pone servidor 3065 02:16:11,579 --> 02:16:15,140 es hacer clic en el signo más 3066 02:16:15,140 --> 02:16:18,189 y crear 3067 02:16:18,189 --> 02:16:20,489 una conexión 3068 02:16:20,489 --> 02:16:23,029 a un broker Mosquito que la voy a llamar 3069 02:16:23,029 --> 02:16:24,989 MosquitoJF para que los compañeros 3070 02:16:24,989 --> 02:16:27,569 si quieren puedan hacerlo con sus propias iniciales 3071 02:16:27,569 --> 02:16:29,770 y veis lo bonito está aquí 3072 02:16:29,770 --> 02:16:31,090 ahora cuando me pide el servidor 3073 02:16:31,090 --> 02:16:33,750 yo no tengo que poner ninguna dirección IP 3074 02:16:33,750 --> 02:16:35,370 simplemente tengo que escribir 3075 02:16:35,370 --> 02:16:36,110 mosquito 3076 02:16:36,110 --> 02:16:37,930 y ya está 3077 02:16:37,930 --> 02:16:43,719 mosquito es con doble T 3078 02:16:43,719 --> 02:16:44,620 mosquito 3079 02:16:44,620 --> 02:16:46,319 de MQTT 3080 02:16:46,319 --> 02:16:49,260 todo en minúsculas 3081 02:16:49,260 --> 02:16:50,219 eso sí es muy importante 3082 02:16:50,219 --> 02:16:54,120 bien, mientras hacéis esto 3083 02:16:54,120 --> 02:16:55,379 os voy enseñando algo 3084 02:16:55,379 --> 02:16:57,819 si yo voy al terminal 3085 02:16:57,819 --> 02:16:59,559 vais a ver que ahí en el terminal 3086 02:16:59,559 --> 02:17:03,260 tenemos precisamente ese archivo docker-compose-yml 3087 02:17:03,260 --> 02:17:06,159 que nos ha creado el menú de IoT Stack. 3088 02:17:06,360 --> 02:17:08,260 Si accedo a él, para que lo veáis, 3089 02:17:09,979 --> 02:17:11,059 fijaos lo que tenemos aquí. 3090 02:17:11,819 --> 02:17:14,579 Esto es todo lo que nos ha ahorrado IoT Stack. 3091 02:17:14,760 --> 02:17:15,979 Tener que escribir todo esto. 3092 02:17:17,200 --> 02:17:18,680 Y no solamente tener que escribirlo, 3093 02:17:18,760 --> 02:17:20,200 sino saber lo que hay que escribir. 3094 02:17:20,520 --> 02:17:23,860 Hay veces que algunos de estos programas 3095 02:17:23,860 --> 02:17:26,239 entran en conflicto entre ellos, 3096 02:17:26,379 --> 02:17:28,139 tienen variables de entorno, como veis aquí. 3097 02:17:28,139 --> 02:17:30,700 pues todo esto nos lo ha hecho automáticamente 3098 02:17:30,700 --> 02:17:32,639 el IOT stack 3099 02:17:32,639 --> 02:17:33,979 ¿y por qué es en minúscula? 3100 02:17:34,020 --> 02:17:35,659 que me preguntaba el compañero 3101 02:17:35,659 --> 02:17:38,600 porque tiene que ser exactamente como está escrito aquí 3102 02:17:38,600 --> 02:17:39,239 el servicio 3103 02:17:39,239 --> 02:17:42,280 ¿veis que aquí está escrito el servicio mosquito en minúscula? 3104 02:17:42,540 --> 02:17:44,260 pues eso es lo que tenemos que poner nosotros 3105 02:17:44,260 --> 02:17:46,559 cuando luego usemos influxdb 3106 02:17:46,559 --> 02:17:48,639 pues igual, todo en minúscula, sin guiones 3107 02:17:48,639 --> 02:17:49,239 ni nada 3108 02:17:49,239 --> 02:17:49,620 ¿vale? 3109 02:17:56,139 --> 02:17:59,219 pues ya tengo ahí mosquito incluido 3110 02:17:59,219 --> 02:18:00,959 pulso añadir 3111 02:18:00,959 --> 02:18:04,399 y ahora me dice, muy bien, ya que me has dicho en qué servidor 3112 02:18:04,399 --> 02:18:06,379 quieres publicar, por favor dime ahora 3113 02:18:06,379 --> 02:18:09,659 en qué topic, pues yo que sé, como es una temperatura 3114 02:18:09,659 --> 02:18:11,920 pues lo voy a publicar, por ejemplo, en casa 3115 02:18:11,920 --> 02:18:15,079 vamos a poner salón 3116 02:18:15,079 --> 02:18:18,680 o mejor, venga 3117 02:18:18,680 --> 02:18:21,299 como el ejemplo, planta baja 3118 02:18:21,299 --> 02:18:26,379 salón, y veis aquí viene lo de 3119 02:18:26,379 --> 02:18:29,299 la calidad de servicio que os decía, aquí puedes poner calidad de servicio 3120 02:18:29,299 --> 02:18:32,540 0, 1 o 2, lo puedo dar con calidad de servicio 0 3121 02:18:32,540 --> 02:18:43,090 por ejemplo, y pulso hecho, ahora ya solamente me falta 3122 02:18:43,090 --> 02:18:46,889 unir este inyector con este publicador 3123 02:18:46,889 --> 02:18:52,600 pero claro, ¿cómo sé yo si esto funciona? pues para saber si 3124 02:18:52,600 --> 02:18:56,280 funciona, lo que voy a hacer a su vez es crearme un suscriptor 3125 02:18:56,280 --> 02:19:02,649 para crearme el suscriptor, cojo un bloque MQTT 3126 02:19:02,649 --> 02:19:07,639 y veis que nuevamente me aparece el triángulo rojo 3127 02:19:07,639 --> 02:19:12,620 si hago doble clic, pues veo que evidentemente ese triángulo 3128 02:19:12,620 --> 02:19:14,540 rojo aparece porque me dice, oye, ¿a qué 3129 02:19:14,540 --> 02:19:16,659 broker te quieres conectar? al broker 3130 02:19:16,659 --> 02:19:18,940 que he creado antes, al broker MosquitoJF 3131 02:19:18,940 --> 02:19:20,600 ¿y a qué topic 3132 02:19:20,600 --> 02:19:22,799 te quieres suscribir? 3133 02:19:22,879 --> 02:19:24,600 pues me voy a suscribir a todos los 3134 02:19:24,600 --> 02:19:25,739 que dependan de mi casa 3135 02:19:25,739 --> 02:19:28,659 casa, barra 3136 02:19:28,659 --> 02:19:30,180 almohadilla 3137 02:19:30,180 --> 02:19:32,500 igual, calidad 3138 02:19:32,500 --> 02:19:34,420 de servicio, pues la que tú quieras y demás 3139 02:19:34,420 --> 02:19:38,500 vale, pues ahora ya directamente 3140 02:19:38,500 --> 02:19:40,680 podría enchufarlo aquí 3141 02:19:40,680 --> 02:19:42,500 al depurador 3142 02:19:42,500 --> 02:19:47,260 y si no queréis andar con tantos cables por ahí 3143 02:19:47,260 --> 02:19:49,940 pues simplemente podéis crear también otro depurador nuevo 3144 02:19:49,940 --> 02:19:50,600 no pasa nada 3145 02:19:50,600 --> 02:19:54,469 lo voy a instanciar 3146 02:19:54,469 --> 02:20:00,360 voy a borrar todo lo que tengo en la ventana de terminal 3147 02:20:00,360 --> 02:20:01,739 para que veáis lo que entra nuevo 3148 02:20:01,739 --> 02:20:03,860 bueno, lo primero que ya es mágico 3149 02:20:03,860 --> 02:20:05,819 es que como veis automáticamente en OdeRed 3150 02:20:05,819 --> 02:20:07,219 ya se ha conectado a Mosquito 3151 02:20:07,219 --> 02:20:09,700 inmediatamente me aparece aquí de enfajo 3152 02:20:09,700 --> 02:20:10,680 conectado 3153 02:20:10,680 --> 02:20:13,260 ahora voy a inyectar por aquí la temperatura 3154 02:20:13,260 --> 02:20:14,520 la inyecto 3155 02:20:14,520 --> 02:20:16,600 llega el broker MQTT 3156 02:20:16,600 --> 02:20:19,200 y como resulta 3157 02:20:19,200 --> 02:20:21,379 que el propio Node.Ref está suscrito 3158 02:20:21,379 --> 02:20:22,819 a ese broker 3159 02:20:22,819 --> 02:20:24,959 y a todos los subtopics 3160 02:20:24,959 --> 02:20:26,040 que dependan de casa 3161 02:20:26,040 --> 02:20:28,780 veis que aquí automáticamente me está diciendo 3162 02:20:28,780 --> 02:20:30,639 oye, se ha recibido 3163 02:20:30,639 --> 02:20:32,840 temperatura 25 en el 3164 02:20:32,840 --> 02:20:34,979 topic casa, planta baja, salón 3165 02:20:34,979 --> 02:20:52,120 ¿hay alguien ahí o estáis todos 3166 02:20:52,120 --> 02:20:52,959 llorando de alegría? 3167 02:20:53,760 --> 02:20:54,319 no sé 3168 02:20:54,319 --> 02:20:56,899 estamos ahí 3169 02:20:56,899 --> 02:20:58,739 estar estamos 3170 02:20:58,739 --> 02:21:03,739 yo sé que es un esfuerzo 3171 02:21:03,739 --> 02:21:05,059 pero de verdad que merece la pena 3172 02:21:05,059 --> 02:21:07,760 lo que acabamos de hacer es un paso impresionante 3173 02:21:07,760 --> 02:21:08,479 porque daos cuenta 3174 02:21:08,479 --> 02:21:10,799 ahora mismo lo que estamos viendo 3175 02:21:10,799 --> 02:21:13,559 es que yo podría publicar en un ordenador 3176 02:21:13,559 --> 02:21:15,659 y en vez de hacer esta tontería de ponerlo 3177 02:21:15,659 --> 02:21:16,440 aquí en un depurador 3178 02:21:16,440 --> 02:21:19,760 esto podría encender un ventilador 3179 02:21:19,760 --> 02:21:21,760 o sea igual que he puesto aquí esto de debug2 3180 02:21:21,760 --> 02:21:23,520 si esto fuera una Raspberry Pi 3181 02:21:23,520 --> 02:21:25,860 yo podría tener aquí los pines de la Raspberry Pi 3182 02:21:25,860 --> 02:21:27,719 y decir que este comando 3183 02:21:27,719 --> 02:21:30,239 encienda este pin o haga lo que tenga que hacer 3184 02:21:30,239 --> 02:21:31,639 ¿vale? entonces 3185 02:21:31,639 --> 02:21:33,840 es un paso grande 3186 02:21:33,840 --> 02:21:35,899 y sin apenas haber programado 3187 02:21:35,899 --> 02:21:37,959 nada, como veis es básicamente arrastrar 3188 02:21:37,959 --> 02:21:39,680 unos cuantos nodos aquí 3189 02:21:39,680 --> 02:21:47,110 de hecho 3190 02:21:47,110 --> 02:21:49,829 aquí tenéis uno, por ejemplo, cuando este curso 3191 02:21:49,829 --> 02:21:51,569 lo hacemos con Raspberry Pi, pues veis 3192 02:21:51,569 --> 02:21:53,170 tenemos aquí dos inyectores 3193 02:21:53,170 --> 02:21:55,850 uno que envía el mensaje a encender 3194 02:21:55,850 --> 02:21:57,850 y otro que envía el mensaje a apagar 3195 02:21:57,850 --> 02:21:59,750 se publica en un topic 3196 02:21:59,750 --> 02:22:01,709 que se llama alert y a su vez 3197 02:22:01,709 --> 02:22:03,389 estamos suscritos a ese 3198 02:22:03,389 --> 02:22:05,329 topic y lo que hacemos es que 3199 02:22:05,329 --> 02:22:06,930 asignamos el valor 3200 02:22:06,930 --> 02:22:09,090 al pin número 11 de la Raspberry Pi 3201 02:22:09,090 --> 02:22:10,790 esto es lo que estáis viendo aquí, ¿vale? 3202 02:22:10,809 --> 02:22:12,450 para que veáis un ejemplo de eso que os decía 3203 02:22:12,450 --> 02:22:14,250 de cómo podríamos controlar 3204 02:22:14,250 --> 02:22:17,430 una Raspberry Pi con mensajes 3205 02:22:17,430 --> 02:22:17,989 MQTT 3206 02:22:17,989 --> 02:22:22,799 también un SP32 se puede conectar 3207 02:22:22,799 --> 02:22:23,559 a MQTT, ¿no? 3208 02:22:24,360 --> 02:22:26,440 perfectamente, ahora podríamos ir a Huawei 3209 02:22:26,440 --> 02:22:30,799 yo me podría venir aquí a Huawei 3210 02:22:30,799 --> 02:22:37,409 arrancar un proyecto de SP32 3211 02:22:37,409 --> 02:22:39,610 ¿vale? 3212 02:22:39,610 --> 02:22:42,030 buscarme una librería de MQTT 3213 02:22:42,030 --> 02:22:43,450 aquí en Library Manager 3214 02:22:43,450 --> 02:22:51,040 la que tengamos para el Async MQTT 3215 02:22:51,040 --> 02:22:52,700 por ejemplo para el SP32 3216 02:22:52,700 --> 02:22:54,780 podría irme a la documentación 3217 02:22:54,780 --> 02:22:57,139 y en la documentación 3218 02:22:57,139 --> 02:22:59,100 como os comentaba el otro día, siempre va a haber 3219 02:22:59,100 --> 02:23:01,440 el repositorio y una serie de ejemplos 3220 02:23:01,440 --> 02:23:03,100 y en estos ejemplos 3221 02:23:03,100 --> 02:23:05,219 voy a encontrar para un 3222 02:23:05,219 --> 02:23:06,659 SP32 3223 02:23:06,659 --> 02:23:12,799 este va a ser complicado porque ya el nombre se llama 3224 02:23:12,799 --> 02:23:14,059 a tope de gama 3225 02:23:14,059 --> 02:23:15,940 pero bueno, para que os hagáis una idea 3226 02:23:15,940 --> 02:23:18,260 pues aquí tendríamos un 3227 02:23:18,260 --> 02:23:19,719 bueno, esto usa hasta 3228 02:23:19,719 --> 02:23:21,680 free retos, que aquí es 3229 02:23:21,680 --> 02:23:24,020 como veis, como se va a conectar, pues aquí tendría 3230 02:23:24,020 --> 02:23:24,899 que poner 3231 02:23:24,899 --> 02:23:28,000 el nombre del broker 3232 02:23:28,000 --> 02:23:30,139 lo voy a probar, igual no funciona, pero lo voy a intentar 3233 02:23:30,139 --> 02:23:32,000 para que lo veamos, entonces me vengo 3234 02:23:32,000 --> 02:23:34,000 aquí, pego aquí 3235 02:23:34,000 --> 02:23:34,420 el código 3236 02:23:34,420 --> 02:23:37,780 entonces, en este código 3237 02:23:37,780 --> 02:23:39,319 lo que me está pidiendo es 3238 02:23:39,319 --> 02:23:41,239 oye, ¿cuál es 3239 02:23:41,239 --> 02:23:43,559 la dirección del broker? 3240 02:23:43,559 --> 02:24:16,500 Pues la dirección del broker es mi dirección IP, esta de aquí. Vale, ¿el puerto cuál es? El 1883, que va a intentar conectarse a la Wi-Fi, que la Wi-Fi imagino que la tendrán en el otro archivo, a ver, en este de defines.h, efectivamente, la tienen aquí, entonces yo vengo, lo copio, me creo aquí un archivo nuevo, defines.h, lo pego, 3241 02:24:17,139 --> 02:24:25,260 Y recordad que la Wi-Fi de Huawei es sin contraseña. 3242 02:24:26,000 --> 02:24:35,639 Entonces aquí en el sketch.inu dice conectándose a MQTT y Wi-Fi BNB, SSP32, Mosquito, Wi-Fi Connected, IP Address, 3243 02:24:36,440 --> 02:24:41,979 y va a publicar. Bueno, pues lo voy a probar. Igual funciona, igual no. 3244 02:24:42,940 --> 02:24:46,139 Lo que no sé es dónde va a publicar, pero bueno, ahora lo veremos. 3245 02:24:47,139 --> 02:24:49,459 entonces lo que ocurriría ahora 3246 02:24:49,459 --> 02:24:51,440 es que tendríamos un SP32 3247 02:24:51,440 --> 02:24:53,780 publicando en una máquina 3248 02:24:53,780 --> 02:24:55,940 que está en la nube, en un broker MQTT 3249 02:24:55,940 --> 02:24:57,719 y podría estar publicando 3250 02:24:57,719 --> 02:24:59,700 sus temperaturas, podríamos 3251 02:24:59,700 --> 02:25:01,659 estar pendiente, podría estar suscrita 3252 02:25:01,659 --> 02:25:03,700 también, podría estar suscrita al nodo de red 3253 02:25:03,700 --> 02:25:05,620 me pide el 3254 02:25:05,620 --> 02:25:07,680 ASINTHP, así es que tengo que instalar 3255 02:25:07,680 --> 02:25:08,739 esa librería también 3256 02:25:08,739 --> 02:25:13,180 era, cuál era 3257 02:25:13,180 --> 02:25:15,200 no sé si era el ASINTHP 3258 02:25:15,200 --> 02:25:16,659 que me ha dicho, a ver, espera 3259 02:25:16,659 --> 02:25:21,379 se me ha olvidado 3260 02:25:21,379 --> 02:25:22,780 creo que era asyn 3261 02:25:22,780 --> 02:25:24,219 sí, asyn.pt 3262 02:25:24,219 --> 02:25:25,620 añado 3263 02:25:25,620 --> 02:25:32,920 has puesto la IP 3264 02:25:32,920 --> 02:25:34,520 y has puesto también el 3265 02:25:34,520 --> 02:25:35,940 topic o no? 3266 02:25:36,680 --> 02:25:38,719 no, no lo he puesto porque este código yo no lo conozco 3267 02:25:38,719 --> 02:25:41,200 lo he cogido y lo he copiado y pegado aquí sin más 3268 02:25:41,200 --> 02:25:43,120 entonces está publicando 3269 02:25:43,120 --> 02:25:44,079 un topic que se llama 3270 02:25:44,079 --> 02:25:46,020 parece que se escribe y publica 3271 02:25:46,020 --> 02:25:48,020 sí, y el topic a ver si encuentro 3272 02:25:48,020 --> 02:25:49,340 donde lo tienen definido 3273 02:25:49,340 --> 02:25:50,739 el put topic este 3274 02:25:50,739 --> 02:25:53,219 el put topic es este 3275 02:25:53,219 --> 02:25:55,420 así en MQTT, pues yo en vez de ese 3276 02:25:55,420 --> 02:25:56,299 podría poner 3277 02:25:56,299 --> 02:25:59,360 casa, planta baja 3278 02:25:59,360 --> 02:26:02,159 temperatura 3279 02:26:02,159 --> 02:26:07,559 voy a probar 3280 02:26:07,559 --> 02:26:09,540 no sé si va a funcionar 3281 02:26:09,540 --> 02:26:11,760 pero bueno, el concepto sería ese 3282 02:26:11,760 --> 02:26:13,159 sería que ahora mismo 3283 02:26:13,159 --> 02:26:15,040 tendríamos aquí un SP32 3284 02:26:15,040 --> 02:26:17,559 que está leyendo su temperatura o lo que sea 3285 02:26:17,559 --> 02:26:19,200 y estaría publicando 3286 02:26:19,200 --> 02:26:21,719 en este broker, y de hecho si conseguimos 3287 02:26:21,719 --> 02:26:23,799 que funciona, pues debería aparecer aquí 3288 02:26:23,799 --> 02:26:25,840 lo que esté mandando, que creo que está mandando 3289 02:26:25,840 --> 02:26:27,920 números aleatorios, me ha parecido ver por ahí 3290 02:26:27,920 --> 02:26:30,059 le voy a dar una oportunidad 3291 02:26:30,059 --> 02:26:31,860 pero no más, porque como veis esto 3292 02:26:31,860 --> 02:26:33,959 pues va como el otro día 3293 02:26:33,959 --> 02:26:37,360 bastante mal, pero bueno 3294 02:26:37,360 --> 02:26:39,500 el concepto es ese, el concepto es ver que yo puedo tener 3295 02:26:39,500 --> 02:26:40,000 una mota 3296 02:26:40,000 --> 02:26:43,340 esa mota, incluso siendo un dispositivo 3297 02:26:43,340 --> 02:26:45,440 relativamente sencillo 3298 02:26:45,440 --> 02:26:47,319 como un SP32, es capaz de 3299 02:26:47,319 --> 02:26:49,700 ejecutar una pila MQTT 3300 02:26:49,700 --> 02:26:50,840 sobre wifi 3301 02:26:50,840 --> 02:26:52,739 se ha dado cuenta que ya estamos montando 3302 02:26:52,739 --> 02:26:54,219 aquí dos pilas, la pila wifi 3303 02:26:54,219 --> 02:26:56,600 y la pila MQTT 3304 02:26:56,600 --> 02:26:57,819 del stack TCP y P 3305 02:26:57,819 --> 02:27:00,700 y puede enviar información a un sistema remoto 3306 02:27:00,700 --> 02:27:02,840 a ver si funcionase 3307 02:27:02,840 --> 02:27:04,299 pero bueno, tengo poca esperanza 3308 02:27:04,299 --> 02:27:04,959 vamos a ver 3309 02:27:04,959 --> 02:27:08,799 Feliz, mira a ver si en el otro archivo 3310 02:27:08,799 --> 02:27:10,299 que has creado en defines.h 3311 02:27:10,299 --> 02:27:12,239 mira a ver si has quitado la contraseña 3312 02:27:12,239 --> 02:27:13,420 es que creo que no la has quitado 3313 02:27:13,420 --> 02:27:14,639 gracias 3314 02:27:14,639 --> 02:27:16,799 ahí está 3315 02:27:16,799 --> 02:27:27,649 bueno, no me quedo parado 3316 02:27:27,649 --> 02:27:28,709 porque se nos va el tiempo 3317 02:27:28,709 --> 02:27:41,549 Lo voy a dejar aquí. Si entrase a funcionar, pues veríamos que empezaría por ahí a salir valores en el nodo de red. Voy a avanzar un poco más en la presentación mientras tanto. Vamos a ir ahora a hablar de InfluxDB. 3318 02:27:41,549 --> 02:28:01,870 Ya tenemos Mosquito integrado con Node-REF. Esto ya lo hemos visto. Y ahora vamos a hablar de InfluxDB. InfluxDB es una base de datos de series temporales. Es muy popular porque es de código abierto. 3319 02:28:01,870 --> 02:28:12,969 Entonces, la mayoría de las soluciones de Internet de las Cosas utilizan, bueno, algunas utilizan Cassandra, PostgreSQL, pero muchas, muchas usan InfluxDB. 3320 02:28:13,629 --> 02:28:17,329 ¿Qué quiere decir que sea una base de datos de series temporales? 3321 02:28:17,450 --> 02:28:24,809 Pues quiere decir que cada dato que se almacena en la base de datos va siempre acompañado de un sello temporal, de una fecha y una hora. 3322 02:28:25,549 --> 02:28:32,829 Entonces, los datos en InfluxDB se almacenan como measurements, como medidas, ¿vale? 3323 02:28:33,430 --> 02:28:39,389 Las medidas componen series y las series están compuestas por puntos. 3324 02:28:39,389 --> 02:28:41,690 Bien, no os agobieis que esto se explica después, ¿vale? 3325 02:28:42,030 --> 02:28:44,170 Pero esto es simplemente terminología. 3326 02:28:44,690 --> 02:28:47,549 En una base de datos SQL, ¿vosotros qué tenéis? 3327 02:28:48,129 --> 02:28:54,290 Pues tenéis tablas, tenéis registros y tenéis campos, ¿vale? 3328 02:28:54,290 --> 02:29:09,209 Pues esto es algo parecido. En InfluDB tenemos medidas, series y puntos. Entonces, ¿cómo se crean estas medidas? Pues tienen que tener una sintaxis muy concreta, que es esta que veis aquí. En primer lugar se pone el nombre de la medida. 3329 02:29:09,209 --> 02:29:11,469 luego sin espacio ni nada 3330 02:29:11,469 --> 02:29:13,090 y separados por comas 3331 02:29:13,090 --> 02:29:15,829 ponemos todas las etiquetas que queramos 3332 02:29:15,829 --> 02:29:17,690 etiquetas que son de la forma 3333 02:29:17,690 --> 02:29:19,649 clave igual valor 3334 02:29:19,649 --> 02:29:21,389 todas separadas por coma 3335 02:29:21,389 --> 02:29:22,930 que son opcionales 3336 02:29:22,930 --> 02:29:24,590 las etiquetas no son obligatorias 3337 02:29:24,590 --> 02:29:26,610 lo que sí que es obligatorio 3338 02:29:26,610 --> 02:29:28,170 es tener al menos un campo 3339 02:29:28,170 --> 02:29:30,329 que es lo que viene a continuación 3340 02:29:30,329 --> 02:29:31,450 veis que hay un espacio 3341 02:29:31,450 --> 02:29:34,190 entre la última etiqueta y el primer campo 3342 02:29:34,190 --> 02:29:36,329 y los campos son también pares 3343 02:29:36,329 --> 02:29:38,110 clave igual valor 3344 02:29:38,110 --> 02:29:40,629 y si quieres poner varios los puedes separar por comas 3345 02:29:40,629 --> 02:29:42,409 bien, opcionalmente 3346 02:29:42,409 --> 02:29:43,770 al final puedes poner 3347 02:29:43,770 --> 02:29:46,270 un timestamp en nanosegundos 3348 02:29:46,270 --> 02:29:48,270 o si no lo pones 3349 02:29:48,270 --> 02:29:50,530 el propio sistema lo va a crear automáticamente 3350 02:29:50,530 --> 02:29:52,530 por ti, esto que es así 3351 02:29:52,530 --> 02:29:53,809 un poco abstracto 3352 02:29:53,809 --> 02:29:56,409 yo creo que se aterriza bien si miramos aquí abajo 3353 02:29:56,409 --> 02:29:58,590 aquí he hecho un ejemplo 3354 02:29:58,590 --> 02:30:00,389 en el que 3355 02:30:00,389 --> 02:30:01,629 tenemos un punto 3356 02:30:01,629 --> 02:30:03,750 que se va a añadir 3357 02:30:03,750 --> 02:30:06,030 al measurement temperatura 3358 02:30:06,030 --> 02:30:23,750 Es decir, yo voy a tener en esa base de datos una medida de temperatura, que en este caso corresponde a la nevera 25 y está expresado en grados Celsius. Esos son los tags. Veis que los tags están directamente unidos al nombre del measurement mediante comas. 3359 02:30:23,750 --> 02:30:41,409 Luego hay un espacio y lo que viene a continuación son los fills. Tengo un primer campo que es obligatorio, que es la temperatura exterior son 32 grados en la nevera 25 y he puesto un segundo fill que es la temperatura interior de la nevera son 3,8 grados. 3360 02:30:41,409 --> 02:31:03,270 Este es el aspecto que tiene un punto. Esto es un punto de la serie de la medida temperatura. Bien, InfluxDB es bastante complejo. Tiene un montón de opciones. Por ejemplo, se pueden establecer políticas para la retención. ¿Eso qué es? Durante cuánto tiempo se almacenan los datos. 3361 02:31:03,270 --> 02:31:27,450 Un problema que tenemos en muchos proyectos de Internet de las cosas es que la cantidad de datos que recibimos es brutal. Entonces no podemos almacenarlos todos. Tenemos que decidir en qué momento caducan. Entonces hay veces que decidimos caducarlos a dos años, a cuatro años, pero tenemos que caducarlos porque ya habéis visto que cuando se han creado las máquinas virtuales, habéis visto que el espacio que tenemos en disco duro es bastante limitado. 3362 02:31:27,450 --> 02:31:28,829 son unos 40 gigas 3363 02:31:28,829 --> 02:31:31,069 incluso en las más altas de gama 3364 02:31:31,069 --> 02:31:32,629 el disco duro 3365 02:31:32,629 --> 02:31:34,389 sigue siendo bastante limitado 3366 02:31:34,389 --> 02:31:35,690 y es muy caro 3367 02:31:35,690 --> 02:31:36,670 entonces lo que hacemos 3368 02:31:36,670 --> 02:31:37,790 es que tenemos que 3369 02:31:37,790 --> 02:31:39,870 buscar otra forma 3370 02:31:39,870 --> 02:31:41,010 caducar los datos 3371 02:31:41,010 --> 02:31:42,670 y almacenarlos en copias de seguridad 3372 02:31:42,670 --> 02:31:43,170 o lo que sea 3373 02:31:43,170 --> 02:31:44,389 pero no podemos mantenernos 3374 02:31:44,389 --> 02:31:46,309 en la máquina principal 3375 02:31:46,309 --> 02:31:49,069 luego también se pueden crear réplicas 3376 02:31:49,069 --> 02:31:50,950 los datos en InfluetDB 3377 02:31:50,950 --> 02:31:52,010 pueden estar replicados 3378 02:31:52,010 --> 02:31:54,170 para que si hay cualquier tipo de problema 3379 02:31:54,170 --> 02:31:55,329 pues no se pierdan 3380 02:31:55,329 --> 02:31:56,569 y luego hay una cosa 3381 02:31:56,569 --> 02:31:57,930 que se llaman los a-group 3382 02:31:57,930 --> 02:32:00,829 que permiten 3383 02:32:00,829 --> 02:32:02,290 fraccionar la información 3384 02:32:02,290 --> 02:32:04,290 según se está recibiendo 3385 02:32:04,290 --> 02:32:06,629 en vez de almacenarlas todas en un solo archivo 3386 02:32:06,629 --> 02:32:08,530 de la base de datos, se van creando 3387 02:32:08,530 --> 02:32:09,709 como pequeños archivos 3388 02:32:09,709 --> 02:32:11,590 y aquí podríamos configurar 3389 02:32:11,590 --> 02:32:13,930 yo quiero un archivo para cada mes 3390 02:32:13,930 --> 02:32:14,989 pues eso es muy habitual 3391 02:32:14,989 --> 02:32:17,350 o depende del volumen de datos que recibas 3392 02:32:17,350 --> 02:32:19,329 igual necesitas crear un archivo para cada día 3393 02:32:19,329 --> 02:32:21,750 bueno, pues esto es InfluzDB 3394 02:32:21,750 --> 02:32:23,370 lo bueno que tiene InfluzDB 3395 02:32:23,370 --> 02:32:25,770 es que si tenéis una pequeña experiencia 3396 02:32:25,770 --> 02:32:28,270 con cualquier otro tipo de base SQL 3397 02:32:28,270 --> 02:32:29,069 base de datos 3398 02:32:29,069 --> 02:32:30,670 estructurada 3399 02:32:30,670 --> 02:32:34,010 pues resulta que el lenguaje que se 3400 02:32:34,010 --> 02:32:35,709 utiliza en InfluxDB es prácticamente 3401 02:32:35,709 --> 02:32:36,809 idéntico 3402 02:32:36,809 --> 02:32:39,950 de hecho si queréis encontrar una similitud 3403 02:32:39,950 --> 02:32:41,790 entre una base de datos InfluxDB 3404 02:32:41,790 --> 02:32:43,309 y una base de datos SQL 3405 02:32:43,309 --> 02:32:45,670 el nombre de la medida 3406 02:32:45,670 --> 02:32:47,709 sería el nombre de la tabla 3407 02:32:47,709 --> 02:32:49,950 la medida es la tabla 3408 02:32:49,950 --> 02:32:51,930 el timestamp es el 3409 02:32:51,930 --> 02:32:54,030 índice primario, tiene que ser único 3410 02:32:54,030 --> 02:32:56,690 los tags están indesados 3411 02:32:56,690 --> 02:32:58,090 eso que quiere decir 3412 02:32:58,090 --> 02:32:59,889 que realizar búsquedas por tags 3413 02:32:59,889 --> 02:33:00,790 es muy rápido 3414 02:33:00,790 --> 02:33:03,809 pero los campos no están indesados 3415 02:33:03,809 --> 02:33:05,750 entonces realizar búsquedas por campos 3416 02:33:05,750 --> 02:33:06,409 es lento 3417 02:33:06,409 --> 02:33:09,629 bien, pues vamos a hacer un ejercicio con 3418 02:33:09,629 --> 02:33:10,190 influxdb 3419 02:33:10,190 --> 02:33:13,629 esto es simplemente para que le cojáis un poco 3420 02:33:13,629 --> 02:33:15,489 el tacto a la base de datos 3421 02:33:15,489 --> 02:33:17,610 luego vais a ver que afortunadamente 3422 02:33:17,610 --> 02:33:18,290 grafana 3423 02:33:18,290 --> 02:33:21,450 se puede vincular directamente a influxdb 3424 02:33:21,450 --> 02:33:22,850 entonces no tenemos que hacer nada 3425 02:33:22,850 --> 02:33:24,950 simplemente todos los datos que recibamos 3426 02:33:24,950 --> 02:33:27,049 desde Node-RED se los vamos a enchufar 3427 02:33:27,049 --> 02:33:29,129 a InfluxDB y de InfluxDB 3428 02:33:29,129 --> 02:33:31,229 los va a rescatar automáticamente Grafana 3429 02:33:31,229 --> 02:33:32,729 bien 3430 02:33:32,729 --> 02:33:34,870 pues para usar InfluxDB 3431 02:33:34,870 --> 02:33:36,829 vamos a usar una consola 3432 02:33:36,829 --> 02:33:39,090 una consola que tenemos que abrir 3433 02:33:39,090 --> 02:33:41,010 en el contenedor 3434 02:33:41,010 --> 02:33:42,250 de InfluxDB 3435 02:33:42,250 --> 02:33:44,889 ¿eso cómo se hace? pues se hace con este comando 3436 02:33:44,889 --> 02:33:46,649 que os dejo aquí para que lo podáis poner 3437 02:33:46,649 --> 02:33:48,870 docker-compose exec 3438 02:33:48,870 --> 02:33:51,209 InfluxDB-bus, aquí le estoy diciendo 3439 02:33:51,209 --> 02:33:53,229 ejecuta una consola bus 3440 02:33:53,229 --> 02:33:55,370 en el contenedor 3441 02:33:55,370 --> 02:33:57,489 influxdb, lo voy a hacer yo para que 3442 02:33:57,489 --> 02:33:59,329 lo veáis, esto es en el terminal 3443 02:33:59,329 --> 02:34:01,750 y escribo 3444 02:34:01,750 --> 02:34:02,309 docker 3445 02:34:02,309 --> 02:34:04,329 compose 3446 02:34:04,329 --> 02:34:08,100 exec 3447 02:34:08,100 --> 02:34:12,479 influx 3448 02:34:12,479 --> 02:34:17,079 db, vale 3449 02:34:17,079 --> 02:34:19,360 y como veis el prom ha cambiado 3450 02:34:19,360 --> 02:34:21,319 ahora no me dice que esté conectado a la 3451 02:34:21,319 --> 02:34:22,479 máquina ismie01 3452 02:34:22,479 --> 02:34:25,399 ahora me dice ahí que estoy conectado a 3453 02:34:25,399 --> 02:34:27,680 algo que es el 9D9 3454 02:34:27,680 --> 02:34:29,680 que si os fijáis es exactamente 3455 02:34:29,680 --> 02:34:31,700 el ID del contenedor 3456 02:34:31,700 --> 02:34:33,459 de InfluxDB que lo tengo aquí encima 3457 02:34:33,459 --> 02:34:35,319 vale, es decir, ahora estoy 3458 02:34:35,319 --> 02:34:37,819 en la consola de ese contenedor 3459 02:34:37,819 --> 02:34:39,440 no estoy en la consola de la máquina 3460 02:34:39,440 --> 02:34:41,500 principal, es decir 3461 02:34:41,500 --> 02:34:43,700 cualquier comando que yo escriba ahora 3462 02:34:43,700 --> 02:34:45,760 lo va a ejecutar InfluxDB 3463 02:34:45,760 --> 02:34:47,520 el primer comando 3464 02:34:47,520 --> 02:34:49,219 que vamos a ejecutar es precisamente 3465 02:34:49,219 --> 02:34:51,319 Influx, ese comando 3466 02:34:51,319 --> 02:34:53,399 sirve para acceder 3467 02:34:53,399 --> 02:34:56,280 al sistema gestor 3468 02:34:56,280 --> 02:34:57,979 de InfluxDB. ¿Veis? Ya estoy 3469 02:34:57,979 --> 02:34:59,340 en el cell de InfluxDB. 3470 02:35:00,100 --> 02:35:02,159 Y ahora podría decirle, oye, muéstrame 3471 02:35:02,159 --> 02:35:03,799 qué bases de datos tienes. 3472 02:35:03,959 --> 02:35:04,840 Show database. 3473 02:35:05,840 --> 02:35:07,360 Y me dice que no tiene ninguna. 3474 02:35:07,860 --> 02:35:08,600 De momento. 3475 02:35:10,280 --> 02:35:11,899 ¿Vale? Ahora le puedo decir, oye, 3476 02:35:12,020 --> 02:35:14,159 quiero crear una base de datos. Pues yo le digo aquí 3477 02:35:14,159 --> 02:35:15,440 create 3478 02:35:15,440 --> 02:35:17,200 database 3479 02:35:17,200 --> 02:35:19,299 database.iot 3480 02:35:19,299 --> 02:35:21,940 Y ahora si le vuelvo a decir que me muestre 3481 02:35:21,940 --> 02:35:24,239 las bases de datos, veis que ahora ya sí 3482 02:35:24,239 --> 02:35:26,100 me aparece una base de datos con el nombre 3483 02:35:26,100 --> 02:35:26,639 IOT 3484 02:35:26,639 --> 02:35:29,760 os dejo que probéis esto 3485 02:35:29,760 --> 02:35:32,340 si queréis salir 3486 02:35:32,340 --> 02:35:34,000 de la consola es control D 3487 02:35:34,000 --> 02:35:36,000 sale si ya estoy fuera de la consola 3488 02:35:36,000 --> 02:35:37,700 de 3489 02:35:37,700 --> 02:35:39,059 de Influenced B 3490 02:35:39,059 --> 02:35:41,920 y si queréis salir a la máquina principal 3491 02:35:41,920 --> 02:35:44,120 pulsamos exit y veis que 3492 02:35:44,120 --> 02:35:46,100 ahora ya estoy nuevamente en la máquina principal 3493 02:35:46,100 --> 02:35:47,959 entonces desde la máquina principal 3494 02:35:47,959 --> 02:35:50,200 repito, ¿qué es lo que tengo 3495 02:35:50,200 --> 02:35:52,299 que hacer? Pues lo primero que tengo 3496 02:35:52,299 --> 02:35:54,139 que hacer es acceder a 3497 02:35:54,139 --> 02:35:56,139 una terminal del contenedor 3498 02:35:56,139 --> 02:35:58,120 InfluxDB y eso lo hacía con Docker 3499 02:35:58,120 --> 02:35:59,600 Compose 3500 02:35:59,600 --> 02:36:00,739 Exec 3501 02:36:00,739 --> 02:36:02,979 en InfluxDB 3502 02:36:02,979 --> 02:36:07,680 una consola de tipo bus. Ahora ya 3503 02:36:07,680 --> 02:36:09,500 estoy en la terminal del contenedor 3504 02:36:09,500 --> 02:36:11,819 de InfluxDB. Aquí lanzo 3505 02:36:11,819 --> 02:36:13,500 el cell 3506 02:36:13,500 --> 02:36:15,540 de InfluxDB y si ahora por ejemplo 3507 02:36:15,540 --> 02:36:16,840 le digo que me muestre 3508 02:36:16,840 --> 02:36:19,600 las bases de datos, veis que ya 3509 02:36:19,600 --> 02:36:21,520 me aparece ahí que tengo una base de datos que se llama 3510 02:36:21,520 --> 02:36:25,899 IoT. ¿Me vais siguiendo? 3511 02:36:30,149 --> 02:36:30,829 Sí, sí. 3512 02:36:31,350 --> 02:36:32,469 Bueno, menos mal. 3513 02:36:33,870 --> 02:36:35,329 Ahora, si yo quiero 3514 02:36:35,329 --> 02:36:37,229 usar esa base de datos, tengo que decirle, oye, 3515 02:36:37,309 --> 02:36:38,469 quiero usar esa base de datos, 3516 02:36:38,889 --> 02:36:41,209 use IoT. Y él me dice, muy bien, 3517 02:36:41,370 --> 02:36:42,670 estás usando la base de datos IoT. 3518 02:36:43,690 --> 02:36:45,469 Ahora supongamos que queremos añadir 3519 02:36:45,469 --> 02:36:47,389 un measurement, que queremos añadir una medida 3520 02:36:47,389 --> 02:36:49,590 para insertar, 3521 02:36:49,690 --> 02:36:51,069 ¿veis que es como MySQL? 3522 02:36:51,809 --> 02:36:53,290 Insertar la medida 3523 02:36:53,290 --> 02:36:55,409 de temperatura con las etiquetas 3524 02:36:55,409 --> 02:36:57,270 nevera 25 y unidad grado Celsius 3525 02:36:57,270 --> 02:36:59,290 y los campos exterior 32 3526 02:36:59,290 --> 02:37:01,989 interior 3,8 ¿vale? pues lo vamos a insertar 3527 02:37:01,989 --> 02:37:03,510 insert 3528 02:37:03,510 --> 02:37:04,969 temperatura 3529 02:37:04,969 --> 02:37:07,729 nevera 3530 02:37:07,729 --> 02:37:09,530 igual 25 3531 02:37:09,530 --> 02:37:11,270 unidad 3532 02:37:11,270 --> 02:37:13,010 igual Celsius 3533 02:37:13,010 --> 02:37:15,489 espacio para separar 3534 02:37:15,489 --> 02:37:16,930 las tags de los fields 3535 02:37:16,930 --> 02:37:18,350 las etiquetas de los campos 3536 02:37:18,350 --> 02:37:20,290 y aquí exterior 3537 02:37:20,290 --> 02:37:21,850 igual 3538 02:37:21,850 --> 02:37:23,469 no recuerdo lo que había puesto 3539 02:37:23,469 --> 02:37:24,690 voy a poner 25 3540 02:37:24,690 --> 02:37:26,170 interior 3541 02:37:26,170 --> 02:37:28,510 igual 3.8 3542 02:37:28,510 --> 02:37:30,549 ¿vale? 3543 02:37:30,709 --> 02:37:32,010 he puesto algo mal 3544 02:37:32,010 --> 02:37:35,030 he puesto insert, se me ha olvidado la T 3545 02:37:35,030 --> 02:37:36,889 al principio, insert 3546 02:37:36,889 --> 02:37:38,569 ahí 3547 02:37:38,569 --> 02:37:40,389 ahí está, ¿vale? 3548 02:37:41,010 --> 02:37:42,750 entonces si yo ahora le digo que me muestre 3549 02:37:42,750 --> 02:37:43,670 las measurements 3550 02:37:43,670 --> 02:37:47,030 ¿veis? 3551 02:37:47,090 --> 02:37:48,709 me dice que existe ya un measurement 3552 02:37:48,709 --> 02:37:50,250 que se llama temperatura 3553 02:37:50,250 --> 02:37:52,770 ¿vale? ese measurement es como una 3554 02:37:52,770 --> 02:37:54,229 tabla, ¿vale? lo que ha ocurrido 3555 02:37:54,229 --> 02:37:56,209 es cuando nosotros hemos insertado 3556 02:37:56,209 --> 02:37:58,309 sin necesidad de crear 3557 02:37:58,309 --> 02:37:59,790 previamente esa tabla 3558 02:37:59,790 --> 02:38:02,069 la tabla se ha creado automáticamente 3559 02:38:02,069 --> 02:38:04,170 de forma dinámica cuando se recibe el primer 3560 02:38:04,170 --> 02:38:05,989 measurement, y ahora ya 3561 02:38:05,989 --> 02:38:08,409 sobre esa tabla ya podríamos ejecutar 3562 02:38:08,409 --> 02:38:10,209 comandos, como digo 3563 02:38:10,209 --> 02:38:11,729 muy parecidos a los de 3564 02:38:11,729 --> 02:38:14,569 a los de 3565 02:38:14,569 --> 02:38:16,229 MySQL o cualquier 3566 02:38:16,229 --> 02:38:18,229 base de datos relacional 3567 02:38:18,229 --> 02:38:19,870 entonces veis que aquí tengo 3568 02:38:19,870 --> 02:38:22,229 select nevera, que nevera es un 3569 02:38:22,229 --> 02:38:23,770 tag, ese está indexado 3570 02:38:23,770 --> 02:38:25,610 y exterior que es un fill 3571 02:38:25,610 --> 02:38:27,690 que no está indesado, de temperatura 3572 02:38:27,690 --> 02:38:29,290 entonces si yo ejecuto eso aquí 3573 02:38:29,290 --> 02:38:32,110 select nevera 3574 02:38:32,110 --> 02:38:33,250 coma exterior 3575 02:38:33,250 --> 02:38:35,590 de la tabla temperatura 3576 02:38:35,590 --> 02:38:37,610 o más exactamente 3577 02:38:37,610 --> 02:38:38,870 del measurement temperatura 3578 02:38:38,870 --> 02:38:41,190 found 3579 02:38:41,190 --> 02:38:43,469 expected from, ah si, select 3580 02:38:43,469 --> 02:38:45,270 from temperatura, me falta 3581 02:38:45,270 --> 02:38:47,700 from 3582 02:38:47,700 --> 02:38:50,639 temperatura, pues veis que me sale ahí 3583 02:38:50,639 --> 02:38:52,280 el time stamp 3584 02:38:52,280 --> 02:38:54,600 el valor de nevera 3585 02:38:54,600 --> 02:38:57,360 que era la nevera 25 y la temperatura exterior 3586 02:38:57,360 --> 02:38:59,639 que eran 25 grados 3587 02:38:59,639 --> 02:39:03,420 entonces bueno, lo tenéis aquí todo 3588 02:39:03,420 --> 02:39:06,139 en la imagen para si queréis ver los comandos 3589 02:39:06,139 --> 02:39:09,059 como se van creando y aquí os he puesto un ejemplo 3590 02:39:09,059 --> 02:39:12,700 para que podáis ver más o menos como es la sintaxis 3591 02:39:12,700 --> 02:39:15,680 de selección, tú le puedes decir que quieres seleccionar 3592 02:39:15,680 --> 02:39:17,959 de donde lo quieres seleccionar 3593 02:39:17,959 --> 02:39:22,040 por ejemplo con un web le puedes decir entre tal segundo y tal otro segundo 3594 02:39:22,040 --> 02:39:25,020 limitar, como veis, muy parecido al lenguaje 3595 02:39:25,020 --> 02:39:27,799 de MySQL. Entonces 3596 02:39:27,799 --> 02:39:31,000 lo que vamos a hacer ahora, el siguiente ejemplo 3597 02:39:31,000 --> 02:39:34,059 es coger e inyectar 3598 02:39:34,059 --> 02:39:37,200 datos en ese measurement. ¿Cómo los vamos a inyectar? 3599 02:39:37,280 --> 02:39:38,959 Pues fijaos, vamos a usar un inyector 3600 02:39:38,959 --> 02:39:43,100 ese inyector pasa por aquí por un nodo, que ahora os explicaré 3601 02:39:43,100 --> 02:39:45,940 y luego tiene simplemente un nodo de 3602 02:39:45,940 --> 02:39:48,799 publicación en InfluenceDB. Entonces 3603 02:39:48,799 --> 02:39:51,540 toda la información que llegue por aquí se va a inyectar en 3604 02:39:51,540 --> 02:39:53,040 Influx de red, ¿vale? 3605 02:39:53,559 --> 02:39:55,620 Entonces, primera cosa importante, 3606 02:39:56,020 --> 02:39:57,579 claro, no de red, 3607 02:39:57,700 --> 02:39:59,639 cuando coloquemos este nodo, nos va 3608 02:39:59,639 --> 02:40:01,040 a mostrar un triangulito rojo, 3609 02:40:01,700 --> 02:40:03,520 porque nos va a decir, oye, ¿a qué 3610 02:40:03,520 --> 02:40:05,540 base de datos quieres conectarte? 3611 02:40:06,120 --> 02:40:07,379 Entonces nosotros le tendremos 3612 02:40:07,379 --> 02:40:08,139 que crear 3613 02:40:08,139 --> 02:40:11,420 un servidor, como estáis viendo aquí, ¿vale? 3614 02:40:11,420 --> 02:40:13,540 Aquí le vamos a decir, no, no, queremos 3615 02:40:13,540 --> 02:40:15,520 conectarnos a Influx 3616 02:40:15,520 --> 02:40:17,059 de red, ¿veis? Igual que antes, 3617 02:40:17,379 --> 02:40:19,420 utilizamos Mosquito como nombre 3618 02:40:19,420 --> 02:40:21,719 del servidor, ahora simplemente tenemos que utilizar 3619 02:40:21,719 --> 02:40:22,700 InfluxDB 3620 02:40:22,700 --> 02:40:25,719 ¿a qué base de datos? a la que he creado yo antes 3621 02:40:25,719 --> 02:40:27,319 ¿vale? a la base de datos 3622 02:40:27,319 --> 02:40:28,840 IoT, entonces 3623 02:40:28,840 --> 02:40:31,020 vamos a poder publicar directamente 3624 02:40:31,020 --> 02:40:33,500 ¿y qué vamos a publicar? bueno, pues lo que vamos a 3625 02:40:33,500 --> 02:40:35,500 publicar, lo vamos a definir 3626 02:40:35,500 --> 02:40:37,260 precisamente en este nodo, ¿vale? 3627 02:40:37,280 --> 02:40:39,540 este nodo, lo voy a escribir yo y os lo 3628 02:40:39,540 --> 02:40:41,299 pego por ahí para que vosotros lo podáis usar 3629 02:40:41,299 --> 02:40:43,399 si queréis, es un nodo 3630 02:40:43,399 --> 02:40:45,319 de los más versátiles que hay 3631 02:40:45,319 --> 02:40:46,540 es un nodo de función 3632 02:40:46,540 --> 02:40:48,600 función, eso quiere decir 3633 02:40:48,600 --> 02:40:50,520 que ahí tú puedes escribir el código Javascript 3634 02:40:50,520 --> 02:40:51,600 que te dé la gana 3635 02:40:51,600 --> 02:40:54,680 ¿qué código he decidido yo meter? pues el siguiente 3636 02:40:54,680 --> 02:40:56,500 fijaos, yo he cogido 3637 02:40:56,500 --> 02:40:58,819 y he creado un código 3638 02:40:58,819 --> 02:41:00,520 en que en primer lugar 3639 02:41:00,520 --> 02:41:02,840 el payload lo borro, lo dejo vacío 3640 02:41:02,840 --> 02:41:04,639 y dentro del payload 3641 02:41:04,639 --> 02:41:06,860 creo luego dos objetos 3642 02:41:06,860 --> 02:41:08,840 el primer objeto es un objeto 3643 02:41:08,840 --> 02:41:09,260 JSON 3644 02:41:09,260 --> 02:41:12,579 en el cual en la etiqueta exterior 3645 02:41:12,579 --> 02:41:14,059 almaceno un número aleatorio 3646 02:41:14,059 --> 02:41:16,500 entre 0 y 1 multiplicado por 5 3647 02:41:16,500 --> 02:41:17,940 al que le sumo el valor 20 3648 02:41:17,940 --> 02:41:20,500 y en el campo interior 3649 02:41:20,500 --> 02:41:21,940 almaceno un número aleatorio 3650 02:41:21,940 --> 02:41:24,100 entre 0 y 1 multiplicado por 5 3651 02:41:24,100 --> 02:41:26,260 y luego en el payload 1 simplemente 3652 02:41:26,260 --> 02:41:28,719 creo un objeto que es nevera 25 y unidad C 3653 02:41:28,719 --> 02:41:30,020 como veis es muy parecido 3654 02:41:30,020 --> 02:41:31,659 a lo que he hecho antes 3655 02:41:31,659 --> 02:41:34,280 y ahora seguramente os estaréis preguntando 3656 02:41:34,280 --> 02:41:36,399 ¿por qué lo haces así? ¿por qué lo pones 3657 02:41:36,399 --> 02:41:38,620 en dos objetos? ¿por qué no lo has puesto en un solo objeto? 3658 02:41:39,340 --> 02:41:40,479 bien, pues eso es porque me he leído 3659 02:41:40,479 --> 02:41:42,459 la documentación, ¿vale? y ahora la vais 3660 02:41:42,459 --> 02:41:44,239 a leer vosotros también cuando vayamos a lo de red 3661 02:41:44,239 --> 02:41:47,979 si yo pongo un nodo de inyección 3662 02:41:47,979 --> 02:41:51,530 y luego busco 3663 02:41:51,530 --> 02:41:52,309 en InfluxDB 3664 02:41:52,309 --> 02:41:54,850 para publicar en InfluxDB 3665 02:41:54,850 --> 02:41:58,940 que es este, veis como ya 3666 02:41:58,940 --> 02:42:00,680 os había advertido yo, aparece el triángulo 3667 02:42:00,680 --> 02:42:02,739 pero lo que me interesa ahora es que al hacer click 3668 02:42:02,739 --> 02:42:04,899 en el nodo de InfluxDB e ir a la 3669 02:42:04,899 --> 02:42:08,739 documentación, te dice aquí 3670 02:42:08,739 --> 02:42:12,680 dependiendo 3671 02:42:12,680 --> 02:42:14,360 de cómo puedes hacer las cosas 3672 02:42:14,360 --> 02:42:16,200 de varias formas, pero yo la que he elegido es esta 3673 02:42:16,200 --> 02:42:18,159 dice, si 3674 02:42:18,159 --> 02:42:20,159 la carga de pago es 3675 02:42:20,159 --> 02:42:22,280 un array, un vector 3676 02:42:22,280 --> 02:42:24,280 o una matriz que contiene dos objetos 3677 02:42:24,280 --> 02:42:26,680 el primer objeto se considerará 3678 02:42:26,680 --> 02:42:27,780 que son los campos 3679 02:42:27,780 --> 02:42:30,340 y el segundo objeto se considerará que son 3680 02:42:30,340 --> 02:42:32,340 las etiquetas. ¿Veis? Por eso 3681 02:42:32,340 --> 02:42:33,819 yo sabía que en el primer objeto 3682 02:42:33,819 --> 02:42:35,399 tenía que poner los campos 3683 02:42:35,399 --> 02:42:38,340 y en el segundo objeto tenía que 3684 02:42:38,340 --> 02:42:40,440 poner las etiquetas. Bueno, pues armado 3685 02:42:40,440 --> 02:42:42,479 con toda esta información, ya directamente 3686 02:42:42,479 --> 02:42:44,299 Perdona, ¿qué influx de B has 3687 02:42:44,299 --> 02:42:46,600 cogido? Porque pone input, output 3688 02:42:46,600 --> 02:42:47,399 output 3689 02:42:47,399 --> 02:42:50,940 en este caso es output porque queremos guardar 3690 02:42:50,940 --> 02:42:52,739 en la base de datos, si quisiéramos 3691 02:42:52,739 --> 02:42:54,579 rescatar de la base de datos sería input 3692 02:42:54,579 --> 02:43:02,180 aquí está, yo he cogido 3693 02:43:02,180 --> 02:43:03,899 este, influx db out 3694 02:43:03,899 --> 02:43:05,540 si quisiera 3695 02:43:05,540 --> 02:43:08,559 esto, influx dbi 3696 02:43:08,559 --> 02:43:10,500 es para lanzar una consulta 3697 02:43:10,500 --> 02:43:12,020 y rescatar información 3698 02:43:12,020 --> 02:43:14,420 de la base de datos, influx db batch 3699 02:43:14,420 --> 02:43:16,040 es para lanzar lotes 3700 02:43:16,040 --> 02:43:17,719 son lotes para guardar información 3701 02:43:17,719 --> 02:43:19,840 por lotes, en vez de measurement a measurement 3702 02:43:19,840 --> 02:43:20,659 por un lote 3703 02:43:20,659 --> 02:43:22,940 bueno, lo que os decía 3704 02:43:22,940 --> 02:43:25,459 tengo ese nodo, tengo ese nodo, me falta el nodo 3705 02:43:25,459 --> 02:43:27,340 de función, el nodo de función 3706 02:43:27,340 --> 02:43:29,239 está, a ver si lo encuentro 3707 02:43:29,239 --> 02:43:31,360 entre los, sí, pues entre los de función 3708 02:43:31,360 --> 02:43:33,559 precisamente, ahí está 3709 02:43:33,559 --> 02:43:40,780 entonces yo uno este con este 3710 02:43:40,780 --> 02:43:42,120 uno este con este 3711 02:43:42,120 --> 02:43:44,799 y vamos a empezar por el 3712 02:43:44,799 --> 02:43:46,680 de influxdb, entonces si yo 3713 02:43:46,680 --> 02:43:48,620 hago doble clic aquí para configurarlo 3714 02:43:48,620 --> 02:43:50,659 veis que lo que me está diciendo es 3715 02:43:50,659 --> 02:43:52,520 justo eso, me está diciendo, oye, es que no sé 3716 02:43:52,520 --> 02:43:54,520 en qué servidor influxdb 3717 02:43:54,520 --> 02:43:56,780 quieres almacenar la información 3718 02:43:56,780 --> 02:43:58,540 pues pulso el signo más 3719 02:43:58,540 --> 02:44:01,159 y es tan sencillo como darle un nombre 3720 02:44:01,159 --> 02:44:04,159 pues yo voy a llamarle influxdb-jf 3721 02:44:04,159 --> 02:44:07,239 veis aquí es importante lo de la versión 3722 02:44:07,239 --> 02:44:09,180 por eso os decía coger la versión 1 3723 02:44:09,180 --> 02:44:11,420 podríamos usar también la versión 2 3724 02:44:11,420 --> 02:44:13,600 entonces como tenemos la versión 1 3725 02:44:13,600 --> 02:44:14,520 pues la versión 1 3726 02:44:14,520 --> 02:44:17,260 y lo bueno ahora es que yo no tengo que escribir aquí 3727 02:44:17,260 --> 02:44:18,239 ninguna dirección ip 3728 02:44:18,239 --> 02:44:20,280 aquí lo que tengo que poner es directamente 3729 02:44:20,280 --> 02:44:23,520 influxdb, el nombre del contenedor 3730 02:44:23,520 --> 02:44:24,979 porque tanto no de red 3731 02:44:24,979 --> 02:44:27,760 como influxdb están en el mismo stack 3732 02:44:27,760 --> 02:44:29,760 entonces comparten una red interna 3733 02:44:29,760 --> 02:44:31,940 en la que se conocen por su propio nombre 3734 02:44:31,940 --> 02:44:33,360 no necesitan direcciones IP 3735 02:44:33,360 --> 02:44:35,680 luego, ¿en qué base de datos 3736 02:44:35,680 --> 02:44:36,780 quieres guardar los datos? 3737 02:44:37,020 --> 02:44:39,719 la base de datos que he creado antes, que la he creado manualmente 3738 02:44:39,719 --> 02:44:41,559 desde el terminal 3739 02:44:41,559 --> 02:44:43,700 recordad que aquí en el terminal hubo un momento 3740 02:44:43,700 --> 02:44:45,780 en el que yo creé la base 3741 02:44:45,780 --> 02:44:46,639 de datos 3742 02:44:46,639 --> 02:44:49,420 a ver, ¿dónde lo tengo hecho eso? 3743 02:44:50,639 --> 02:44:52,059 es que lo había hecho en la anterior 3744 02:44:52,059 --> 02:45:09,840 Entonces, no sé si se habrá borrado ya. Aquí está. Create database IoT. Como yo ya tengo esa base de datos creada, que se llama IoT, ahora puedo venir aquí y almacenar información en esa base de datos. Le digo añadir y él me dice, vale, muy bien. 3745 02:45:09,840 --> 02:45:11,479 pues entonces tú quieres guardar 3746 02:45:11,479 --> 02:45:14,000 en esa base de datos 3747 02:45:14,000 --> 02:45:16,180 y ahora me pregunta, ¿pero en qué medida? 3748 02:45:17,000 --> 02:45:17,659 pues la medida 3749 02:45:17,659 --> 02:45:19,620 nosotros creo que la estábamos llamando 3750 02:45:19,620 --> 02:45:21,559 temperatura, a ver que lo consulte 3751 02:45:21,559 --> 02:45:22,459 para hacerlo igual 3752 02:45:22,459 --> 02:45:27,879 sí, la habíamos llamado temperatura 3753 02:45:27,879 --> 02:45:29,860 pues escribo ahí, temperatura 3754 02:45:29,860 --> 02:45:33,920 vale, pues ya desaparece el triángulo rojo 3755 02:45:33,920 --> 02:45:36,059 pues la primera parte está resuelta 3756 02:45:36,059 --> 02:45:37,840 ahora vamos ya a la parte de la función 3757 02:45:37,840 --> 02:45:40,379 esto no lo copiéis, si queréis lo hago yo en un momento 3758 02:45:40,379 --> 02:45:41,379 y os lo pego por ahí 3759 02:45:41,379 --> 02:45:44,600 aquí sería decirle, oye, quiero empezar con un payload vacío 3760 02:45:44,600 --> 02:45:54,299 ahí está 3761 02:45:54,299 --> 02:45:56,739 voy a ver que ha pasado con Glowit 3762 02:45:56,739 --> 02:45:58,879 se ha quedado colgado, lo vuelvo a dar 3763 02:45:58,879 --> 02:45:59,559 por si acaso 3764 02:45:59,559 --> 02:46:03,180 vale, lo que os estaba 3765 02:46:03,180 --> 02:46:03,700 diciendo 3766 02:46:03,700 --> 02:46:06,700 le pongo que quiero una carga 3767 02:46:06,700 --> 02:46:08,319 de pago vacía 3768 02:46:08,319 --> 02:46:10,680 luego en el 3769 02:46:10,680 --> 02:46:11,399 payload 3770 02:46:11,399 --> 02:46:13,040 0 3771 02:46:13,040 --> 02:46:16,059 creo un objeto 3772 02:46:16,059 --> 02:46:19,139 JSON que va a tener como exterior 3773 02:46:19,139 --> 02:46:23,719 el valor 20 por ejemplo 3774 02:46:23,719 --> 02:46:28,379 más un math random multiplicado por 5 3775 02:46:28,379 --> 02:46:32,139 y que va a tener como objeto 3776 02:46:32,139 --> 02:46:36,299 interior simplemente un math 3777 02:46:36,299 --> 02:46:37,540 random por 5 3778 02:46:37,540 --> 02:46:41,440 random 3779 02:46:41,440 --> 02:46:45,340 random por 5 3780 02:46:45,340 --> 02:46:47,799 esto lo podéis hacer más grande 3781 02:46:47,799 --> 02:46:48,760 si queréis verlo mejor 3782 02:46:48,760 --> 02:46:51,059 eso respecto al 3783 02:46:51,059 --> 02:46:53,739 a ver aquí he puesto un punto en vez de una coma 3784 02:46:53,739 --> 02:46:54,180 cuidado 3785 02:46:54,180 --> 02:46:57,940 punto y coma al final porque esto es javascript 3786 02:46:57,940 --> 02:46:59,819 y en el 3787 02:46:59,819 --> 02:47:01,500 message payload 1 3788 02:47:01,500 --> 02:47:04,040 voy a crearme 3789 02:47:04,040 --> 02:47:05,780 los tags 3790 02:47:05,780 --> 02:47:07,719 un objeto json para los tags 3791 02:47:07,719 --> 02:47:08,840 que era 3792 02:47:08,840 --> 02:47:11,940 nevera 2.25 3793 02:47:12,559 --> 02:47:13,940 unidad 3794 02:47:13,940 --> 02:47:19,120 Unidad 2 puntos C. 3795 02:47:19,780 --> 02:47:20,659 De grado tercio. 3796 02:47:21,540 --> 02:47:21,840 Vale. 3797 02:47:22,079 --> 02:47:25,100 Y esto lo voy a pegar ahí en el chat para que lo tengáis. 3798 02:47:27,559 --> 02:47:33,280 Le digo hecho. 3799 02:47:34,920 --> 02:47:36,360 Le digo instanciar. 3800 02:47:37,000 --> 02:47:37,860 A ver, tengo un error. 3801 02:47:37,860 --> 02:47:39,379 Me aparece aquí el triángulo rojo. 3802 02:47:40,020 --> 02:47:41,100 Eso es que algo he escrito mal. 3803 02:47:41,200 --> 02:47:43,680 Que falta el punto y coma que se me ha olvidado aquí al final. 3804 02:47:44,559 --> 02:47:45,040 Punto y coma. 3805 02:47:46,420 --> 02:47:47,340 Sigue habiendo un error. 3806 02:47:47,340 --> 02:47:48,579 que más se me ha olvidado 3807 02:47:48,579 --> 02:47:52,659 mensaje pilot 3808 02:47:52,659 --> 02:47:56,889 igual tengo que ponerlo así 3809 02:47:56,889 --> 02:47:58,649 para indicarle que es un array vacío 3810 02:47:58,649 --> 02:47:59,909 sí, eso, justo, ¿vale? 3811 02:48:00,209 --> 02:48:02,729 perdona, lo vuelvo a pegar, que tenía un fallo 3812 02:48:02,729 --> 02:48:05,549 tengo aquí 3813 02:48:05,549 --> 02:48:12,760 ese es el segundo que he pegado 3814 02:48:12,760 --> 02:48:15,379 entre tanto, Gowey ha seguido a vuelta a fallar 3815 02:48:15,379 --> 02:48:16,180 le vuelvo a dar 3816 02:48:16,180 --> 02:48:18,399 bien, esto está hecho 3817 02:48:18,399 --> 02:48:20,319 ya lo tengo todo en azul 3818 02:48:20,319 --> 02:48:23,440 eso quiere decir que ahora ya puedo instanciar 3819 02:48:23,440 --> 02:48:25,479 ya lo tengo instanciado 3820 02:48:25,479 --> 02:48:27,899 ahora me voy a la mariquita 3821 02:48:27,899 --> 02:48:29,159 y si hago clic aquí 3822 02:48:29,159 --> 02:48:31,760 no pasa nada, veis que estoy inyectando 3823 02:48:31,760 --> 02:48:33,579 y aquí no aparece nada 3824 02:48:33,579 --> 02:48:35,100 porque yo no he puesto ningún depurador 3825 02:48:35,100 --> 02:48:37,139 pero sin embargo ahora 3826 02:48:37,139 --> 02:48:39,020 si me voy 3827 02:48:39,020 --> 02:48:41,680 a la consola 3828 02:48:41,680 --> 02:48:44,020 y ejecuto el mismo comando de antes 3829 02:48:44,020 --> 02:48:45,899 veis que ahora ya no tengo 3830 02:48:45,899 --> 02:48:47,700 un único punto, ahora ya tengo 3831 02:48:47,700 --> 02:48:49,399 muchos puntos para 3832 02:48:49,399 --> 02:48:51,379 temperatura 3833 02:48:51,379 --> 02:48:53,620 veis que tengo ahí todos los valores 3834 02:48:53,620 --> 02:48:55,200 que se están introduciendo al azar 3835 02:48:55,200 --> 02:48:57,280 para la temperatura 3836 02:48:57,280 --> 02:48:59,340 vamos a poner en vez de nevera y exterior 3837 02:48:59,340 --> 02:49:01,299 vamos a poner exterior e interior 3838 02:49:01,299 --> 02:49:03,100 interior 3839 02:49:03,100 --> 02:49:07,040 ¿vale? ¿veis como se han ido almacenando? 3840 02:49:07,360 --> 02:49:08,680 se han ido introduciendo números 3841 02:49:08,680 --> 02:49:12,239 de 20 más 3842 02:49:12,239 --> 02:49:14,319 un número al azar entre 0 y 5 3843 02:49:14,319 --> 02:49:17,280 para la exterior y un número al azar entre 0 y 5 3844 02:49:17,280 --> 02:49:19,180 para la interior 3845 02:49:19,180 --> 02:49:24,000 ahora 3846 02:49:24,000 --> 02:49:28,190 ¿nos pones en el chat lo de la función 3847 02:49:28,190 --> 02:49:29,909 de nuevo? para que esté bien 3848 02:49:29,909 --> 02:49:32,610 no está bien, la segunda que he puesto está bien 3849 02:49:32,610 --> 02:49:34,370 lo he puesto dos veces 3850 02:49:34,370 --> 02:49:35,290 la segunda está bien 3851 02:49:35,290 --> 02:49:39,959 me voy a ir con la ilusión de que funcione 3852 02:49:39,959 --> 02:49:42,219 Huawei pero veo que me voy a ir 3853 02:49:42,219 --> 02:49:44,319 con la ilusión 3854 02:49:44,319 --> 02:49:46,260 vale, bueno, seguimos 3855 02:49:46,260 --> 02:49:52,110 ¿qué más ventajas tiene 3856 02:49:52,110 --> 02:49:54,069 Node-RED? pues te permite crear paneles 3857 02:49:54,069 --> 02:49:56,229 de control, podemos crear 3858 02:49:56,229 --> 02:49:57,770 un dashboard sencillito, es decir 3859 02:49:57,770 --> 02:49:59,950 yo quiero mostrar un gráfico, pues lo puedo 3860 02:49:59,950 --> 02:50:01,309 hacer directamente en Node-RED 3861 02:50:01,309 --> 02:50:03,889 ¿por qué querría hacer esto? porque vais a ver 3862 02:50:03,889 --> 02:50:06,469 que las alternativas son bastante más complicadas 3863 02:50:06,469 --> 02:50:08,229 incluso la más simple 3864 02:50:08,229 --> 02:50:10,370 que es Grafana, cuando veamos Grafana 3865 02:50:10,370 --> 02:50:12,229 posteriormente, porque hoy ya 3866 02:50:12,229 --> 02:50:14,149 no va a ser, vais a ver que es 3867 02:50:14,149 --> 02:50:15,969 bastante tedioso 3868 02:50:15,969 --> 02:50:18,010 por decir poco, ¿vale? 3869 02:50:18,469 --> 02:50:19,809 entonces, lo bueno que tiene 3870 02:50:19,809 --> 02:50:22,010 Node.js es que me incluye un sistema 3871 02:50:22,010 --> 02:50:23,889 de dashboard que es muy precario 3872 02:50:23,889 --> 02:50:25,809 pero en algunos casos es suficiente 3873 02:50:25,809 --> 02:50:28,270 ese sistema de dashboard 3874 02:50:28,270 --> 02:50:30,270 está basado en los siguientes elementos que os muestro 3875 02:50:30,270 --> 02:50:31,950 aquí, ¿vale? está basado en fichas 3876 02:50:31,950 --> 02:50:34,110 dentro de esas fichas 3877 02:50:34,110 --> 02:50:36,209 vosotros lo que vais a tener son grupos 3878 02:50:36,209 --> 02:50:37,250 ¿vale? 3879 02:50:37,750 --> 02:50:40,549 y esos grupos pueden contener o bien gráficos 3880 02:50:40,549 --> 02:50:42,350 como estáis viendo aquí, un gráfico de líneas 3881 02:50:42,350 --> 02:50:44,090 de las temperaturas exterior e interior 3882 02:50:44,090 --> 02:50:46,309 de InfosDB, o bien controles 3883 02:50:46,309 --> 02:50:47,790 pueden ser actuadores también 3884 02:50:47,790 --> 02:50:49,489 para que tú pulsar un botón 3885 02:50:49,489 --> 02:50:52,290 y que se encienda una luz, o se ponga en marcha una máquina 3886 02:50:52,290 --> 02:50:53,149 o lo que tú quieras 3887 02:50:53,149 --> 02:50:56,190 para crear esto, tenemos 3888 02:50:56,190 --> 02:50:58,829 en InfosDB 3889 02:50:58,829 --> 02:51:00,290 una sección 3890 02:51:00,290 --> 02:51:04,250 completa, aquí abajo, dedicada a los 3891 02:51:04,250 --> 02:51:08,329 dashboards, que es todo esto que veis aquí. Veis que tenéis un montón de interfaces 3892 02:51:08,329 --> 02:51:11,790 de usuario, botones, menús desplegables, deslizantes, 3893 02:51:12,430 --> 02:51:16,229 numéricos, entradas de texto, selectores de color, y luego tenéis también 3894 02:51:16,229 --> 02:51:20,149 otros para campos de texto, relojes, relojitos de estos 3895 02:51:20,149 --> 02:51:23,850 para marcar analógicamente, gráficos, incluso salidas de audio, 3896 02:51:24,030 --> 02:51:28,170 notificaciones, ¿vale? Tenemos muchísimas posibilidades. Entonces, 3897 02:51:28,170 --> 02:51:34,680 Entonces, lo que vamos a ver, no sé si nos va a dar tiempo hoy, pero bueno, por lo menos lo voy a plantear. 3898 02:51:35,319 --> 02:51:44,239 ¿Veis que nosotros teníamos este flujo inicial en el cual estábamos insertando temperaturas al azar en la base de datos sin flujo de BED? 3899 02:51:44,639 --> 02:51:52,639 Pues ahora lo que vamos a hacer es coger esos datos y los vamos a filtrar. 3900 02:51:53,159 --> 02:51:56,659 Vamos a quitar los tags y nos vamos a quedar solo con los campos. 3901 02:51:56,659 --> 02:52:10,139 Es decir, nos vamos a quedar solamente con los valores de exterior e interior, que eran las temperaturas. Esos valores los vamos a pasar por un nodo de tipo split. ¿Eso qué va a hacer? Pues que los va a dividir. 3902 02:52:10,139 --> 02:52:27,500 Es decir, en lugar de ser un solo payload, una sola carga de pago con exterior e interior, lo va a convertir en dos cargas de pago, una para exterior y otra para interior, y luego se las va a mandar directamente a un gráfico. 3903 02:52:27,500 --> 02:52:34,319 Ese es el cometido que tenemos a continuación y voy a intentar hacerlo. 3904 02:52:34,680 --> 02:52:40,819 Entonces, a ver si me da tiempo, me vengo aquí a la función, voy a crear una función nueva, perdón. 3905 02:52:42,180 --> 02:52:50,159 Y en esa función lo único que voy a hacer, como veis aquí, es decir, la carga de pago va a ser solamente lo que reciba en el objeto 0. 3906 02:52:50,299 --> 02:52:55,000 Recordad que en el objeto 0 iban los campos, entonces quitamos los tags. 3907 02:52:55,000 --> 02:53:04,280 Entonces le digo aquí, mi6.payload es igual a lo que he recibido de mi6.payload en el objeto 0. 3908 02:53:05,479 --> 02:53:13,219 De esta forma ya, lo que pase a partir de aquí, va a ser solamente los campos. 3909 02:53:13,440 --> 02:53:14,420 Esto es lo que he hecho aquí. 3910 02:53:15,260 --> 02:53:22,559 Luego, en el nodo de split, esto es muy importante. 3911 02:53:22,559 --> 02:53:24,620 lo que voy a decir es que quiero copiar 3912 02:53:24,620 --> 02:53:26,840 la clave, fijaos que ahí me va a llegar 3913 02:53:26,840 --> 02:53:28,780 exterior 25, interior 3914 02:53:28,780 --> 02:53:30,979 3,8, pues la clave es exterior 3915 02:53:30,979 --> 02:53:32,780 e interior, entonces 3916 02:53:32,780 --> 02:53:35,059 lo que voy a hacer es copiar exterior e interior 3917 02:53:35,059 --> 02:53:37,180 en el topic del mensaje 3918 02:53:37,180 --> 02:53:38,899 recordad que os he dicho antes que los mensajes 3919 02:53:38,899 --> 02:53:39,959 tienen una carga de pago 3920 02:53:39,959 --> 02:53:42,799 y tienen un topic, pues lo voy a 3921 02:53:42,799 --> 02:53:44,739 cargar en el topic, ¿por qué 3922 02:53:44,739 --> 02:53:47,059 hago esto? porque yo ya me he leído 3923 02:53:47,059 --> 02:53:48,520 la documentación 3924 02:53:48,520 --> 02:53:50,879 y sé que los gráficos 3925 02:53:50,879 --> 02:53:52,239 exigen 3926 02:53:52,239 --> 02:53:55,600 que los valores 3927 02:53:55,600 --> 02:53:57,879 o sea, la serie de valores 3928 02:53:57,879 --> 02:53:59,760 el nombre de la serie, aparezca en el 3929 02:53:59,760 --> 02:54:01,899 topic, entonces lo hago así 3930 02:54:01,899 --> 02:54:03,579 añado un bloque 3931 02:54:03,579 --> 02:54:04,520 de tipo split 3932 02:54:04,520 --> 02:54:07,719 esos están en los de modificación 3933 02:54:07,719 --> 02:54:09,639 a ver donde están, función 3934 02:54:09,639 --> 02:54:11,100 red, en secuencia 3935 02:54:11,100 --> 02:54:13,260 en secuencia, split 3936 02:54:13,260 --> 02:54:17,489 vale, y yo digo aquí 3937 02:54:17,489 --> 02:54:18,489 que lo quiero copiar 3938 02:54:18,489 --> 02:54:20,930 en topic 3939 02:54:20,930 --> 02:54:23,450 copiar clave 3940 02:54:23,450 --> 02:54:25,770 a topic, a ver que no se me pase nada 3941 02:54:25,770 --> 02:54:29,329 tala tala, creo que está 3942 02:54:29,329 --> 02:54:32,790 correcto, hecho 3943 02:54:32,790 --> 02:54:35,430 vale, y ahora 3944 02:54:35,430 --> 02:54:37,190 por último, pongo 3945 02:54:37,190 --> 02:54:38,750 un nodo de tipo gráfico 3946 02:54:38,750 --> 02:54:41,190 que me vengo aquí abajo, a los nodos de 3947 02:54:41,190 --> 02:54:43,329 tipo gráfico, veis que va a aparecer el triángulo 3948 02:54:43,329 --> 02:54:45,229 rojo, porque me está pidiendo 3949 02:54:45,229 --> 02:54:46,110 configurar algo 3950 02:54:46,110 --> 02:54:49,250 vale, entonces lo que me 3951 02:54:49,250 --> 02:54:51,270 está pidiendo es que tengo que añadir un nuevo 3952 02:54:51,270 --> 02:54:53,170 grupo de dashboards, vale, fijaos que os he 3953 02:54:53,170 --> 02:54:54,930 dicho aquí antes, que los dashboards 3954 02:54:54,930 --> 02:54:56,469 están compuestos por fichas 3955 02:54:56,469 --> 02:54:58,750 que contienen a su vez grupos y dentro de los grupos 3956 02:54:58,750 --> 02:55:00,770 puede haber gráficos o puede haber controles 3957 02:55:00,770 --> 02:55:02,809 ¿vale? entonces yo tengo que añadir un nuevo 3958 02:55:02,809 --> 02:55:04,569 dashboard, el dashboard 3959 02:55:04,569 --> 02:55:06,809 lo tengo que añadir a un 3960 02:55:06,809 --> 02:55:08,690 tablero, a una ficha, entonces tengo que añadir 3961 02:55:08,690 --> 02:55:10,790 una ficha ¿vale? entonces la ficha la voy a 3962 02:55:10,790 --> 02:55:11,930 llamar por ejemplo Juanfe 3963 02:55:11,930 --> 02:55:14,670 ya tengo la ficha 3964 02:55:14,670 --> 02:55:16,350 una vez que tengo la ficha 3965 02:55:16,350 --> 02:55:18,870 esto ya 3966 02:55:18,870 --> 02:55:19,510 está hecho 3967 02:55:19,510 --> 02:55:22,690 no sé si ahora estoy añadiendo el grupo 3968 02:55:22,690 --> 02:55:24,809 el grupo lo voy a llamar 3969 02:55:24,809 --> 02:55:26,590 temperaturas 3970 02:55:26,590 --> 02:55:33,870 ¿vale? y veis ya tengo ahí 3971 02:55:33,870 --> 02:55:35,030 donde se va a publicar 3972 02:55:35,030 --> 02:55:37,549 y luego, bueno, aquí tenéis pues 3973 02:55:37,549 --> 02:55:39,649 un montón de opciones para configurar 3974 02:55:39,649 --> 02:55:42,049 no sé si he configurado alguna más en la presentación 3975 02:55:42,049 --> 02:55:42,709 voy a ver 3976 02:55:42,709 --> 02:55:45,670 bueno, mostrar la leyenda para que 3977 02:55:45,670 --> 02:55:48,229 sepamos cuáles son los nombres de las 3978 02:55:48,229 --> 02:55:51,809 de las series, ahí van a aparecer exterior e interior 3979 02:55:51,809 --> 02:55:53,190 y ya estaría, estaría hecho 3980 02:55:53,190 --> 02:55:55,829 ¿vale? entonces ya puedo instanciar 3981 02:55:55,829 --> 02:55:56,389 todo esto 3982 02:55:56,389 --> 02:55:59,110 y una vez que lo tengo instanciado 3983 02:55:59,110 --> 02:56:01,129 a ver ahora, ¿dónde está? 3984 02:56:01,209 --> 02:56:03,489 lo de mostrar los dashboards, está aquí 3985 02:56:03,489 --> 02:56:05,090 veis que ahí tengo 3986 02:56:05,090 --> 02:56:07,069 mi dashboard de temperatura 3987 02:56:07,069 --> 02:56:08,909 y veis que aquí pone muy pequeñito 3988 02:56:08,909 --> 02:56:10,930 link, ¿vale? 3989 02:56:10,969 --> 02:56:12,430 pues ahí si hago clic en el link 3990 02:56:12,430 --> 02:56:17,479 ¿por qué no me deja acceder al link? 3991 02:56:17,739 --> 02:56:19,579 ah, no, perdonad, que le he dado a añadir link 3992 02:56:19,579 --> 02:56:21,559 no, no, no es ahí, perdonad que me he equivocado 3993 02:56:21,559 --> 02:56:23,979 está aquí en temperatura 3994 02:56:23,979 --> 02:56:27,500 aquí, perdonad, sería 3995 02:56:27,500 --> 02:56:29,239 este otro icono, el que está aquí arriba, ¿vale? 3996 02:56:29,260 --> 02:56:31,680 el que está encima del link, hago clic ahí 3997 02:56:31,680 --> 02:56:34,399 y ya directamente tengo aquí 3998 02:56:34,399 --> 02:56:37,020 la ficha Juanfe con el grupo 3999 02:56:37,020 --> 02:56:39,059 temperaturas, de tal forma que 4000 02:56:39,059 --> 02:56:40,739 si ahora nosotros vamos 4001 02:56:40,739 --> 02:56:43,420 insertando aquí unas cuantas temperaturas 4002 02:56:43,420 --> 02:56:46,260 a ver, la vuelta a fallar 4003 02:56:46,260 --> 02:56:48,299 último intento 4004 02:56:48,299 --> 02:56:50,840 lo que vamos a ver es que 4005 02:56:50,840 --> 02:56:52,739 esas temperaturas tendrían que estar apareciendo 4006 02:56:52,739 --> 02:56:54,739 aquí, y no están apareciendo porque 4007 02:56:54,739 --> 02:56:57,899 a ver, algo he hecho mal 4008 02:56:57,899 --> 02:57:02,959 he mandado la función 4009 02:57:02,959 --> 02:57:05,219 que es el payload 0 4010 02:57:05,219 --> 02:57:07,399 aquí he dividido por topic 4011 02:57:07,399 --> 02:57:09,360 y aquí he mandado 4012 02:57:09,360 --> 02:57:11,159 el gráfico, el gráfico está en 4013 02:57:11,159 --> 02:57:13,040 juanfetemperatura, la voy a echar 4014 02:57:13,040 --> 02:57:19,379 muestro la leyenda, algo se me ha pasado 4015 02:57:19,379 --> 02:57:21,120 aquí, me voy a borrar este 4016 02:57:21,120 --> 02:57:23,159 link que no lo tenía que haber metido 4017 02:57:23,159 --> 02:57:26,239 distancio 4018 02:57:26,239 --> 02:57:27,940 una cosa 4019 02:57:27,940 --> 02:57:29,540 lo de dividir 4020 02:57:29,540 --> 02:57:32,280 el array 4021 02:57:32,280 --> 02:57:33,719 no lo hacías en la función 1 4022 02:57:33,719 --> 02:57:36,420 no, aquí en la 4023 02:57:36,420 --> 02:57:38,680 función esta lo que he hecho es descartarlo 4024 02:57:38,680 --> 02:57:40,399 en esa solo si 4025 02:57:40,399 --> 02:57:41,799 pero digo, en la función 4026 02:57:41,799 --> 02:57:43,260 en la anterior 4027 02:57:43,260 --> 02:57:44,840 en la de arriba 4028 02:57:44,840 --> 02:57:46,239 ah perdón 4029 02:57:46,239 --> 02:57:48,059 si, si, si 4030 02:57:48,059 --> 02:57:50,719 claro, tengo que sacarlo de aquí 4031 02:57:50,719 --> 02:57:51,799 tienes razón Germán, gracias 4032 02:57:51,799 --> 02:58:21,329 Sí, sí, perfecto, gracias. Entonces, le doy ahí, instanciar, instanciado con éxito, y inyecto unos cuantos valores aquí. ¿Veis? Y ya va apareciendo ahí la temperatura exterior e interior. ¿Veis? El gráfico. Esto, idealmente, pues lo estaría mandando el SP32. En lugar de hacerlo yo con un inyector, sería el propio SP32 el que lo estaría mandando y estaríamos ya viendo aquí el gráfico en tiempo real. 4033 02:58:21,329 --> 02:58:23,829 bueno, son las 7 4034 02:58:23,829 --> 02:58:25,329 vamos a ver 4035 02:58:25,329 --> 02:58:27,989 os voy a dejar estas máquinas virtuales 4036 02:58:27,989 --> 02:58:29,790 hasta el jueves que viene 4037 02:58:29,790 --> 02:58:31,690 para que podáis practicar con ellas 4038 02:58:31,690 --> 02:58:33,110 luego las borraré 4039 02:58:33,110 --> 02:58:34,989 por favor no abuséis 4040 02:58:34,989 --> 02:58:37,110 no sé que no vais a abusar de ellas 4041 02:58:37,110 --> 02:58:39,670 quiero decir, no las uséis para mandar correos 4042 02:58:39,670 --> 02:58:41,229 indeseados ni cosas por el estilo 4043 02:58:41,229 --> 02:58:43,030 entonces 4044 02:58:43,030 --> 02:58:46,049 nada más, espero que la grabación 4045 02:58:46,049 --> 02:58:47,909 os sirva de referencia porque entiendo 4046 02:58:47,909 --> 02:58:50,010 que es mucha información y tendréis que irla revisando 4047 02:58:50,010 --> 02:58:50,569 poco a poco 4048 02:58:50,569 --> 02:58:53,309 y aquí quedo para cualquier consulta 4049 02:58:53,309 --> 02:58:54,049 que me queráis hacer 4050 02:58:54,049 --> 02:58:57,450 una cosa que el tema 4051 02:58:57,450 --> 02:58:59,430 es que para acceder aquí 4052 02:58:59,430 --> 02:59:00,610 al nodo de red 4053 02:59:00,610 --> 02:59:02,989 no te pide ni usuario ni contraseña 4054 02:59:02,989 --> 02:59:05,149 yo me puedo conectar a cualquiera 4055 02:59:05,149 --> 02:59:06,450 de los compañeros 4056 02:59:06,450 --> 02:59:09,209 claro Germán, por eso os digo que no abuséis 4057 02:59:09,209 --> 02:59:10,610 eso luego 4058 02:59:10,610 --> 02:59:13,350 lo digo como concepto 4059 02:59:13,350 --> 02:59:15,549 que poca seguridad tiene 4060 02:59:15,549 --> 02:59:17,370 no, porque por defecto 4061 02:59:17,370 --> 02:59:19,110 siempre viene todo sin seguridad 4062 02:59:19,110 --> 02:59:21,049 pero tú te vas a Node.js Security 4063 02:59:21,049 --> 02:59:23,690 y vas a encontrar ahí cómo añadirle 4064 02:59:23,690 --> 02:59:25,489 según el tipo de seguridad que tú quieras 4065 02:59:25,489 --> 02:59:27,430 si quieres por contraseña, si quieres por 4066 02:59:27,430 --> 02:59:29,409 certificados, entonces aquí te 4067 02:59:29,409 --> 02:59:31,389 explica cómo tendrías que ir al contenedor 4068 02:59:31,389 --> 02:59:32,649 qué tendrías que ir añadiendo 4069 02:59:32,649 --> 02:59:34,610 para tener seguridad 4070 02:59:34,610 --> 02:59:37,489 incluso hacer seguridad por OAuth 4071 02:59:37,489 --> 02:59:38,549 lo que tú necesites 4072 02:59:38,549 --> 02:59:41,290 pero sí, por defecto vienen todos 4073 02:59:41,290 --> 02:59:43,250 desprotegidos 4074 02:59:43,250 --> 02:59:45,290 ¿para qué? para que sea lo más fácil 4075 02:59:45,290 --> 02:59:47,229 posible ponerte a trabajar 4076 02:59:47,229 --> 03:00:11,149 Luego ya lo aseguras como tú quieres. Grafana, por ejemplo, sí viene protegido. Grafana vais a ver que si intentáis acceder a Grafana, lo primero que os va a pedir es cambiar la contraseña. Y en Mosquito igual. Mosquito viene sin ninguna protección. Habría que hacer lo mismo. Irse a la documentación de Mosquito y ver qué tipo de seguridad quieres aplicar y aplicarla. Puede ser lo más fácil es utilizar contraseñas y ya está. 4077 03:00:11,149 --> 03:00:16,409 Muy bien 4078 03:00:16,409 --> 03:00:18,409 Vale 4079 03:00:18,409 --> 03:00:21,530 Pues nada, paro yo la grabación si os parece 4080 03:00:21,530 --> 03:00:22,930 Bien, ok 4081 03:00:22,930 --> 03:00:23,629 Gracias 4082 03:00:23,629 --> 03:00:27,969 Y la subo al aula habitual a lo largo de mañana 4083 03:00:27,969 --> 03:00:29,209 Seguiremos con la grabación