{"id":3632,"date":"2018-06-12T17:15:17","date_gmt":"2018-06-12T14:15:17","guid":{"rendered":"https:\/\/www.systemcodegeeks.com\/?p=3632"},"modified":"2018-06-12T15:22:14","modified_gmt":"2018-06-12T12:22:14","slug":"running-ansible-windows-system","status":"publish","type":"post","link":"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/","title":{"rendered":"Running Ansible on a Windows System"},"content":{"rendered":"<p>On my last conference talk (it was about <a href=\"https:\/\/www.sandra-parsick.de\/talk\/ansible-docker-devopscon\/\">Ansible and Docker at DevOpsCon<\/a> in Berlin), I was asked what is the best way to run Ansible on a Windows system. Ansible itself requires a Linux-based system as the control machine. When I have to develop on a Windows machine, I install a Linux-based virtual machine to run the Ansible\u2019s playbooks inside the virtual machine. I set up the virtual machine with Virtualbox and Vagrant. This tools allow me to share the playbooks easily between host and the virtual machine. so I can develop the playbook on the windows system and the virtual machine can have a headless setup. The next section shows you how to set up this tool chain.<\/p>\n<h2>\u00a0Tool Chain Setup<\/h2>\n<p>At first, install <a href=\"https:\/\/www.virtualbox.org\/\">VirtualBox<\/a> and <a href=\"https:\/\/www.vagrantup.com\/\">Vagrant<\/a> on your machine. I additionally use <a href=\"http:\/\/babun.github.io\/\">Babun<\/a>, a windows shell based on Cygwin and oh-my-zsh, for a better shell experience on Windows, but this isn\u2019t necessary. Then, go to the directory (let\u2019s called it ansible-workspace), where your Ansible\u2019s playbooks are located. Create there a Vagrant configuration file with the command\u00a0vagrant init:<\/p>\n<pre class=\"brush:bash\">ansible-workspace\r\n\u251c\u2500\u2500 inventories\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 production\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 test\r\n\u251c\u2500\u2500 README.md\r\n\u251c\u2500\u2500 roles\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 deploy-on-tomcat\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 defaults\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 main.yml\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 tasks\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u251c\u2500\u2500 cleanup-webapp.yml\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u251c\u2500\u2500 deploy-webapp.yml\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u251c\u2500\u2500 main.yml\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u251c\u2500\u2500 start-tomcat.yml\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u2514\u2500\u2500 stop-tomcat.yml\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 jdk\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 tasks\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u2514\u2500\u2500 main.yml\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 tomcat8\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 defaults\r\n\u2502\u00a0\u00a0     \u2502\u00a0\u00a0 \u2514\u2500\u2500 main.yml\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 files\r\n\u2502\u00a0\u00a0     \u2502\u00a0\u00a0 \u2514\u2500\u2500 init.d\r\n\u2502\u00a0\u00a0     \u2502\u00a0\u00a0     \u2514\u2500\u2500 tomcat\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 tasks\r\n\u2502\u00a0\u00a0     \u2502\u00a0\u00a0 \u2514\u2500\u2500 main.yml\r\n\u2502\u00a0\u00a0     \u2514\u2500\u2500 templates\r\n\u2502\u00a0\u00a0         \u2514\u2500\u2500 setenv.sh.j2\r\n\u251c\u2500\u2500 demo-app-ansible-deploy-1.0-SNAPSHOT.war\r\n\u251c\u2500\u2500 deploy-demo.yml\r\n\u251c\u2500\u2500 inventories\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 production\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 test\r\n\u251c\u2500\u2500 roles\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 deploy-on-tomcat\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 defaults\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 main.yml\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 tasks\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u251c\u2500\u2500 cleanup-webapp.yml\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u251c\u2500\u2500 deploy-webapp.yml\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u251c\u2500\u2500 main.yml\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u251c\u2500\u2500 start-tomcat.yml\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u2514\u2500\u2500 stop-tomcat.yml\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 jdk\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 tasks\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u2514\u2500\u2500 main.yml\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 tomcat8\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 defaults\r\n\u2502\u00a0\u00a0     \u2502\u00a0\u00a0 \u2514\u2500\u2500 main.yml\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 files\r\n\u2502\u00a0\u00a0     \u2502\u00a0\u00a0 \u2514\u2500\u2500 init.d\r\n\u2502\u00a0\u00a0     \u2502\u00a0\u00a0     \u2514\u2500\u2500 tomcat\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 tasks\r\n\u2502\u00a0\u00a0     \u2502\u00a0\u00a0 \u2514\u2500\u2500 main.yml\r\n\u2502\u00a0\u00a0     \u2514\u2500\u2500 templates\r\n\u2502\u00a0\u00a0         \u2514\u2500\u2500 setenv.sh.j2\r\n\u251c\u2500\u2500 setup-app-roles.yml\r\n\u251c\u2500\u2500 setup-app.yml\r\n\u2514\u2500\u2500 Vagrantfile\r\n\r\n\u251c\u2500\u2500 setup-app-roles.yml\r\n\u251c\u2500\u2500 setup-app.yml\r\n\u2514\u2500\u2500 Vagrantfile<\/pre>\n<p>Now, we have to choose a so-called Vagrant Box\u00a0on <a href=\"https:\/\/app.vagrantup.com\/boxes\/search\">Vagrant Cloud<\/a>. A box is the package format for a Vagrant environment. It depends on the provider and the operation system that you choose to use. In our case, it is a Virtualbox VM image based on a minimal Ubuntu 18.04 system (box name is <a href=\"https:\/\/app.vagrantup.com\/bento\/boxes\/ubuntu-18.04\">bento\/ubuntu-18.04<\/a> ). This box will be configured in our Vagrantfile:<\/p>\n<pre class=\" brush:bash\">Vagrant.configure(\"2\") do |config|\r\n  config.vm.box = \"bento\/ubuntu-18.04\"\r\nend<\/pre>\n<p>The next step is to ensure that Ansible will be installed in the box. Thus, we use the shell provisioner of Vagrant. The Vagranfile will be extended by the provisioning code:<\/p>\n<pre class=\" brush:bash\">Vagrant.configure(\"2\") do |config|\r\n  # ... other Vagrant configuration\r\n  config.vm.provision \"shell\", inline: &lt;&lt;-SHELL\r\n    sudo apt-get update -y\r\n    sudo apt-get install -y software-properties-common\r\n    sudo apt-add-repository ppa:ansible\/ansible\r\n    sudo apt-get update -y\r\n    sudo apt-get install -y ansible\r\n    # ... other Vagrant provision steps\r\n  SHELL\r\nend\r\nend<\/pre>\n<p>The last step is to copy the SSH credential into the Vagrant box. Thus, we mark the SSH credential folder of the host system as a Shared folder, so that we can copy them to the SSH config folder inside the box.<\/p>\n<pre class=\" brush:bash\">Vagrant.configure(\"2\") do |config|\r\n \r\n  # ... other Vagrant configuration\r\n  config.vm.synced_folder \".\", \"\/vagrant\"\r\n  config.vm.synced_folder \"path to your ssh config\", \"\/home\/vagrant\/ssh-host\"\r\n  # ... other Vagrant configuration\r\n\r\n  config.vm.provision \"shell\", inline: &lt;&lt;-SHELL\r\n    # ... other Vagrant provision steps\r\n    cp \/home\/vagrant\/ssh-host\/* \/home\/vagrant\/.ssh\/.\r\n  SHELL\r\nend<\/pre>\n<p>On Github\u2019s Gist you can found the whole <a href=\"https:\/\/gist.github.com\/sparsick\/b36b81c291c556ebdcc94f224136abc8\">Vagrantfile<\/a>.<\/p>\n<h2>Workflow<\/h2>\n<p>After setting up the tool chain let\u2019s have a look how to work with it. I write my Ansible playbook on the Windows system and run them from the Linux guest system against the remote hosts. For running the Ansible playbooks we have to start the Vagrant box.<\/p>\n<pre class=\" brush:bash\">&gt; cd ansible-workspace\r\n&gt; vagrant up<\/pre>\n<p>When the Vagrant box is ready to use, we can jump into the box with:<\/p>\n<pre class=\" brush:bash\">&gt; vagrant ssh<\/pre>\n<p>You can find the Ansible playbooks inside the box in the folder \/vagrant .\u00a0 In this folder run Ansible:<\/p>\n<pre class=\" brush:bash\">&gt; cd\" \/vagrant\r\n&gt; ansible-playbook -i inventories\/test -u tekkie setup-db.yml<\/pre>\n<h2>Outlook<\/h2>\n<p>Maybe on Windows 10 it\u2019s possible to use Ansible natively, because of the Linux subsystem. But I don\u2019t try it out. Some Docker fans would prefer a container instead of a virtual machine. But remember, before Windows 10 Docker runs on Windows in a virtual machine, so therefore, I don\u2019t see a benefit for using Docker instead of a virtual machine. But of course with Windows 10 native container support a setup with Docker is a good alternative if Ansible doesn\u2019t run on the Linux subsystem.<\/p>\n<p>Do you another idea or approach? Let me know and write a comment.<\/p>\n<h2>Links<\/h2>\n<ol>\n<li><a href=\"https:\/\/www.virtualbox.org\/\">VirtualBox<\/a><\/li>\n<li><a href=\"https:\/\/www.vagrantup.com\/\">Vagrant<\/a><\/li>\n<li>Whole Vagrantfile on <a href=\"https:\/\/gist.github.com\/sparsick\/b36b81c291c556ebdcc94f224136abc8\">Github<\/a>.<\/li>\n<\/ol>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td>Published on System Code Geeks with permission by Sandra Parsick, partner at our <a href=\"\/\/www.systemcodegeeks.com\/join-us\/scg\/\" target=\"_blank\" rel=\"noopener\">SCG program<\/a>. See the original article here: <a href=\"https:\/\/blog.sandra-parsick.de\/2018\/06\/11\/running-ansible-on-a-windows-system\/\" target=\"_blank\" rel=\"noopener\">Running Ansible on a Windows System<\/a><\/p>\n<p>Opinions expressed by System Code Geeks contributors are their own.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>On my last conference talk (it was about Ansible and Docker at DevOpsCon in Berlin), I was asked what is the best way to run Ansible on a Windows system. Ansible itself requires a Linux-based system as the control machine. When I have to develop on a Windows machine, I install a Linux-based virtual machine &hellip;<\/p>\n","protected":false},"author":2,"featured_media":188,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[39],"tags":[68,154,155,156,89],"class_list":["post-3632","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-ansible","tag-continuous-integration","tag-vagrant","tag-virtualbox","tag-windows"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Running Ansible on a Windows System - System Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"&quot;Interested to learn more about Ansible? Then check out our article on Running Ansible on a Windows System where you install a Linux-based virtual machine to run the Ansible\u2019s playbooks inside the virtual machine, then set up the virtual machine with Virtualbox and Vagrant!&quot;\" \/>\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.systemcodegeeks.com\/devops\/running-ansible-windows-system\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Running Ansible on a Windows System - System Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"&quot;Interested to learn more about Ansible? Then check out our article on Running Ansible on a Windows System where you install a Linux-based virtual machine to run the Ansible\u2019s playbooks inside the virtual machine, then set up the virtual machine with Virtualbox and Vagrant!&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/\" \/>\n<meta property=\"og:site_name\" content=\"System Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/systemcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-12T14:15:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sandra Parsick\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SandraParsick\" \/>\n<meta name=\"twitter:site\" content=\"@systemcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sandra Parsick\" \/>\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\":\"Article\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/\"},\"author\":{\"name\":\"Sandra Parsick\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/e6cf3ae8b68188ddbcc5924ecbcbd8e1\"},\"headline\":\"Running Ansible on a Windows System\",\"datePublished\":\"2018-06-12T14:15:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/\"},\"wordCount\":565,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg\",\"keywords\":[\"Ansible\",\"Continuous Integration\",\"Vagrant\",\"virtualbox\",\"windows\"],\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/\",\"url\":\"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/\",\"name\":\"Running Ansible on a Windows System - System Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg\",\"datePublished\":\"2018-06-12T14:15:17+00:00\",\"description\":\"\\\"Interested to learn more about Ansible? Then check out our article on Running Ansible on a Windows System where you install a Linux-based virtual machine to run the Ansible\u2019s playbooks inside the virtual machine, then set up the virtual machine with Virtualbox and Vagrant!\\\"\",\"breadcrumb\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#primaryimage\",\"url\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg\",\"contentUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.systemcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\/\/www.systemcodegeeks.com\/category\/devops\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Running Ansible on a Windows System\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#website\",\"url\":\"https:\/\/www.systemcodegeeks.com\/\",\"name\":\"System Code Geeks\",\"description\":\"Operating System Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.systemcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.systemcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/systemcodegeeks\",\"https:\/\/x.com\/systemcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/e6cf3ae8b68188ddbcc5924ecbcbd8e1\",\"name\":\"Sandra Parsick\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/69ec4eccbdaf11ca8febd5a68c7117138d57a580966e782cad2bf74988255755?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/69ec4eccbdaf11ca8febd5a68c7117138d57a580966e782cad2bf74988255755?s=96&d=mm&r=g\",\"caption\":\"Sandra Parsick\"},\"description\":\"Sandra is freelance Software Developer. She develops Java enterprise software since 2008. She also interests in the software craftsmanship approach and continuous integration.\",\"sameAs\":[\"http:\/\/blog.sandra-parsick.de\/\",\"https:\/\/www.linkedin.com\/profile\/view?id=74296185\",\"https:\/\/x.com\/SandraParsick\"],\"url\":\"https:\/\/www.systemcodegeeks.com\/author\/sandra-parsick\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Running Ansible on a Windows System - System Code Geeks - 2026","description":"\"Interested to learn more about Ansible? Then check out our article on Running Ansible on a Windows System where you install a Linux-based virtual machine to run the Ansible\u2019s playbooks inside the virtual machine, then set up the virtual machine with Virtualbox and Vagrant!\"","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.systemcodegeeks.com\/devops\/running-ansible-windows-system\/","og_locale":"en_US","og_type":"article","og_title":"Running Ansible on a Windows System - System Code Geeks - 2026","og_description":"\"Interested to learn more about Ansible? Then check out our article on Running Ansible on a Windows System where you install a Linux-based virtual machine to run the Ansible\u2019s playbooks inside the virtual machine, then set up the virtual machine with Virtualbox and Vagrant!\"","og_url":"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/","og_site_name":"System Code Geeks","article_publisher":"https:\/\/www.facebook.com\/systemcodegeeks","article_published_time":"2018-06-12T14:15:17+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg","type":"image\/jpeg"}],"author":"Sandra Parsick","twitter_card":"summary_large_image","twitter_creator":"@SandraParsick","twitter_site":"@systemcodegeeks","twitter_misc":{"Written by":"Sandra Parsick","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#article","isPartOf":{"@id":"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/"},"author":{"name":"Sandra Parsick","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/e6cf3ae8b68188ddbcc5924ecbcbd8e1"},"headline":"Running Ansible on a Windows System","datePublished":"2018-06-12T14:15:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/"},"wordCount":565,"commentCount":0,"publisher":{"@id":"https:\/\/www.systemcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#primaryimage"},"thumbnailUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg","keywords":["Ansible","Continuous Integration","Vagrant","virtualbox","windows"],"articleSection":["DevOps"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/","url":"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/","name":"Running Ansible on a Windows System - System Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.systemcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#primaryimage"},"image":{"@id":"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#primaryimage"},"thumbnailUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg","datePublished":"2018-06-12T14:15:17+00:00","description":"\"Interested to learn more about Ansible? Then check out our article on Running Ansible on a Windows System where you install a Linux-based virtual machine to run the Ansible\u2019s playbooks inside the virtual machine, then set up the virtual machine with Virtualbox and Vagrant!\"","breadcrumb":{"@id":"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#primaryimage","url":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg","contentUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2016\/01\/devops-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.systemcodegeeks.com\/devops\/running-ansible-windows-system\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.systemcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/www.systemcodegeeks.com\/category\/devops\/"},{"@type":"ListItem","position":3,"name":"Running Ansible on a Windows System"}]},{"@type":"WebSite","@id":"https:\/\/www.systemcodegeeks.com\/#website","url":"https:\/\/www.systemcodegeeks.com\/","name":"System Code Geeks","description":"Operating System Developers Resource Center","publisher":{"@id":"https:\/\/www.systemcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.systemcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.systemcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.systemcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.systemcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/systemcodegeeks","https:\/\/x.com\/systemcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/e6cf3ae8b68188ddbcc5924ecbcbd8e1","name":"Sandra Parsick","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.systemcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/69ec4eccbdaf11ca8febd5a68c7117138d57a580966e782cad2bf74988255755?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/69ec4eccbdaf11ca8febd5a68c7117138d57a580966e782cad2bf74988255755?s=96&d=mm&r=g","caption":"Sandra Parsick"},"description":"Sandra is freelance Software Developer. She develops Java enterprise software since 2008. She also interests in the software craftsmanship approach and continuous integration.","sameAs":["http:\/\/blog.sandra-parsick.de\/","https:\/\/www.linkedin.com\/profile\/view?id=74296185","https:\/\/x.com\/SandraParsick"],"url":"https:\/\/www.systemcodegeeks.com\/author\/sandra-parsick\/"}]}},"_links":{"self":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/posts\/3632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/comments?post=3632"}],"version-history":[{"count":0,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/posts\/3632\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/media\/188"}],"wp:attachment":[{"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/media?parent=3632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/categories?post=3632"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.systemcodegeeks.com\/wp-json\/wp\/v2\/tags?post=3632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}