{"id":3225,"date":"2024-06-05T12:53:57","date_gmt":"2024-06-05T10:53:57","guid":{"rendered":"https:\/\/www.plus.hr\/blog\/?p=3225"},"modified":"2024-06-05T12:53:57","modified_gmt":"2024-06-05T10:53:57","slug":"upravljanje-windows-hostovima-s-ansibleom","status":"publish","type":"post","link":"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/","title":{"rendered":"Upravljanje Windows hostovima uz Ansible"},"content":{"rendered":"<p><strong>Ansible<\/strong> je softverski alat \u010dija je funkcija automatizacija procesa kao \u0161to su postavljanje, konfiguracija, upravljanje, instalacija, orkestracija softvera, kontejnera, servera i sli\u010dnih procesa\u00a0 rada. Radi se o projektu otvorenog koda (<em>open-source<\/em>), koji je besplatan za kori\u0161tenje, i koji se odr\u017eava doprinosima pojedinaca i cjelokupne <em>open-source<\/em> zajednice. Pisan je u <strong>Python<\/strong> programskom jeziku, a pokre\u0107e se naredbama u komandnom prozoru.<\/p>\n<p><strong>Ansible se mo\u017ee koristiti za automatizaciju procesa<\/strong> na Linux i Windows serverima (fizi\u010dkim, virtualnim, cloud instancama), desktop ra\u010dunalima, mre\u017enim ure\u0111ajima, sustavima za pohranu podataka, kontejnerskim instancama, bazama, aplikacijama, IoT ure\u0111ajima i sli\u010dno.<\/p>\n<p>Kako bismo automatizirali odre\u0111ene procese u menad\u017ementu Windows poslu\u017eitelja, u na\u0161em \u0107emo primjeru postaviti kontrolni <em>node<\/em> s Ansibleom i Windows poslu\u017eitelj kao upravljani <em>node<\/em>.<\/p>\n<p>&nbsp;<\/p>\n<h4>Instalacija Ansiblea<\/h4>\n<p>Ansible instaliramo na Linux poslu\u017eitelju. On \u0107e nam slu\u017eiti kao upravlja\u010dki poslu\u017eitelj.<\/p>\n<pre>\u00a0\u00a0\u00a0\u00a0apt update\n\u00a0\u00a0\u00a0\u00a0apt install software-properties-common\n\u00a0\u00a0\u00a0\u00a0add-apt-repository --yes --update ppa:ansible\/ansible\n\u00a0\u00a0\u00a0\u00a0apt install ansible<\/pre>\n<p><strong>Ansible se mo\u017ee instalirati<\/strong> i na Windows operativnom sustavu, ali isklju\u010divo u podsustavu za Linux (WSL), no slu\u017ebeno nije podr\u017ean i ne preporu\u010duje se za produkcijska okru\u017eenja.<\/p>\n<h4><\/h4>\n<p>&nbsp;<\/p>\n<h4>Instalacija ansible.windows kolekcije<\/h4>\n<p>Za svrhu upravljanja Windows <em>hostovima<\/em>, instaliramo kolekciju naziva <code>ansible.windows<\/code>.<br \/>\nOp\u0107enito, Ansible kolekcija je skup <em>playbooka<\/em>, rola, modula ili <em>plugina<\/em> koji izvr\u0161avaju neku zajedni\u010dku zada\u0107u. <code>ansible.windows<\/code> sadr\u017ei razne module koji, na primjer, omogu\u0107avaju upravljanje korisni\u010dkim ra\u010dunima, njihovim pravima, pokretanjem naredbi, instalaciju raznih paketa i sli\u010dne zadatke na <em>hostovima<\/em> s Windows operativnim sustavom.<br \/>\nAnsible kolekciju mo\u017eemo instalirati s naredbom <code>ansible-galaxy<\/code>, koja ina\u010de slu\u017ei za upravljanje Ansible rolama i kolekcijama.<\/p>\n<pre>ansible-galaxy collection install ansible.windows<\/pre>\n<p>Prema <em>defaultnoj<\/em> konfiguraciji, ova naredba \u0107e koristiti Ansible Galaxy koji se nalazi na<br \/>\n<a href=\"https:\/\/galaxy.ansible.com\/\">https:\/\/galaxy.ansible.com\/<\/a>, a s kojeg \u0107e preuzeti kolekciju.<\/p>\n<p><a href=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/ansibleGalaxy2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3229 size-full\" src=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/ansibleGalaxy2.png\" alt=\"Ansible Galaxy\" width=\"935\" height=\"139\" \/><\/a><\/p>\n<p><strong>Ansible Galaxy<\/strong> je javni repozitorij rola i kolekcija koje se mogu preuzeti potpuno besplatno. Kako bi provjerili koje su sve kolekcije instalirane mo\u017eemo pokrenuti naredbu:<\/p>\n<pre>ansible-galaxy collection list<\/pre>\n<h4><\/h4>\n<p>&nbsp;<\/p>\n<h4>Konfiguracija WinRM-a na Windows hostu<\/h4>\n<p>Kako bi Linux upravlja\u010dki poslu\u017eitelj mogao komunicirati s Windows <em>hostom<\/em>, potrebno je podesiti Windows Remote Management (<strong>WinRM<\/strong>) ili Secure Shell (<strong>SSH<\/strong>) protokole.<\/p>\n<p>WinRM i SSH su protokoli koji se koriste za udaljeni pristup i upravljanje ra\u010dunalima, odnosno poslu\u017eiteljima. Prvi je Microsoft <em>native<\/em> protokol, dok se drugi uglavnom koristi na <em>Unix-based<\/em> strojevima.<\/p>\n<p>U pode\u0161avanju WinRM servisa mo\u017ee nam pomo\u0107i \u010dlanak na sljede\u0107oj poveznici<br \/>\n<a href=\"https:\/\/www.plus.hr\/blog\/2022\/11\/02\/powershell-remoting-i-winrm\/\">https:\/\/www.plus.hr\/blog\/2022\/11\/02\/powershell-remoting-i-winrm\/<\/a><\/p>\n<h4><\/h4>\n<p>&nbsp;<\/p>\n<h4>Pode\u0161avanje firewalla<\/h4>\n<p>Pristup WinRM servisu s <a href=\"https:\/\/www.plus.hr\/blog\/2020\/11\/20\/uloga-sys-admina-u-poduzecu\/\">Ansible<\/a> poslu\u017eitelja je potrebno dozvoliti u <em>firewallu<\/em>. Kod inicijalne konfiguracije WinRM-a, kreira se novi <em>firewall rule<\/em> koji otvara pristup svima, \u0161to iz sigurnosnih aspekata nije dobra praksa. Potrebno je izmijeniti pravilo koje dozvoljava pristup svima u ono koje limitira pristup na samo na\u0161 Linux poslu\u017eitelj, naro\u010dito ako je <em>firewall<\/em> na Windows <em>hostu<\/em> jedini <em>firewall<\/em> koji se koristi. Za to mo\u017eemo koristiti sljede\u0107e Powershell naredbe:<\/p>\n<pre><span style=\"font-size: 10pt\">$IPs = @(\"xxx.xxx.xxx.xxx\")<\/span><\/pre>\n<p>Umjesto <em>xxx.xxx.xxx.xxx<\/em> upisujemo IP adresu poslu\u017eitelja na kojem je instaliran Ansible.<\/p>\n<pre><span style=\"font-size: 10pt\">Remove-NetFirewallRule -DisplayName \"Windows Remote Management (HTTPS-In)\"\n<\/span><span style=\"font-size: 10pt\">New-NetFirewallRule -DisplayName \"Windows Remote Management (HTTPS-In)\" -Direction Inbound -Protocol TCP -Action Allow -RemoteAddress $IPs -LocalPort 5986<\/span><\/pre>\n<p><a href=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/firewall.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3230\" src=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/firewall.png\" alt=\"Pravilo u Windows vatrozidu za WinRM preko HTTPS-a\" width=\"919\" height=\"459\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h4>Kreiranje certifikata za autentikaciju<\/h4>\n<p>Kreiramo <em>self-signed<\/em> certifikat koji \u0107emo koristiti za autentikaciju izme\u0111u Ansible servera i Windows <em>hosta<\/em>. Mo\u017eemo ga generirati pomo\u0107u <strong>OpenSSL<\/strong> alata na Linux poslu\u017eitelju ili kroz Powershell na Windows <em>hostu<\/em>.<\/p>\n<p>Za kreiranje certifikata na Linux poslu\u017eitelju koristimo sljede\u0107e naredbe:<\/p>\n<pre><span style=\"font-size: 10pt\">cat &gt; openssl.conf &lt;&lt; EOL\n<\/span><span style=\"font-size: 10pt\">distinguished_name = req_distinguished_name\n<\/span><span style=\"font-size: 10pt\">[req_distinguished_name]\n<\/span><span style=\"font-size: 10pt\">[v3_req_client]\n<\/span><span style=\"font-size: 10pt\">extendedKeyUsage = clientAuth\n<\/span><span style=\"font-size: 10pt\">subjectAltName = otherName:1.3.6.1.4.1.311.20.2.3;UTF8:$USER@localhost\n<\/span><span style=\"font-size: 10pt\">EOL<\/span><\/pre>\n<pre><span style=\"font-size: 10pt\">export OPENSSL_CONF=openssl.conf\nexport USER=\"ansible\"<\/span><\/pre>\n<pre><span style=\"font-size: 10pt\">openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out ansible.pem -outform PEM -keyout ansible_key.pem -subj \"\/CN=$USER\" -extensions v3_req_client<\/span><\/pre>\n<p><a href=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/kreiranjecertifikata.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3231 size-full\" src=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/kreiranjecertifikata.png\" alt=\"Ansible OpenSSL kreiranje certifikata\" width=\"1910\" height=\"270\" \/><\/a><\/p>\n<p>Certifikat mo\u017eemo kreirati i na Windows hostu, ako pokrenemo sljede\u0107e naredbe u Powershellu:<\/p>\n<pre><span style=\"font-size: 10pt\">$params = @{\n<\/span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0Type = 'Custom'\n<\/span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0Subject = 'CN=ansible'\n<\/span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0TextExtension = @(\n<\/span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'2.5.29.37={text}1.3.6.1.5.5.7.3.2',\n<\/span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'2.5.29.17={text}upn=ansible@localhost' )\n<\/span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0KeyUsage = 'DigitalSignature'\n<\/span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0KeyAlgorithm = 'RSA'\n<\/span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0KeyLength = 2048\n<\/span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0CertStoreLocation = 'Cert:\\LocalMachine\\My'\n<\/span><span style=\"font-size: 10pt\">}\n<\/span><span style=\"font-size: 10pt\">New-SelfSignedCertificate @params<\/span><\/pre>\n<p><a href=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/kreiranjecertifikata2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3232 size-full\" src=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/kreiranjecertifikata2.png\" alt=\"Ansible kreiranje certifikata\" width=\"690\" height=\"303\" \/><\/a><\/p>\n<p>Certifikat je potrebno uvesti u <em>Windows certificate store<\/em> na Windows <em>hostu<\/em>, i to certifikat izdava\u010da u <strong>Trusted Root Certification Authorities<\/strong> store, a klijentski certifikat u <strong>Trusted People<\/strong> store. S obzirom da se ovdje radi o <em>self-signed<\/em> certifikatu, u oba storea uvozimo isti. Ako pretpostavimo da je datoteka sa certifikatom pohranjena na lokaciji C:\\Certifikati, onda naredbe koje trebamo pokrenuti u Powershellu glase ovako:<\/p>\n<pre><span style=\"font-size: 10pt\">$cert = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Certificate2(\"C:\\Certifikati\\ansible.pem\")\n<\/span><span style=\"font-size: 10pt\">$store_name = [System.Security.Cryptography.X509Certificates.StoreName]::Root\n<\/span><span style=\"font-size: 10pt\">$store_location = [System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine\n<\/span><span style=\"font-size: 10pt\">$store = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Store -ArgumentList $store_name, $store_location\n<\/span><span style=\"font-size: 10pt\">$store.Open(\"MaxAllowed\")\n<\/span><span style=\"font-size: 10pt\">$store.Add($cert)\n<\/span><span style=\"font-size: 10pt\">$store.Close()<\/span><\/pre>\n<pre><span style=\"font-size: 10pt\">$cert = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Certificate2(\"C:\\Certifikati\\ansible.pem\")\n<\/span><span style=\"font-size: 10pt\">$store_name = [System.Security.Cryptography.X509Certificates.StoreName]::TrustedPeople\n<\/span><span style=\"font-size: 10pt\">$store_location = [System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine\n<\/span><span style=\"font-size: 10pt\">$store = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Store -ArgumentList $store_name, $store_location\n<\/span><span style=\"font-size: 10pt\">$store.Open(\"MaxAllowed\")\n<\/span><span style=\"font-size: 10pt\">$store.Add($cert)\n<\/span><span style=\"font-size: 10pt\">$store.Close()<\/span><\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h4>Kreiranje lokalnog korisnika i mapiranje certifikata<\/h4>\n<p>Sljede\u0107i korak je da mapiramo uvezeni certifikat s lokalnim korisnikom na Windows hostu, no najprije \u0107emo tog korisnika i kreirati:<\/p>\n<pre><span style=\"font-size: 10pt\">$credential = Get-Credential\n<\/span><span style=\"font-size: 10pt\">$password = $credential.Password\n<\/span><span style=\"font-size: 10pt\">$username = $credential.Username\n<\/span><span style=\"font-size: 10pt\">New-LocalUser -Name $username -Password $password -FullName \"$username\" -PasswordNeverExpires -UserMayNotChangePassword\n<\/span><span style=\"font-size: 10pt\">Add-LocalGroupMember -Group Administrators -Member $username<\/span><\/pre>\n<p>&nbsp;<\/p>\n<p>A zatim \u0107emo mapirati certifikat novokreiranom korisniku:<\/p>\n<pre><span style=\"font-size: 10pt\">$thumbprint = (Get-ChildItem -Path cert:\\LocalMachine\\root | Where-Object { $_.Subject -eq \"CN=$username\" }).Thumbprint\n<\/span><span style=\"font-size: 10pt\">New-Item -Path WSMan:\\localhost\\ClientCertificate -Subject \"$username@localhost\" -URI * -Issuer $thumbprint -Credential $credential -Force<\/span><\/pre>\n<p>&nbsp;<\/p>\n<p>Trebamo imati na umu da u WinRM postavkama mora biti omogu\u0107ena autentikacija putem certifikata. Ako nije, mo\u017eemo je uklju\u010diti naredbom:<\/p>\n<pre><span style=\"font-size: 10pt\">winrm set winrm\/config\/service\/Auth '@{Certificate=\"true\"}'<\/span><\/pre>\n<h4><\/h4>\n<p>&nbsp;<\/p>\n<h4>Dodatna provjera postavki WinRM servisa<\/h4>\n<p>Dobra praksa je provjeriti jesu li isklju\u010dene manje sigurne postavke kao \u0161to je mogu\u0107nost nekriptirane komunikacije, mogu\u0107nost autentikacije lozinkom i sli\u010dno. Naredba za izlistavanje konfiguracije servisa je:<\/p>\n<pre><span style=\"font-size: 10pt\">winrm get winrm\/config\/Service<\/span><\/pre>\n<p><a href=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/winrmconfig.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3233 size-full\" src=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/winrmconfig.png\" alt=\"Ansible winrm\" width=\"707\" height=\"417\" \/><\/a><\/p>\n<pre><span style=\"font-size: 10pt\">winrm set winrm\/config\/service '@{AllowUnencrypted=\"false\"}'\n<\/span><span style=\"font-size: 10pt\">winrm set winrm\/config\/service\/Auth '@{Basic=\"false\"}'<\/span><\/pre>\n<h4><\/h4>\n<p>&nbsp;<\/p>\n<h4>Konfiguracija host varijabli<\/h4>\n<p>Na Linux poslu\u017eitelju je potrebno jo\u0161 konfigurirati <strong>host varijable<\/strong> koje \u0107e re\u0107i Ansibleu s kojim se parametrima spaja na Windows <em>hosta<\/em>.<\/p>\n<pre><span style=\"font-size: 10pt\">ansible_connection: winrm\n<\/span><span style=\"font-size: 10pt\">ansible_winrm_scheme: https\n<\/span><span style=\"font-size: 10pt\">ansible_port: 5986\n<\/span><span style=\"font-size: 10pt\">ansible_winrm_transport: certificate\n<\/span><span style=\"font-size: 10pt\">ansible_winrm_cert_pem: \/etc\/ansible\/certs\/ansible.pem\n<\/span><span style=\"font-size: 10pt\">ansible_winrm_cert_key_pem: \/etc\/ansible\/certs\/ansible_key.pem\n<\/span><span style=\"font-size: 10pt\">ansible_winrm_server_cert_validation: ignore<\/span><\/pre>\n<p>Postavka \u201c<strong>ansible_winrm_server_cert_validation: ignore<\/strong>\u201d je nu\u017ena kada koristimo <em>self-signed<\/em> certifikat, budu\u0107i da nije mogu\u0107e izvr\u0161iti njegovu validaciju.<\/p>\n<p>Ove vrijednosti se spremaju u <strong>YAML<\/strong> formatu.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h4>Test komunikacije<\/h4>\n<p>Kada smo dovr\u0161ili cjelokupnu konfiguraciju, mo\u017eemo provjeriti funkcionira li komunikacija izme\u0111u Ansiblea i Windows <em>hosta<\/em> ispravno. Za to \u0107emo koristiti <code>win_ping<\/code> modul iz <code>ansible.windows<\/code> kolekcije. Ovisno kako nam je pode\u0161en Ansible inventory (popis grupa i hostova) za test komunikacije pokrenemo neku od ovih naredbi:<\/p>\n<pre><span style=\"font-size: 10pt\">ansible -m win_ping imeposlu\u017eitelja<\/span><\/pre>\n<pre><span style=\"font-size: 10pt\">ansible imeposlu\u017eitelja -i imegrupehosta -m win_ping<\/span><\/pre>\n<p>&nbsp;<\/p>\n<p>Sada mo\u017eemo po\u010deti s pisanjem <em>playbooka<\/em>. <em>Playbook<\/em> je, kulinarskim rje\u010dnikom re\u010deno, recept. To je skupina naredbi i pripadaju\u0107ih parametara, a zajedno \u010dine cjelinu koja radi na izvr\u0161enju odre\u0111enog zadatka. Tako recimo mo\u017eete napisati <em>playbook<\/em> koji \u0107e odra\u0111ivati instalaciju Windows updatea, ili koji \u0107e u intervalima provjeravati je li na upravljanom ra\u010dunalu instalirana neka zna\u010dajka, ili koji \u0107e pod odre\u0111enim uvjetima ponovno pokrenuti neki servis, i sli\u010dno.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ansible je softverski alat \u010dija je funkcija automatizacija procesa kao \u0161to su postavljanje, konfiguracija, upravljanje, instalacija, orkestracija softvera, kontejnera, servera i sli\u010dnih procesa\u00a0 rada. Radi se o projektu otvorenog koda (open-source), koji je besplatan za kori\u0161tenje, i koji se odr\u017eava doprinosima pojedinaca i cjelokupne open-source zajednice. Pisan je u Python programskom jeziku, a pokre\u0107e se [&hellip;]<\/p>\n","protected":false},"author":18,"featured_media":3299,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[41],"class_list":["post-3225","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administracija-servera","tag-alati"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Upravljanje Windows hostovima uz Ansible - Plus Hosting<\/title>\n<meta name=\"description\" content=\"Ansible je softverski alat za automatizaciju procesa poput postavljanja, konfiguracija, upravljanja, instalacija, softvera, kontejnera, servera...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/\" \/>\n<meta property=\"og:locale\" content=\"hr_HR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Upravljanje Windows hostovima uz Ansible - Plus Hosting\" \/>\n<meta property=\"og:description\" content=\"Ansible je softverski alat za automatizaciju procesa poput postavljanja, konfiguracija, upravljanja, instalacija, softvera, kontejnera, servera...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/\" \/>\n<meta property=\"og:site_name\" content=\"Plus Hosting blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-05T10:53:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/ansibleGalaxy2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"360\" \/>\n\t<meta property=\"og:image:height\" content=\"260\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Natali V.\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisao\/la\" \/>\n\t<meta name=\"twitter:data1\" content=\"Natali V.\" \/>\n\t<meta name=\"twitter:label2\" content=\"Procijenjeno vrijeme \u010ditanja\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minuta\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2024\\\/06\\\/05\\\/upravljanje-windows-hostovima-s-ansibleom\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2024\\\/06\\\/05\\\/upravljanje-windows-hostovima-s-ansibleom\\\/\"},\"author\":{\"name\":\"Natali V.\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#\\\/schema\\\/person\\\/8a892def628388ba3f58f1e60c4beb42\"},\"headline\":\"Upravljanje Windows hostovima uz Ansible\",\"datePublished\":\"2024-06-05T10:53:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2024\\\/06\\\/05\\\/upravljanje-windows-hostovima-s-ansibleom\\\/\"},\"wordCount\":907,\"publisher\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2024\\\/06\\\/05\\\/upravljanje-windows-hostovima-s-ansibleom\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/ansibleGalaxy2.jpg\",\"keywords\":[\"alati\"],\"articleSection\":[\"Administracija servera\"],\"inLanguage\":\"hr\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2024\\\/06\\\/05\\\/upravljanje-windows-hostovima-s-ansibleom\\\/\",\"url\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2024\\\/06\\\/05\\\/upravljanje-windows-hostovima-s-ansibleom\\\/\",\"name\":\"Upravljanje Windows hostovima uz Ansible - Plus Hosting\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2024\\\/06\\\/05\\\/upravljanje-windows-hostovima-s-ansibleom\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2024\\\/06\\\/05\\\/upravljanje-windows-hostovima-s-ansibleom\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/ansibleGalaxy2.jpg\",\"datePublished\":\"2024-06-05T10:53:57+00:00\",\"description\":\"Ansible je softverski alat za automatizaciju procesa poput postavljanja, konfiguracija, upravljanja, instalacija, softvera, kontejnera, servera...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2024\\\/06\\\/05\\\/upravljanje-windows-hostovima-s-ansibleom\\\/#breadcrumb\"},\"inLanguage\":\"hr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2024\\\/06\\\/05\\\/upravljanje-windows-hostovima-s-ansibleom\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"hr\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2024\\\/06\\\/05\\\/upravljanje-windows-hostovima-s-ansibleom\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/ansibleGalaxy2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/ansibleGalaxy2.jpg\",\"width\":360,\"height\":260,\"caption\":\"Upravljanje Windows hostovima s Ansibleom\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/2024\\\/06\\\/05\\\/upravljanje-windows-hostovima-s-ansibleom\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Upravljanje Windows hostovima uz Ansible\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/\",\"name\":\"Plus Hosting blog\",\"description\":\"Plus Hosting blog: savjeti o hostingu, domenama i WordPressu\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"hr\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#organization\",\"name\":\"Plus Hosting\",\"url\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hr\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/plus-hosting-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/plus-hosting-logo.png\",\"width\":640,\"height\":640,\"caption\":\"Plus Hosting\"},\"image\":{\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.plus.hr\\\/blog\\\/#\\\/schema\\\/person\\\/8a892def628388ba3f58f1e60c4beb42\",\"name\":\"Natali V.\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"hr\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/35b44ac548ca5c8e0d84bb39dc59996e7532358872e9fdc4a0175e6a85df21e0?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/35b44ac548ca5c8e0d84bb39dc59996e7532358872e9fdc4a0175e6a85df21e0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/35b44ac548ca5c8e0d84bb39dc59996e7532358872e9fdc4a0175e6a85df21e0?s=96&d=mm&r=g\",\"caption\":\"Natali V.\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Upravljanje Windows hostovima uz Ansible - Plus Hosting","description":"Ansible je softverski alat za automatizaciju procesa poput postavljanja, konfiguracija, upravljanja, instalacija, softvera, kontejnera, servera...","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:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/","og_locale":"hr_HR","og_type":"article","og_title":"Upravljanje Windows hostovima uz Ansible - Plus Hosting","og_description":"Ansible je softverski alat za automatizaciju procesa poput postavljanja, konfiguracija, upravljanja, instalacija, softvera, kontejnera, servera...","og_url":"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/","og_site_name":"Plus Hosting blog","article_published_time":"2024-06-05T10:53:57+00:00","og_image":[{"width":360,"height":260,"url":"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/ansibleGalaxy2.jpg","type":"image\/jpeg"}],"author":"Natali V.","twitter_card":"summary_large_image","twitter_misc":{"Napisao\/la":"Natali V.","Procijenjeno vrijeme \u010ditanja":"6 minuta"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/#article","isPartOf":{"@id":"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/"},"author":{"name":"Natali V.","@id":"https:\/\/www.plus.hr\/blog\/#\/schema\/person\/8a892def628388ba3f58f1e60c4beb42"},"headline":"Upravljanje Windows hostovima uz Ansible","datePublished":"2024-06-05T10:53:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/"},"wordCount":907,"publisher":{"@id":"https:\/\/www.plus.hr\/blog\/#organization"},"image":{"@id":"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/#primaryimage"},"thumbnailUrl":"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/ansibleGalaxy2.jpg","keywords":["alati"],"articleSection":["Administracija servera"],"inLanguage":"hr"},{"@type":"WebPage","@id":"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/","url":"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/","name":"Upravljanje Windows hostovima uz Ansible - Plus Hosting","isPartOf":{"@id":"https:\/\/www.plus.hr\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/#primaryimage"},"image":{"@id":"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/#primaryimage"},"thumbnailUrl":"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/ansibleGalaxy2.jpg","datePublished":"2024-06-05T10:53:57+00:00","description":"Ansible je softverski alat za automatizaciju procesa poput postavljanja, konfiguracija, upravljanja, instalacija, softvera, kontejnera, servera...","breadcrumb":{"@id":"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/#breadcrumb"},"inLanguage":"hr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/"]}]},{"@type":"ImageObject","inLanguage":"hr","@id":"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/#primaryimage","url":"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/ansibleGalaxy2.jpg","contentUrl":"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2024\/06\/ansibleGalaxy2.jpg","width":360,"height":260,"caption":"Upravljanje Windows hostovima s Ansibleom"},{"@type":"BreadcrumbList","@id":"https:\/\/www.plus.hr\/blog\/2024\/06\/05\/upravljanje-windows-hostovima-s-ansibleom\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.plus.hr\/blog\/"},{"@type":"ListItem","position":2,"name":"Upravljanje Windows hostovima uz Ansible"}]},{"@type":"WebSite","@id":"https:\/\/www.plus.hr\/blog\/#website","url":"https:\/\/www.plus.hr\/blog\/","name":"Plus Hosting blog","description":"Plus Hosting blog: savjeti o hostingu, domenama i WordPressu","publisher":{"@id":"https:\/\/www.plus.hr\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.plus.hr\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"hr"},{"@type":"Organization","@id":"https:\/\/www.plus.hr\/blog\/#organization","name":"Plus Hosting","url":"https:\/\/www.plus.hr\/blog\/","logo":{"@type":"ImageObject","inLanguage":"hr","@id":"https:\/\/www.plus.hr\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2026\/11\/plus-hosting-logo.png","contentUrl":"https:\/\/www.plus.hr\/blog\/wp-content\/uploads\/2026\/11\/plus-hosting-logo.png","width":640,"height":640,"caption":"Plus Hosting"},"image":{"@id":"https:\/\/www.plus.hr\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.plus.hr\/blog\/#\/schema\/person\/8a892def628388ba3f58f1e60c4beb42","name":"Natali V.","image":{"@type":"ImageObject","inLanguage":"hr","@id":"https:\/\/secure.gravatar.com\/avatar\/35b44ac548ca5c8e0d84bb39dc59996e7532358872e9fdc4a0175e6a85df21e0?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/35b44ac548ca5c8e0d84bb39dc59996e7532358872e9fdc4a0175e6a85df21e0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/35b44ac548ca5c8e0d84bb39dc59996e7532358872e9fdc4a0175e6a85df21e0?s=96&d=mm&r=g","caption":"Natali V."}}]}},"_links":{"self":[{"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/posts\/3225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/comments?post=3225"}],"version-history":[{"count":0,"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/posts\/3225\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/media\/3299"}],"wp:attachment":[{"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/media?parent=3225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/categories?post=3225"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.plus.hr\/blog\/wp-json\/wp\/v2\/tags?post=3225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}