{"id":1434,"date":"2022-12-21T11:30:48","date_gmt":"2022-12-21T11:30:48","guid":{"rendered":"http:\/\/patriciocerda.com\/?p=1434"},"modified":"2022-12-21T11:30:48","modified_gmt":"2022-12-21T11:30:48","slug":"openshift-configurar-el-servicio-chrony-ntp-en-openshift-4-x","status":"publish","type":"post","link":"https:\/\/patriciocerda.com\/?p=1434","title":{"rendered":"OpenShift &#8211; Configurar el servicio Chrony NTP en OpenShift 4.x"},"content":{"rendered":"<p>Hola a todos!!\u00a0 Cuando desplegamos OpenShift Container Platform se despliega tambien el servicio Chrony en los nodos del cluster, el cual permite sincronizar la hora de los nodos utilizando un servicio NTP.\u00a0 Sin embargo, este servicio no viene configurado ni es posible configurarlo durante el proceso de despliegue del cluster, por lo cual debemos configurar Chrony una vez el cluster est\u00e1 desplegado.\u00a0 Para esto seguiremos el siguiente procedimiento que permite configurar el cliente NTP en los nodos master y workers.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP01-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-1436\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP01-300x138.jpg\" alt=\"\" width=\"430\" height=\"198\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP01-200x92.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP01-300x138.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP01-400x185.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP01-600x277.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP01-768x354.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP01-800x369.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP01-1024x472.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP01-1200x554.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP01-1536x709.jpg 1536w\" sizes=\"(max-width: 430px) 100vw, 430px\" \/><\/a><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenidos<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/patriciocerda.com\/?p=1434\/#Configuracion_de_Chrony\" >Configuraci\u00f3n de Chrony<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/patriciocerda.com\/?p=1434\/#Ficheros_de_configuracion_para_los_nodos\" >Ficheros de configuraci\u00f3n para los nodos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/patriciocerda.com\/?p=1434\/#Recursos_adicionales\" >Recursos adicionales<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Configuracion_de_Chrony\"><\/span>Configuraci\u00f3n de Chrony<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>El primer paso es crear un fichero de configuraci\u00f3n, que llamaremos chrony.conf y que debe contener los siguientes datos:<\/p>\n<style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-1 > .CodeMirror, .fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-1 fusion-syntax-highlighter-theme-light\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_1\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_1\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_1\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"default\" data-mode=\"text\/x-sh\">ntp.server.com\ndriftfile \/var\/lib\/chrony\/drift\nmakestep 1.0 3\nrtcsync\nlogdir \/var\/log\/chrony\nkeyfile \/etc\/chrony.keys<\/textarea><\/div>\n<p>&nbsp;<\/p>\n<p>A continuaci\u00f3n deberemos codificar este fichero en base64 con el siguiente comando:<\/p>\n<style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-2 > .CodeMirror, .fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-2 fusion-syntax-highlighter-theme-light\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_2\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_2\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_2\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"default\" data-mode=\"text\/x-sh\">base64 -w0 chrony.conf<\/textarea><\/div>\n<p>&nbsp;<\/p>\n<p>Esto nos entregar\u00e1 una secuencia de caracteres similares a este:<\/p>\n<style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-3 > .CodeMirror, .fusion-syntax-highlighter-3 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-3 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-3 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-3 fusion-syntax-highlighter-theme-light\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_3\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_3\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_3\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"default\" data-mode=\"text\/x-sh\">c2VydmVyIDE3Mi4yMC4xMC4xNQpkcmlmdGZpbGUgL3Zhci9saWIvY2hyb255L2RyaWZ0Cm1ha2VzdGVwIDEuMCAzCnJ0Y3N5bmMKbG9nZGlyIC92YXIvbG9nL2Nocm9ueQprZXlmaWxlIC9ldGMvY2hyb255LmtleXMK<\/textarea><\/div>\n<p>&nbsp;<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Ficheros_de_configuracion_para_los_nodos\"><\/span>Ficheros de configuraci\u00f3n para los nodos<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Luego debemos crear dos ficheros YAML para crear dos nuevos MachineConfig en OpenShift que permitan re-configurar los nodos Worker y Master para que puedan sincronizar la hora mediante NTP.<\/p>\n<p>Primero creamos un fichero YAML para los workers:<\/p>\n<style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-4 > .CodeMirror, .fusion-syntax-highlighter-4 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-4 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-4 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-4 fusion-syntax-highlighter-theme-light\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_4\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_4\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_4\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"default\" data-mode=\"text\/x-sh\">apiVersion: machineconfiguration.openshift.io\/v1\nkind: MachineConfig\nmetadata:\n  labels:\n    machineconfiguration.openshift.io\/role: worker\n  name: 50-worker-chrony\nspec:\n  config:\n    ignition:\n      version: 3.1.0\n    storage:\n      files:\n      - contents:\n          source: data:text\/plain;charset=utf-8;base64,PASTE_HERE_THE_BASE64_CODE\n        filesystem: root\n        mode: 0644\n        path: \/etc\/chrony.conf<\/textarea><\/div>\n<p>&nbsp;<\/p>\n<p>Luego creamos el fichero YAML para los nodos master:<\/p>\n<style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-5 > .CodeMirror, .fusion-syntax-highlighter-5 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-5 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-5 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-5 fusion-syntax-highlighter-theme-light\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_5\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_5\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_5\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"default\" data-mode=\"text\/x-sh\">apiVersion: machineconfiguration.openshift.io\/v1\nkind: MachineConfig\nmetadata:\n  labels:\n    machineconfiguration.openshift.io\/role: master\n  name: 50-master-chrony\nspec:\n  config:\n    ignition:\n      version: 3.1.0\n    storage:\n      files:\n      - contents:\n          source: data:text\/plain;charset=utf-8;base64,PASTE_HERE_THE_BASE64_CODE\n        filesystem: root\n        mode: 0644\n        path: \/etc\/chrony.conf<\/textarea><\/div>\n<p>&nbsp;<\/p>\n<p>Una vez creados estos ficheros, simplemente ejecutamos el siguiente comando para aplicarlos en OpenShift:<\/p>\n<style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-6 > .CodeMirror, .fusion-syntax-highlighter-6 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-6 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-6 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-6 fusion-syntax-highlighter-theme-light\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_6\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_6\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_6\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"default\" data-mode=\"text\/x-sh\">oc apply -f masterntp.yaml\noc apply -f workerntp.yaml<\/textarea><\/div>\n<p>&nbsp;<\/p>\n<p>Estos comandos comenzar\u00e1n a aplicar los cambios en los nodos master y workers.\u00a0 El cambio se aplicar\u00e1 a un nodo worker y un nodo master a la vez.\u00a0\u00a0 Como podemos ver en la siguiente imagen, se ha comenzado a actualizar uno de los nodos workers.\u00a0 Noten que el comando <strong><em>oc adm cordon<\/em><\/strong> ha sido aplicado automaticamente para evitar que cualquier pod se ejecute en este nodo mientras est\u00e1 siendo actualizado.<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP02-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-1437\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP02-300x99.jpg\" alt=\"\" width=\"427\" height=\"141\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP02-200x66.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP02-300x99.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP02-400x132.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP02-600x198.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP02-768x253.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP02-800x264.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP02-1024x337.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP02-1200x395.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP02-1536x506.jpg 1536w\" sizes=\"(max-width: 427px) 100vw, 427px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>En la siguiente imagen es posible apreciar los pasos que se ejecutan en cada nodo (master y worker), donde vemos que al momento de comenzar el proceso el nodo marcaba la hora 13:37.\u00a0 Unos minutos despues, y luego de haber aplicado la configuraci\u00f3n NTP, podemos ver que la hora ha sido actualizada a 15:05, que corresponde a la hora correcta.<\/p>\n<p><a href=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP04-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-1435\" src=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP04-300x139.jpg\" alt=\"\" width=\"371\" height=\"172\" srcset=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP04-200x93.jpg 200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP04-300x139.jpg 300w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP04-400x186.jpg 400w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP04-600x279.jpg 600w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP04-768x357.jpg 768w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP04-800x372.jpg 800w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP04-1024x476.jpg 1024w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP04-1200x557.jpg 1200w, https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/NTP04-1536x714.jpg 1536w\" sizes=\"(max-width: 371px) 100vw, 371px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Recursos_adicionales\"><\/span>Recursos adicionales<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Todo este proceso es posible automatizarlo en un script, como podemos ver en el siguiente link, el cual provee un script que genera la configuraci\u00f3n de Chrony y los ficheros YAML, para luego aplicarlos a todo el cluster OpenShift:\u00a0 <a href=\"https:\/\/examples.openshift.pub\/cluster-configuration\/ntp\/\" target=\"_blank\" rel=\"noopener\">https:\/\/examples.openshift.pub\/cluster-configuration\/ntp\/<\/a><\/p>\n<p>Copio tambi\u00e9n el script aqui en caso de que les interese (copiado desde examples.openshift.pub)<\/p>\n<style type=\"text\/css\" scopped=\"scopped\">.fusion-syntax-highlighter-7 > .CodeMirror, .fusion-syntax-highlighter-7 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color1);}.fusion-syntax-highlighter-7 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color2); }.fusion-syntax-highlighter-7 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color8); }<\/style><div class=\"fusion-syntax-highlighter-container fusion-syntax-highlighter-7 fusion-syntax-highlighter-theme-light\" style=\"opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color3);\"><div class=\"syntax-highlighter-copy-code\"><span class=\"syntax-highlighter-copy-code-title\" data-id=\"fusion_syntax_highlighter_7\" style=\"font-size:14px;\">Copy to Clipboard<\/span><\/div><label for=\"fusion_syntax_highlighter_7\" class=\"screen-reader-text\">Syntax Highlighter<\/label><textarea class=\"fusion-syntax-highlighter-textarea\" id=\"fusion_syntax_highlighter_7\" data-readOnly=\"nocursor\" data-lineNumbers=\"1\" data-lineWrapping=\"\" data-theme=\"default\" data-mode=\"text\/x-sh\">chronybase64=$(cat << EOF | base64 -w 0\nserver <NTPSERVER> iburst\ndriftfile \/var\/lib\/chrony\/drift\nmakestep 1.0 3\nrtcsync\nkeyfile \/etc\/chrony.keys\nleapsectz right\/UTC\nlogdir \/var\/log\/chrony\nEOF\n)\n\noc apply -f - << EOF\napiVersion: machineconfiguration.openshift.io\/v1\nkind: MachineConfig\nmetadata:\n  labels:\n    machineconfiguration.openshift.io\/role: worker\n  name: 50-worker-chrony\nspec:\n  config:\n    ignition:\n      version: 3.1.0\n    storage:\n      files:\n      - contents:\n          source: data:text\/plain;charset=utf-8;base64,${chronybase64}\n        filesystem: root\n        mode: 0644\n        path: \/etc\/chrony.conf\nEOF\n\n\noc apply -f - << EOF\napiVersion: machineconfiguration.openshift.io\/v1\nkind: MachineConfig\nmetadata:\n  labels:\n    machineconfiguration.openshift.io\/role: master\n  name: 50-master-chrony\nspec:\n  config:\n    ignition:\n      version: 3.1.0\n    storage:\n      files:\n      - contents:\n          source: data:text\/plain;charset=utf-8;base64,${chronybase64}\n        filesystem: root\n        mode: 0644\n        path: \/etc\/chrony.conf\nEOF\n<\/textarea><\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hola a todos!!\u00a0 Cuando desplegamos OpenShift Container Platform se despliega<\/p>\n","protected":false},"author":1,"featured_media":1440,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[27,68],"tags":[73,32,31,74,75,69],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>OpenShift - Configurar el servicio Chrony NTP en OpenShift 4.x - vLatam<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/patriciocerda.com\/?p=1434\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OpenShift - Configurar el servicio Chrony NTP en OpenShift 4.x - vLatam\" \/>\n<meta property=\"og:description\" content=\"Hola a todos!!\u00a0 Cuando desplegamos OpenShift Container Platform se despliega\" \/>\n<meta property=\"og:url\" content=\"https:\/\/patriciocerda.com\/?p=1434\" \/>\n<meta property=\"og:site_name\" content=\"vLatam\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-21T11:30:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/IntroBlog139.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"pcerda\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"pcerda\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/patriciocerda.com\/?p=1434\",\"url\":\"https:\/\/patriciocerda.com\/?p=1434\",\"name\":\"OpenShift - Configurar el servicio Chrony NTP en OpenShift 4.x - vLatam\",\"isPartOf\":{\"@id\":\"https:\/\/patriciocerda.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/patriciocerda.com\/?p=1434#primaryimage\"},\"image\":{\"@id\":\"https:\/\/patriciocerda.com\/?p=1434#primaryimage\"},\"thumbnailUrl\":\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/IntroBlog139.png\",\"datePublished\":\"2022-12-21T11:30:48+00:00\",\"author\":{\"@id\":\"https:\/\/patriciocerda.com\/#\/schema\/person\/613aa192d7dbcedcd20e08318891aa2a\"},\"breadcrumb\":{\"@id\":\"https:\/\/patriciocerda.com\/?p=1434#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/patriciocerda.com\/?p=1434\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/patriciocerda.com\/?p=1434#primaryimage\",\"url\":\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/IntroBlog139.png\",\"contentUrl\":\"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/IntroBlog139.png\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/patriciocerda.com\/?p=1434#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/patriciocerda.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OpenShift &#8211; Configurar el servicio Chrony NTP en OpenShift 4.x\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/patriciocerda.com\/#website\",\"url\":\"https:\/\/patriciocerda.com\/\",\"name\":\"vLatam\",\"description\":\"El Blog de Patricio Cerda\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/patriciocerda.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/patriciocerda.com\/#\/schema\/person\/613aa192d7dbcedcd20e08318891aa2a\",\"name\":\"pcerda\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/patriciocerda.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/patriciocerda.com\/wp-content\/litespeed\/avatar\/ce92117b9294544adeaad229a8fbac13.jpg?ver=1776772888\",\"contentUrl\":\"https:\/\/patriciocerda.com\/wp-content\/litespeed\/avatar\/ce92117b9294544adeaad229a8fbac13.jpg?ver=1776772888\",\"caption\":\"pcerda\"},\"url\":\"https:\/\/patriciocerda.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"OpenShift - Configurar el servicio Chrony NTP en OpenShift 4.x - vLatam","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/patriciocerda.com\/?p=1434","og_locale":"en_US","og_type":"article","og_title":"OpenShift - Configurar el servicio Chrony NTP en OpenShift 4.x - vLatam","og_description":"Hola a todos!!\u00a0 Cuando desplegamos OpenShift Container Platform se despliega","og_url":"https:\/\/patriciocerda.com\/?p=1434","og_site_name":"vLatam","article_published_time":"2022-12-21T11:30:48+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/IntroBlog139.png","type":"image\/png"}],"author":"pcerda","twitter_card":"summary_large_image","twitter_misc":{"Written by":"pcerda","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/patriciocerda.com\/?p=1434","url":"https:\/\/patriciocerda.com\/?p=1434","name":"OpenShift - Configurar el servicio Chrony NTP en OpenShift 4.x - vLatam","isPartOf":{"@id":"https:\/\/patriciocerda.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/patriciocerda.com\/?p=1434#primaryimage"},"image":{"@id":"https:\/\/patriciocerda.com\/?p=1434#primaryimage"},"thumbnailUrl":"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/IntroBlog139.png","datePublished":"2022-12-21T11:30:48+00:00","author":{"@id":"https:\/\/patriciocerda.com\/#\/schema\/person\/613aa192d7dbcedcd20e08318891aa2a"},"breadcrumb":{"@id":"https:\/\/patriciocerda.com\/?p=1434#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/patriciocerda.com\/?p=1434"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/patriciocerda.com\/?p=1434#primaryimage","url":"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/IntroBlog139.png","contentUrl":"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/IntroBlog139.png","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/patriciocerda.com\/?p=1434#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/patriciocerda.com\/"},{"@type":"ListItem","position":2,"name":"OpenShift &#8211; Configurar el servicio Chrony NTP en OpenShift 4.x"}]},{"@type":"WebSite","@id":"https:\/\/patriciocerda.com\/#website","url":"https:\/\/patriciocerda.com\/","name":"vLatam","description":"El Blog de Patricio Cerda","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/patriciocerda.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/patriciocerda.com\/#\/schema\/person\/613aa192d7dbcedcd20e08318891aa2a","name":"pcerda","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/patriciocerda.com\/#\/schema\/person\/image\/","url":"https:\/\/patriciocerda.com\/wp-content\/litespeed\/avatar\/ce92117b9294544adeaad229a8fbac13.jpg?ver=1776772888","contentUrl":"https:\/\/patriciocerda.com\/wp-content\/litespeed\/avatar\/ce92117b9294544adeaad229a8fbac13.jpg?ver=1776772888","caption":"pcerda"},"url":"https:\/\/patriciocerda.com\/?author=1"}]}},"jetpack_featured_media_url":"https:\/\/patriciocerda.com\/wp-content\/uploads\/2022\/12\/IntroBlog139.png","_links":{"self":[{"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/posts\/1434"}],"collection":[{"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1434"}],"version-history":[{"count":1,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/posts\/1434\/revisions"}],"predecessor-version":[{"id":1441,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/posts\/1434\/revisions\/1441"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=\/wp\/v2\/media\/1440"}],"wp:attachment":[{"href":"https:\/\/patriciocerda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1434"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1434"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/patriciocerda.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}