<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Ansible</id>
	<title>Ansible - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Ansible"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Ansible&amp;action=history"/>
	<updated>2026-10-21T10:32:59Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Ansible&amp;diff=65380&amp;oldid=prev</id>
		<title>Vieites: /* Primeiros pasos Managed node Windows */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Ansible&amp;diff=65380&amp;oldid=prev"/>
		<updated>2019-01-17T18:38:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Primeiros pasos Managed node Windows&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Introdución ==&lt;br /&gt;
Ansible é unha plataforma de &amp;#039;&amp;#039;software&amp;#039;&amp;#039; libre para configurar e administrar computadoras. Combina instalación multi-nodo, execucións de tarefas &amp;#039;&amp;#039;ad hoc&amp;#039;&amp;#039; e administración de configuracións. Adicionalmente, Ansible é categorizado como unha ferramenta de orquestación. &lt;br /&gt;
* Manexa nodos a través de [https://www.ssh.com/ SSH] e non require ningún &amp;#039;&amp;#039;software&amp;#039;&amp;#039; remoto adicional (excepto [https://www.python.org/ Python] 2.4 o posterior). Dispone de módulos que traballan sobre JSON e a saída estándar pode ser escrita en calquera linguaxe. Nativamente utiliza YAML para describir configuracións reusables dos sistemas.&lt;br /&gt;
* A plataforma foi creada por Michael DeHaan, tamén autor da aplicación de aprovisionamento Cobbler e co-autor do &amp;#039;&amp;#039;framework&amp;#039;&amp;#039; para administración remota &amp;#039;&amp;#039;Func.4​ Es&amp;#039;&amp;#039; incluido como parte da distribución de Linux Fedora. (Fonte[https://es.wikipedia.org/wiki/Ansible_(software) Wikipedia])&lt;br /&gt;
&lt;br /&gt;
== Instalación ==&lt;br /&gt;
A administración dos nodos Linux realízase a través do protocolo SSH e dos nodos Windows con WinRM. Non é necesario instalar un axente neles, só é necesario instalar Ansible nun nodo onde se iniciará a comunicación e se realizarán as tarefas especificadas.&lt;br /&gt;
&lt;br /&gt;
Este nodo, onde se instala Ansible, denomínase máquina de control (&amp;#039;&amp;#039;Control Machine&amp;#039;&amp;#039;). Neste nodo non se instalará &amp;#039;&amp;#039;software&amp;#039;&amp;#039; adicional, como podería ser base de datos, servidor web, servidor ftp,...&lt;br /&gt;
&lt;br /&gt;
Os requisitos para a máquina de control son os seguintes: Python 2 (Versións 2.6 ou 2.7) ou Python 3 (Versións 3.5 ou posteriores). O Windows non se soporta como máquina de control.&lt;br /&gt;
&lt;br /&gt;
Os nodos a automatizar denomínanse nodos xestionados (&amp;#039;&amp;#039;Managed Node&amp;#039;&amp;#039;) e só é preciso ter instalado Python 2.5 ou posterior e, por defecto, utilízase sftp para copiar os ficheiros precisos a ese nodo.&lt;br /&gt;
&lt;br /&gt;
=== Configurar Debian como &amp;#039;&amp;#039;Control Machine&amp;#039;&amp;#039; ===&lt;br /&gt;
O primeiro é ter a máquina:&lt;br /&gt;
* Con Python instalado.&lt;br /&gt;
* Actualizada.&lt;br /&gt;
* Cunha configuración IP estática: 192.168.1.200.&lt;br /&gt;
* Cun nome axeitado: CMAnsible.&lt;br /&gt;
&lt;br /&gt;
Tamén é interesante ter instalado &amp;#039;&amp;#039;Open SSH&amp;#039;&amp;#039; para conectarse ao equipo remotamente:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ apt install openssh-server&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para Debian instalamos Ansible utilizando &amp;#039;&amp;#039;&amp;#039;pip&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ apt install python-pip&lt;br /&gt;
$ apt install python3-pip&lt;br /&gt;
$ pip install ansible&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Primeiros pasos ==&lt;br /&gt;
=== Primeiros pasos &amp;#039;&amp;#039;Managed node&amp;#039;&amp;#039; Linux ===&lt;br /&gt;
Unha vez instalado Ansible, detallaremos agora os primeiros pasos que podemos realizar para comprender o funcionamento e como conectarse aos nodos que imos administrar.&lt;br /&gt;
&lt;br /&gt;
O primeiro será restaurar unha máquina Debian que fará de nodo cliente (&amp;#039;&amp;#039;Managed node&amp;#039;&amp;#039;):&lt;br /&gt;
* Como NON imos ter servidor DNS configurámoslle unha IP estática: 192.168.1.111&lt;br /&gt;
* Instalamos o &amp;#039;&amp;#039;&amp;#039;openssh-server&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ apt install openssh-server&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Instalamos a ferramenta &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;sudo&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; para poder administrar o nodo sen empregar o usuario &amp;#039;&amp;#039;root&amp;#039;&amp;#039; (se queremos empregar &amp;#039;&amp;#039;root&amp;#039;&amp;#039; faise o mesmo pero saltando todo o que ten que ver con &amp;#039;&amp;#039;sudo&amp;#039;&amp;#039; e habilitando a conexión SSH con &amp;#039;&amp;#039;root&amp;#039;&amp;#039;):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ apt install sudo&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Creamos o usuario &amp;#039;&amp;#039;&amp;#039;lansible&amp;#039;&amp;#039;&amp;#039; e dámoslle permisos:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ adduser lansible&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
#O usuario &amp;quot;lansible&amp;quot; non precisará poñer contrasinal con sudo&lt;br /&gt;
$ cat /etc/sudoers&lt;br /&gt;
...&lt;br /&gt;
# User privilege specification&lt;br /&gt;
root      ALL=(ALL:ALL) ALL&lt;br /&gt;
lansible  ALL=(ALL) NOPASSWD:ALL&lt;br /&gt;
&lt;br /&gt;
# Allow members of group sudo to execute any command&lt;br /&gt;
%sudo    ALL=(ALL:ALL) ALL&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
$ reboot&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na máquina &amp;#039;&amp;#039;&amp;#039;CMAnsible&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Control Machine&amp;#039;&amp;#039;) creamos, ou modificamos, o arquivo &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;/etc/ansible/hosts&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; indicando os equipos que imos a administrar (de momento só este Debian - 192.168.1.111).&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ nano /etc/ansible/hosts&lt;br /&gt;
#Clientes Linux&lt;br /&gt;
[clientesLinux]&lt;br /&gt;
192.168.1.111&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para listar os &amp;#039;&amp;#039;Managed nodes&amp;#039;&amp;#039; que queremos administrar empregamos o comando:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ ansible --list-host all&lt;br /&gt;
  hosts (1):&lt;br /&gt;
    192.168.1.111&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para comprobar a conexión aos &amp;#039;&amp;#039;Managed nodes&amp;#039;&amp;#039; que imos administrar:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#Primeiro facemos un ping a los nodos para ver que todo vai ben&lt;br /&gt;
$ for nodo in `cat /etc/ansible/hosts | grep -Ei &amp;quot;^[a-z1-9].*&amp;quot;`; do ping -c 1 $nodo; done&lt;br /&gt;
&lt;br /&gt;
#Logo empregamos o seguinte comando de Ansible&lt;br /&gt;
$ ansible all -m ping&lt;br /&gt;
192.168.1.111 | UNREACHABLE! =&amp;gt; {&lt;br /&gt;
    &amp;quot;changed&amp;quot;: false, &lt;br /&gt;
    &amp;quot;msg&amp;quot;: &amp;quot;Failed to connect to the host via ssh: ssh: connect to host 192.168.1.111 port 22: Connection refused\r\n&amp;quot;, &lt;br /&gt;
    &amp;quot;unreachable&amp;quot;: true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vemos que non é posible conectarse por SSH, isto é porque a clave pública do usuario que está executando o comando &amp;#039;&amp;#039;&amp;#039;ansible&amp;#039;&amp;#039;&amp;#039; non foi incluida dentro das claves autorizadas de dito nodo. Podemos copiar a clave pública empregando o comando &amp;#039;&amp;#039;ssh-copy-id&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Xeramos as chaves SSH - Deixamos a passphrase en branco&lt;br /&gt;
$ ssh-keygen&lt;br /&gt;
Generating public/private rsa key pair.&lt;br /&gt;
Enter file in which to save the key (/root/.ssh/id_rsa): &lt;br /&gt;
Created directory &amp;#039;/root/.ssh&amp;#039;.&lt;br /&gt;
Enter passphrase (empty for no passphrase): &lt;br /&gt;
Enter same passphrase again: &lt;br /&gt;
Your identification has been saved in /root/.ssh/id_rsa.&lt;br /&gt;
Your public key has been saved in /root/.ssh/id_rsa.pub.&lt;br /&gt;
The key fingerprint is:&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
# Copiamos a chave pública de root para o usuario &amp;quot;lansible&amp;quot; dos nodos a administrar&lt;br /&gt;
## Antes instalamos a ferramenta &amp;quot;sshpass&amp;quot;&lt;br /&gt;
$ apt install sshpass&lt;br /&gt;
## Xa podemos automatizar a copia das chaves nos equipos cliente (o password do lansible é &amp;quot;abc123..&amp;quot;)&lt;br /&gt;
$ for nodo in `cat /etc/ansible/hosts | grep -Ei &amp;quot;^[a-z1-9].*&amp;quot;`; do echo &amp;quot;abc123..&amp;quot; | sshpass ssh-copy-id lansible@$nodo; done&lt;br /&gt;
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: &amp;quot;/root/.ssh/id_rsa.pub&amp;quot;&lt;br /&gt;
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed&lt;br /&gt;
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys&lt;br /&gt;
&lt;br /&gt;
Number of key(s) added: 1&lt;br /&gt;
&lt;br /&gt;
Now try logging into the machine, with:   &amp;quot;ssh &amp;#039;lansible@192.168.1.111&amp;#039;&amp;quot;&lt;br /&gt;
and check to make sure that only the key(s) you wanted were added.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Xa podemos comprobar a conexión aos &amp;#039;&amp;#039;Managed nodes&amp;#039;&amp;#039; que imos administrar:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ ansible all -m ping -u lansible&lt;br /&gt;
192.168.1.111 | SUCCESS =&amp;gt; {&lt;br /&gt;
    &amp;quot;changed&amp;quot;: false, &lt;br /&gt;
    &amp;quot;ping&amp;quot;: &amp;quot;pong&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos agora executar comandos en todos eses equipos:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ ansible all -a &amp;quot;uptime&amp;quot; -u lansible&lt;br /&gt;
192.168.1.111 | CHANGED | rc=0 &amp;gt;&amp;gt;&lt;br /&gt;
 23:52:13 up 56 min,  2 users,  load average: 0,67, 0,43, 0,20&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podemos executar comandos con &amp;#039;&amp;#039;sudo&amp;#039;&amp;#039; neses equipos:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ ansible all -a &amp;quot;fdisk -l&amp;quot; -u lansible -b&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se queremos só executar os comandos nun &amp;quot;grupo&amp;quot; de equipos:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ ansible clientesLinux -a &amp;quot;ip a&amp;quot; -u lansible&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Primeiros pasos &amp;#039;&amp;#039;Managed node&amp;#039;&amp;#039; Windows ===&lt;br /&gt;
É tamén posible administrar &amp;#039;&amp;#039;hosts&amp;#039;&amp;#039; que teñan o sistema operativo Windows instalado. Neste caso non se emprega SSH, emprégase [https://docs.microsoft.com/en-us/windows/desktop/winrm/portal WinRM].&lt;br /&gt;
&lt;br /&gt;
1.- O primeiro que debemos facer é instalar o paquete &amp;#039;&amp;#039;pywinrm&amp;#039;&amp;#039; na &amp;#039;&amp;#039;Control Machine&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ pip install pywinrm&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.- Logo restauramos unha máquina Windows (10, Server 2016, Server 2019):&lt;br /&gt;
* Actualizamos a máquina.&lt;br /&gt;
* Configuramos a IP: 192.168.1.110&lt;br /&gt;
* Instalamos o [https://chocolatey.org/ chocolatey].&lt;br /&gt;
 &lt;br /&gt;
3.- Instalamos na &amp;#039;&amp;#039;Managed node&amp;#039;&amp;#039; Windows unha versión de Python 3.0 ou superior.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
PS&amp;gt; choco install python3&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4.- Descargamos o &amp;#039;&amp;#039;script&amp;#039;&amp;#039; de Powershell [https://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1 ConfigureRemotingForAnsible.ps1] e o executamos con permisos de Administrador.&lt;br /&gt;
&lt;br /&gt;
5.- Creamos o usuario local &amp;quot;wansible&amp;quot;, e dende Powershell como Administrador executamos o comando:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
PS&amp;gt;winrm configSDDL default&lt;br /&gt;
# E engadimos ese usuario &amp;quot;wansible&amp;quot; con &amp;quot;Control Total (All Operations)&amp;quot; e &amp;quot;Aceptar&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6.- Na máquina &amp;#039;&amp;#039;Control machine&amp;#039;&amp;#039; modificamos o arquivo &amp;#039;&amp;#039;host&amp;#039;&amp;#039; do seguinte xeito:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ cat /etc/ansible/hosts&lt;br /&gt;
[linux]&lt;br /&gt;
192.168.1.118&lt;br /&gt;
&lt;br /&gt;
[windows]&lt;br /&gt;
192.168.1.110&lt;br /&gt;
[windows:vars]&lt;br /&gt;
ansible_user = wansible&lt;br /&gt;
ansible_password = abc123..&lt;br /&gt;
ansible_port = 5986&lt;br /&gt;
ansible_connection = winrm&lt;br /&gt;
ansible_winrm_server_cert_validation = ignore&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7.- Xa estamos preparados para probar algún [https://docs.ansible.com/ansible/latest/modules/list_of_windows_modules.html módulo &amp;#039;&amp;#039;ansible&amp;#039;&amp;#039; para Windows] (para executar os comandos só nos equipos Windows poñeremos &amp;quot;ansible windows...&amp;quot;):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ansible windows -m win_ping -u wansible&lt;br /&gt;
192.168.1.110 | SUCCESS =&amp;gt; {&lt;br /&gt;
    &amp;quot;changed&amp;quot;: false, &lt;br /&gt;
    &amp;quot;ping&amp;quot;: &amp;quot;pong&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$ansible windows -m win_disk_facts -u wansible&lt;br /&gt;
192.168.1.110 | SUCCESS =&amp;gt; {&lt;br /&gt;
    &amp;quot;ansible_facts&amp;quot;: {&lt;br /&gt;
        &amp;quot;ansible_disks&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;bootable&amp;quot;: true, &lt;br /&gt;
                &amp;quot;bus_type&amp;quot;: &amp;quot;SATA&amp;quot;, &lt;br /&gt;
                &amp;quot;clustered&amp;quot;: false, &lt;br /&gt;
                &amp;quot;firmware_version&amp;quot;: &amp;quot;1.0&amp;quot;, &lt;br /&gt;
                &amp;quot;friendly_name&amp;quot;: &amp;quot;VBOX HARDDISK&amp;quot;, &lt;br /&gt;
                &amp;quot;guid&amp;quot;: null, &lt;br /&gt;
                &amp;quot;location&amp;quot;: &amp;quot;Integrated : Adapter 0 : Port 0&amp;quot;, &lt;br /&gt;
                &amp;quot;manufacturer&amp;quot;: null, &lt;br /&gt;
                &amp;quot;model&amp;quot;: &amp;quot;VBOX HARDDISK&amp;quot;, &lt;br /&gt;
                &amp;quot;number&amp;quot;: 0, &lt;br /&gt;
                &amp;quot;operational_status&amp;quot;: &amp;quot;Online&amp;quot;, &lt;br /&gt;
                &amp;quot;partition_count&amp;quot;: 2, &lt;br /&gt;
                &amp;quot;partition_style&amp;quot;: &amp;quot;MBR&amp;quot;, &lt;br /&gt;
                &amp;quot;partitions&amp;quot;: [&lt;br /&gt;
                    {&lt;br /&gt;
                        &amp;quot;access_paths&amp;quot;: [&lt;br /&gt;
                            &amp;quot;\\\\?\\Volume{be3c284e-0000-0000-0000-100000000000}\\&amp;quot;&lt;br /&gt;
                        ], &lt;br /&gt;
                        &amp;quot;active&amp;quot;: true, &lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Vieites</name></author>
	</entry>
</feed>