<!doctype html>
<html lang="en-US">
  <head>
  <meta charset="utf-8">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
  <link rel="stylesheet" href="/main.daf9ee98168127ebe801fa49abea19e9b93a1e6615b5fb8613d39531c652f02d2d15c7680cf20e2047c2887b04f2192dc9a7847c62393718246d9f3e634a4e4d.css" integrity="sha512-2vnumBaBJ&#43;voAfpJq&#43;oZ6bk6HmYVtfuGE9OVMcZS8C0tFcdoDPIOIEfCiHsE8hktyaeEfGI5NxgkbZ8&#43;Y0pOTQ==" crossorigin="anonymous">
<noscript><style>img.lazyload { display: none; }</style></noscript>
  <meta name="robots" content="index, follow">
  <meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
  <meta name="bingbot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
  <title>Using Ansible - mCaptcha</title>
<meta name="description" content="Deploy mCaptcha software using Ansible playbooks">
<link rel="canonical" href="/docs/self-hosting/ansible/">
<meta name="twitter:card" content="summary_large_image">
      <meta name="twitter:image" content="/icon.png">
    <meta name="twitter:title" content="Using Ansible">
<meta name="twitter:description" content="Deploy mCaptcha software using Ansible playbooks">

<meta name="twitter:site" content="@">
<meta name="twitter:creator" content="@">

<meta property="og:title" content="Using Ansible">
<meta property="og:description" content="Deploy mCaptcha software using Ansible playbooks">
<meta property="og:type" content="article">
<meta property="og:url" content="/docs/self-hosting/ansible/">

  <meta property="og:image" content="/icon.png"/>
    <meta property="article:modified_time" content="2023-12-09T03:43:25+05:30">
  <meta property="og:site_name" content="mCaptcha">

<meta property="article:publisher" content="https://www.facebook.com/">
<meta property="article:author" content="https://www.facebook.com/">
<meta property="og:locale" content="en_US">

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [{
        "@type": "ListItem",
        "position":  1 ,
        "name": "Home",
        "item": "\/"
    },{
        "@type": "ListItem",
        "position":  2 ,
        "name": "Docsself Hostingansible",
        "item": "\/docsself-hostingansible\/"
    }]
}
</script>

  <meta name="theme-color" content="#fff">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
  
</head>
  <body class="docs single">


    <div class="header-bar fixed-top"></div>
<header class="navbar fixed-top navbar-expand-md navbar-light">
  <div class="container">
    <input class="menu-btn order-0" type="checkbox" id="menu-btn">
    <label class="menu-icon d-md-none" for="menu-btn"><span class="navicon"></span></label>
    <a class="navbar-brand order-1 order-md-0 me-auto" href="/">mCaptcha</a>
    <button id="mode" class="btn btn-link order-2 order-md-4" type="button" aria-label="Toggle mode">
      <span class="toggle-dark"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg></span>
      <span class="toggle-light"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg></span>
    </button>
    <ul class="navbar-nav social-nav order-3 order-md-5">
      <li class="nav-item">
          <a class="nav-link" href="https://github.com/mCaptcha"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg><span class="ms-2 visually-hidden">GitHub</span></a>
        </li>
      </ul>
    <div class="collapse navbar-collapse order-4 order-md-1">
      <ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class="nav-item">
            <a class="nav-link" href="/blog/">Blog</a>
          </li>
        <li class="nav-item">
            <a class="nav-link" href="/community/">Community</a>
          </li>
        <li class="nav-item">
            <a class="nav-link" href="/contact/">Contact</a>
          </li>
        <li class="nav-item">
            <a class="nav-link" href="/about/">About</a>
          </li>
        <li class="nav-item active">
            <a class="nav-link" href="/docs/webmasters/installing-captcha/">Docs</a>
          </li>
        </ul>
      <div class="break order-6 d-md-none"></div>
      <form class="navbar-form flex-grow-1 order-7 order-md-3">
        <input id="userinput" class="form-control is-search" type="search" placeholder="Search docs..." aria-label="Search docs..." autocomplete="off">
        <div id="suggestions" class="shadow bg-white rounded"></div>
      </form>
      </div>
  </div>
</header>

    <div class="wrap container" role="document">
      <div class="content">
        
	<div class="row flex-xl-nowrap">
		<div class="col-lg-5 col-xl-4 docs-sidebar">
			<nav class="docs-links" aria-label="Main navigation">
				<h3>Webmasters</h3>
  <ul class="list-unstyled">
    <li><a class="docs-link" href="/docs/webmasters/installing-captcha/">Installing mCaptcha on your website</a></li>
    <li><a class="docs-link" href="/docs/webmasters/configuring-difficulty-factor/">Configuring Difficulty Factor</a></li>
    <li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
    <li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
    </ul>
  <h3>User Manual</h3>
  <ul class="list-unstyled">
    <li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
    <li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
    </ul>
  <h3>Self-Hosting</h3>
  <ul class="list-unstyled">
    <li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
    <li><a class="docs-link" href="/docs/self-hosting/bare-metal/">Deploy bare metal</a></li>
    <li><a class="docs-link active" href="/docs/self-hosting/ansible/">Using Ansible</a></li>
    <li><a class="docs-link" href="/docs/self-hosting/docker/">Using Docker</a></li>
    </ul>
  <h3>API</h3>
  <ul class="list-unstyled">
    <li><a class="docs-link" href="/docs/api/browser/">Browser libraries</a></li>
    <li><a class="docs-link" href="/docs/api/mcaptcha-system/">mCaptcha System Library</a></li>
    <li><a class="docs-link" href="/docs/api/pow-sha256/">pow_sha256</a></li>
    </ul>
  <h3>Help</h3>
  <ul class="list-unstyled">
    <li><a class="docs-link" href="/docs/help/troubleshooting/">Troubleshooting</a></li>
    <li><a class="docs-link" href="/docs/help/faq/">FAQ</a></li>
    </ul>
  
			</nav>
		</div>
		<nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation">
			<div class="page-links">
    <h3>On this page</h3>
    <nav id="TableOfContents">
  <ul>
    <li><a href="#instructions">Instructions</a>
      <ul>
        <li><a href="#installation">Installation</a></li>
        <li><a href="#update">Update</a></li>
      </ul>
    </li>
  </ul>
</nav>
  </div>

		</nav>
		<main class="docs-content col-lg-11 col-xl-9">
		
			<h1>Using Ansible</h1>
			<p class="lead">Deploy mCaptcha software using Ansible playbooks</p>
			<p>Ansible playbooks to install mCaptcha are available <a href="https://git.batsense.net/mCaptcha/iac">here</a>.</p>
<h2 id="instructions">Instructions<a href="#instructions" class="anchor" aria-hidden="true">#</a> </h2>
<h3 id="installation">Installation<a href="#installation" class="anchor" aria-hidden="true">#</a> </h3>
<ol>
<li>Clone the repository:</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>git clone https://git.batsense.net/mCaptcha/iac <span style="color:#ff79c6">&amp;&amp;</span> <span style="color:#8be9fd;font-style:italic">cd</span> iac
</span></span></code></pre></div><ol start="2">
<li>
<p>Create inventory file. You should have SSH access to the remote
machine, and the user must have <code>sudo</code> privileges. Example inventory
file:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-ini" data-lang="ini"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span><span style="color:#ff79c6">[mcaptcha_hosts]</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span><span style="color:#50fa7b">&#34;mcaptcha_hosts&#34;</span>
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span><span style="color:#50fa7b">&lt;node name&gt; ansible_host</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&lt;node IP&gt; ansible_user=&lt;remote username&gt;</span>
</span></span></code></pre></div><p>It is important that the group name be <code>mcaptcha_hosts</code>.</p>
</li>
<li>
<p>Configure installation by editing <a href="https://git.batsense.net/mCaptcha/iac/src/branch/master/ansible/vars/mcaptcha/vars.yml">ansible/vars/mcaptcha/vars.yml</a>. Most parameters have defaults, and the required parameters are annotated.</p>
</li>
<li>
<p>Run playbook:</p>
</li>
</ol>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>	ansible-playbook -i path/to/inventory-file -f <span style="color:#bd93f9">10</span> ./ansible/mcaptcha.yml
</span></span></code></pre></div><h3 id="update">Update<a href="#update" class="anchor" aria-hidden="true">#</a> </h3>
<ol>
<li>Pull changes from Git repository</li>
<li>Rerun playbook</li>
</ol>

			<p class="edit-page"><a href="https://git.batsense.net/mCaptcha/website/blob/master/content/docs/self-hosting/ansible.md"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"></path></svg>Edit this page on git.batsense.net</a></p>

			<div class="docs-navigation d-flex justify-content-between">
	
	<a href="/docs/self-hosting/bare-metal/">
			<div class="card my-1">
				<div class="card-body py-2">
					&larr; Deploy bare metal
				</div>
			</div>
		</a>
	<a class="ms-auto" href="/docs/self-hosting/docker/">
			<div class="card my-1">
				<div class="card-body py-2">
					Using Docker &rarr;
				</div>
			</div>
		</a>
	</div>

		</main>
	</div>

      </div>
    </div>
    
    
    <footer class="footer text-muted">
  <div class="container">
    <div class="row">
      <div class="col-lg-8 order-last order-lg-first">
        <ul class="list-inline">
          <li class="list-inline-item">Powered by <a href="https://gohugo.io/">Hugo</a>, and <a href="https://getdoks.org/">Doks</a></li>
        </ul>
      </div>
      <div class="col-lg-8 order-first order-lg-last text-lg-end">
        <ul class="list-inline">
          <li class="list-inline-item"><a href="/about/">About</a></li>
          <li class="list-inline-item"><a href="/donate">Donate</a></li>
          <li class="list-inline-item"><a href="/privacy-policy/">Privacy</a></li>
          <li class="list-inline-item"><a href="/security">Security</a></li>
          <li class="list-inline-item"><a href="https://stats.uptimerobot.com/GK7VLFJnBl">Status</a></li>
          <li class="list-inline-item"><a href="/thanks">Thanks</a></li>
          </ul>
      </div>
    </div>
  </div>
</footer>
    
    <script src="/main.min.3ee0ac4f86a3696df8d8100a6b908e1d916e5ba581515d6ca65d6849444faf247f83e42d5c7e31046edd28842ddb5369bc072c42486b426dc54057495ba99e97.js" integrity="sha512-PuCsT4ajaW342BAKa5COHZFuW6WBUV1spl1oSURPryR/g&#43;QtXH4xBG7dKIQt21NpvAcsQkhrQm3FQFdJW6melw==" crossorigin="anonymous" defer></script>
  <script src="/index.min.93b8a8c2342494612b6248052a9ee91028f73ecaca031e57b8e7bdbf1b6bea8ac3cc0db982f0bd4450facb3921041ff2c4f8c2ea5b8372142777b552db3f5167.js" integrity="sha512-k7iowjQklGErYkgFKp7pECj3PsrKAx5XuOe9vxtr6orDzA25gvC9RFD6yzkhBB/yxPjC6luDchQnd7VS2z9RZw==" crossorigin="anonymous" defer></script>
  
  </body>
</html>