{"id":2071,"date":"2019-12-01T19:39:38","date_gmt":"2019-12-01T18:39:38","guid":{"rendered":"http:\/\/clemente.pamplona.name\/dba\/?p=2071"},"modified":"2020-01-28T23:00:29","modified_gmt":"2020-01-28T22:00:29","slug":"sintaxsis-basica-de-ansible","status":"publish","type":"post","link":"http:\/\/clemente.pamplona.name\/dba\/sintaxsis-basica-de-ansible\/","title":{"rendered":"Sintaxsis basica de Ansible"},"content":{"rendered":"<p>Los playbooks de Ansible est\u00e1n codificados en YAML , para poder comprender mejor la siguiente tanda de post,  vamos a ver muy muy de pasada la sintaxis b\u00e1sica de ansible.<\/p>\n<p>Antes de empezar, tener claro que ,si seguimos al pie de la letra el documento de formaci\u00f3n de RedHat <i> Automation with Ansible 2.0 DO407<\/i> tenemos que Ansible <font color=red>NO<\/font> funciona con Pyton 3. EL nodo de control debe de tener Pyton 2.6  o 2.7 . Pero ,el sistema en el que esta instalado el tower tiene un pyton 3, con lo que habra que coger la documentacion con pinzas <\/p>\n<h1>Apertura y cierre del playbook <\/h1>\n<p>En Yaml el c\u00f3digo se abre con tres guiones consecutivos<br \/>\n[code lang=\u00bbpy\u00bb]<br \/>\n&#8212;<br \/>\n[\/code]<\/p>\n<h1> Cadenas <\/h1>\n<p>Las cadenas en Yaml no necesitan comillas, puedes incluirlas con comillas simple, debe o sin comillas, y funcionaria en los tres casos <\/p>\n<p>[code lang=\u00bbpy\u00bb]<\/p>\n<p>&#8216; Esto es una cadena &#8216;<br \/>\n&quot;Esto es una cadena &quot;<br \/>\nEsto es una cadena<br \/>\n[\/code]<\/p>\n<h2> Cadenas multilinea <\/h2>\n<p>Al no ser necesario el uso de comillas para las cadenas la primera pregunta que nos viene a la cabeza es \u00bfcomo ponemos las cadenas multilinea?<br \/>\nLa respuesta es muy sencilla, tenemos dos maneras<\/p>\n<p>&#8211; Mediante el caracter <b>|<\/b><br \/>\n[code lang=\u00bbpy\u00bb]<\/p>\n<p>msg: |<br \/>\n  Esto es una cadena<br \/>\n  de mas de dos lineas<br \/>\n  y mas de tres<br \/>\n[\/code]<\/p>\n<p>&#8211; Mediante el caracter <b>><\/b><br \/>\n[code lang=\u00bbpy\u00bb]<br \/>\nmsg: &gt;<br \/>\n  Esto es una cadena<br \/>\n  de mas de dos lineas<br \/>\n  y mas de tres<br \/>\n[\/code]<\/p>\n<h1> Listas <\/h1>\n<p>Las listas en Ansible vienen delimitadas por el caracter <b> &#8211; <\/b><br \/>\n[code lang=\u00bbpy\u00bb]<br \/>\n&#8212;<br \/>\n  &#8211; perro<br \/>\n  &#8211; gato<br \/>\n  &#8211; tortuga<br \/>\n  &#8211; canario<br \/>\n[\/code]<\/p>\n<p>Tambi\u00e9n pueden configurarse delimitadas por comas entre<br \/>\n[code lang=\u00bbpy\u00bb]<br \/>\n  animales:<br \/>\n    [ perro, gato , tortuga , canario ]<br \/>\n[\/code]<\/p>\n<h1> Comentarios <\/h1>\n<p>Los comentarios al igual que en la programaci\u00f3n bash se hacen con el caracter <b>#<\/b><\/p>\n<p>[code lang=\u00bbpy\u00bb]<br \/>\n  # Esto es un comentario<br \/>\n[\/code]<\/p>\n<h1> Chequeo de sintaxis <\/h1>\n<p>Al ser un lenguaje interpretado o hay compilaci\u00f3n, pero si que puedes comprobar si la sintaxis es correcta.<\/p>\n<p>La comprobaci\u00f3n puede llevarse a cabo directamente con el pyton con el comando<\/p>\n<pre>\r\npython -c 'import yaml, sys; print yaml.load(sys.stdin)' < playbook.yml\r\n<\/pre>\n<p>Pero , la mas sencilla para nosotros y mas aconsejable si estamos trabajando con ansible es hacerlo mediante el flan <i> --syntax-check <\/i> del comando ansible-playbook <\/p>\n<pre>\r\nansible-playbook --syntax-check  playbook.yml\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Los playbooks de Ansible est\u00e1n codificados en YAML , para poder comprender mejor la siguiente tanda de post, vamos a ver muy muy de pasada la sintaxis b\u00e1sica de ansible. Antes de empezar, tener claro que ,si seguimos al pie &hellip; <a href=\"http:\/\/clemente.pamplona.name\/dba\/sintaxsis-basica-de-ansible\/\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[976,13],"tags":[],"class_list":["post-2071","post","type-post","status-publish","format-standard","hentry","category-ansible","category-scripting"],"_links":{"self":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/2071","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/comments?post=2071"}],"version-history":[{"count":17,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/2071\/revisions"}],"predecessor-version":[{"id":2134,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/posts\/2071\/revisions\/2134"}],"wp:attachment":[{"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/media?parent=2071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/categories?post=2071"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clemente.pamplona.name\/dba\/wp-json\/wp\/v2\/tags?post=2071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}