In DevOps et le Windows Dernière mise à jourated:
Partager sur:
Logiciel Jira est l'outil de gestion de projet n°1 utilisé par les équipes agiles pour planifier, suivre, publier et prendre en charge d'excellents logiciels.

Laissez-moi vous montrer rapidement comment connecter le Windows d'Ansible fonctionnant sur Ubuntu.

Pour suivre les étapes ci-dessous, vous devez avoir Python 3.x et Ansible installés sur les deux systèmes. Vous pouvez suivre les articles ci-dessous si vous avez besoin d'aide.

Comment installer et configurer Ansible sur Ubuntu?

Comment installer Ansible sur Windows?

Voici les détails des deux serveurs que j'utilise:

  • Contrôleur Ansible - 192.168.0.108
  • WindowServeur – 192.168.0.102

Étape 1 : Créerate Ansible Windows Utilisateur

Create un nouvel utilisateur pour Ansible windowconfiguration de la connexion.

  • Ouvrez Gestion de l'ordinateur sur votre Windows et accédez à Utilisateurs et groupes locaux.
  • Faites un clic droit sur Utilisateurs et créezate un nouvel utilisateur.
  • Sélectionnez Le mot de passe n'expire jamais checkbox et cliquez sur create.

utilisateur ansible

  • Maintenant parmi les groupes disponibles, faites un clic droit sur le groupe Administrateurs et cliquez sur Propriétés.
  • Cliquez sur Ajouter et entrez ansible dans les noms d'objets.
  • Cliquez sur l'option de vérification des noms, puis sur OK.

groupes ansibles

Maintenant, un utilisateur ansible sur un windowLa machine est prête.

Étape 2 : configurer les bibliothèques et WinRM

Accédez à votre machine de contrôleur ansible, mise à jourate et installez les bibliothèques mentionnées ci-dessous.

geekflare@geekflare:~$ sudo apt-get update
geekflare@geekflare:~$ sudo apt-get install gcc python-dev
geekflare@geekflare:~$ sudo apt install python3-pip

WinRM signifie windows gestion à distance. Il vous permet d'effectuer des tâches de gestion à distance windowsystèmes. Nous allons installer python3-winrm, un client Python utilisé pour établir une connexion avec le windows système.

geekflare@geekflare:~$ sudo apt-get install python3-winrm
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
gyp libc-ares2 libhttp-parser2.8 libjs-async libjs-inherits libjs-is-typedarray libjs-node-uuid libuv1 libuv1-dev node-abbrev node-ajv
node-ansi node-ansi-color-table node-ansi-regex node-ansi-styles node-ansistyles node-aproba node-archy node-are-we-there-yet node-async

node-validate-npm-package-license node-wcwidth.js node-which node-which-module node-wide-align node-wrap-ansi node-wrappy node-y18n
node-yallist node-yargs node-yargs-parser nodejs nodejs-doc
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
python3-kerberos python3-ntlm-auth python3-requests-kerberos python3-requests-ntlm python3-xmltodict
The following NEW packages will be installed:
python3-kerberos python3-ntlm-auth python3-requests-kerberos python3-requests-ntlm python3-winrm python3-xmltodict
0 upgraded, 6 newly installed, 0 to remove and 231 not upgraded.
Need to get 84.8 kB of archives.
After this operation, 442 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://old-releases.ubuntu.com/ubuntu cosmic/universe amd64 python3-kerberos amd64 1.1.14-1build1 [16.8 kB]
Get:2 http://old-releases.ubuntu.com/ubuntu cosmic/universe amd64 python3-ntlm-auth all 1.1.0-1 [19.6 kB]
Get:3 http://old-releases.ubuntu.com/ubuntu cosmic/universe amd64 python3-requests-kerberos all 0.11.0-2 [10.1 kB]
Get:4 http://old-releases.ubuntu.com/ubuntu cosmic/universe amd64 python3-requests-ntlm all 1.1.0-1 [6,004 B]
Get:5 http://old-releases.ubuntu.com/ubuntu cosmic/universe amd64 python3-xmltodict all 0.11.0-2 [10.6 kB]
Get:6 http://old-releases.ubuntu.com/ubuntu cosmic/universe amd64 python3-winrm all 0.3.0-2 [21.7 kB]
Fetched 84.8 kB in 1s (70.3 kB/s)
Selecting previously unselected package python3-kerberos.
(Reading database ... 244430 files and directories currently installed.)
Preparing to unpack .../0-python3-kerberos_1.1.14-1build1_amd64.deb ...
Unpacking python3-kerberos (1.1.14-1build1) ...
Selecting previously unselected package python3-ntlm-auth.
Selecting previously unselected package python3-xmltodict.
Preparing to unpack .../4-python3-xmltodict_0.11.0-2_all.deb ...
Unpacking python3-xmltodict (0.11.0-2) ...
Selecting previously unselected package python3-winrm.
Preparing to unpack .../5-python3-winrm_0.3.0-2_all.deb ...
Unpacking python3-winrm (0.3.0-2) ...
Setting up python3-kerberos (1.1.14-1build1) ...
Setting up python3-winrm (0.3.0-2) ...

Étape 3 : mise à jourate le fichier d'inventaire Ansible

Maintenant, je vais éditer le fichier ansible hosts avec le windowAdresse IP du système. Alors maintenant, ansible saura lequel windows système dont il a besoin pour se connecter.

geekflare@geekflare:~$ sudo gedit /etc/ansible/hosts

[win]
192.168.0.102

Étape 4 : mise à jourate les variables du groupe Ansible

Create un répertoire pour mettre les variables doit se connecter au windows système.

geekflare@geekflare:~$ mkdir /etc/ansible/group_vars
geekflare@geekflare:~$ sudo chmod -R 777 /etc/ansible/

Create un fichier win.yaml et mettez les détails de l'utilisateur que vous créezated dans la 1ère étape et quelques variables supplémentaires requises pour se connecter au windows système.

geekflare@geekflare:~$ gedit /etc/ansible/group_vars/win.yaml
---

ansible_user: ansible

ansible_password: ansible

ansible_connection: winrm

ansible_winrm_server_cert_validation: ignore

ansible_winrm_transport: basic

ansible_winrm_port: 5985

ansible_python_interpreter: C:\Users\geekflare\AppData\Local\Programs\Python\Python37\python

Étape 5: Configurer Windows Serveurs à gérer

Ouvrez votre windows power shell et mettez-le à niveau. Vous devez disposer de Powershell 3.0 et de .NET Framework 4.0 sur le windowla machine.

PS C:\WINDOWS\system32> $url = "https://raw.githubusercontent.com/jborean93/ansible-windows/master/scripts/Upgrade-PowerShell.ps1"
PS C:\WINDOWS\system32> $file = "$env:temp\Upgrade-PowerShell.ps1"
PS C:\WINDOWS\system32> $username = "ansible"
PS C:\WINDOWS\system32> $password = "ansible"
PS C:\WINDOWS\system32> (New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
PS C:\WINDOWS\system32> Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force
PS C:\WINDOWS\system32> &$file -Version 5.1 -Username $username -Password $password -Verbose

Pour configurer WinRM sur un WindowDans le système avec ansible, un script de configuration à distance a été fourni par ansible. Exécutez le script dans PowerShell.

PS C:\WINDOWS\system32> $url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
PS C:\WINDOWS\system32> $file = "$env:temp\ConfigureRemotingForAnsible.ps1"
PS C:\WINDOWS\system32> (New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
PS C:\WINDOWS\system32> powershell.exe -ExecutionPolicy ByPass -File $file
PS C:\WINDOWS\system32> winrm enumerate winrm/config/Listener

Listener
Address = *
Transport = HTTP
Port = 5985
Hostname
Enabled = true
URLPrefix = wsman

CertificateThumbprint
ListeningOn = 127.0.0.1, 169.254.8.240, 169.254.36.9, 169.254.102.217, 169.254.215.170, 192.168.0.102, ::1, fe80::3131:c6d7:9ef5:8f0%7, fe80::51b7:9134:550d:d7aa%22, fe80::88f1:1229:e1dd:2409%16, fe80::99cf:5796:4f8e:f5c1%15, fe80::fd77:c19d:e0f2:66d9%9

Listener
Address = *
Transport = HTTPS
Port = 5986
Hostname = DESKTOP-2L8QMI6
Enabled = true
URLPrefix = wsman

CertificateThumbprint = C83B3FC8B274D0B650F0FD647DC7AC129BBE3FA0
ListeningOn = 127.0.0.1, 169.254.8.240, 169.254.36.9, 169.254.102.217, 169.254.215.170, 192.168.0.102, ::1, fe80::3131:c6d7:9ef5:8f0%7, fe80::51b7:9134:550d:d7aa%22, fe80::88f1:1229:e1dd:2409%16, fe80::99cf:5796:4f8e:f5c1%15, fe80::fd77:c19d:e0f2:66d9%9

Configurez winrm pour autoriser le trafic HTTP.

PS C:\WINDOWS\system32> winrm set winrm/config/service '@{AllowUnencrypted="true"}'
Service
RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)

MaxConcurrentOperations = 4294967295

MaxConcurrentOperationsPerUser = 1500

EnumerationTimeoutms = 240000
MaxConnections = 300

MaxPacketRetrievalTimeSeconds = 120
AllowUnencrypted = true
Auth
Basic = true
Kerberos = true
Negotiate = true
Certificate = false
CredSSP = false

CbtHardeningLevel = Relaxed
DefaultPorts
HTTP = 5985
HTTPS = 5986
IPv4Filter = *
IPv6Filter = *

EnableCompatibilityHttpListener = false

EnableCompatibilityHttpsListener = false

CertificateThumbprint
AllowRemoteAccess = true

Définissez l'authentification sur basique dans wirm.

PS C:\WINDOWS\system32> winrm set winrm/config/service/auth '@{Basic="true"}'
Auth
Basic = true
Kerberos = true
Negotiate = true
Certificate = false
CredSSP = false
CbtHardeningLevel = Relaxed

Étape 6 : tester la connectivité au Windowle serveur

Toutes les étapes sur la machine sont désormais terminées. Accédez à la machine du contrôleur Ansible et envoyez une requête ping au windows machine serveur utilisant win_ping module ansible.

geekflare@geekflare:~$ ansible win -m win_ping
192.168.0.102 | SUCCESS => {

"changed": false,
"ping": "pong"
}

Le message de réussite indique que la connexion a été établie. Maintenant le windowLe système est prêt à être administré à distance depuis Ansible fonctionnant sur Ubuntu.

Partager sur:
  • Avi
    Auteur
    Avi est un passionné de technologie possédant une expertise dans les technologies tendances telles que DevOps, Cloud Computing, Big Data et bien d'autres. Il est passionnéate sur l'apprentissage des technologies de pointe et le partage de ses connaissances avec les autres à travers…

Merci à nos commanditaires

Plus de bonnes lectures sur DevOps

Alimentez votre entreprise

Certains des outils et services pour aider votre entreprise grow.
  • L'outil de synthèse vocale qui utilise l'IA pour générerate des voix humaines réalistes.

    Essayez Murf AI
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.

    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.

    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.

    Essayez Intruder