Files
reference/docs/ansible.html
2025-05-11 17:34:02 +00:00

1018 lines
52 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" data-color-mode="dark">
<head>
<meta charset="utf-8">
<title>Ansible 备忘清单
&#x26; ansible cheatsheet &#x26; Quick Reference</title>
<meta content="width=device-width, initial-scale=1" name="viewport">
<meta description="此快速参考备忘单提供了使用 Ansible 的各种方法。
入门,为开发人员分享快速参考备忘单。">
<meta keywords="ansible,reference,Quick,Reference,cheatsheet,cheat,sheet">
<meta name="author" content="jaywcjlove">
<meta name="license" content="MIT">
<meta name="funding" content="https://jaywcjlove.github.io/#/sponsor">
<meta rel="apple-touch-icon" href="../icons/touch-icon-iphone.png">
<meta rel="apple-touch-icon" sizes="152x152" href="../icons/touch-icon-ipad.png">
<meta rel="apple-touch-icon" sizes="180x180" href="../icons/touch-icon-iphone.png">
<meta rel="apple-touch-icon" sizes="167x167" href="../icons/touch-icon-ipad-retina.png">
<meta rel="apple-touch-icon" sizes="120x120" href="../icons/touch-icon-iphone-retina.png">
<link rel="icon" href="../icons/favicon.svg" type="image/svg+xml">
<link href="../style/style.css" rel="stylesheet">
<link href="../style/katex.css" rel="stylesheet">
</head>
<body><nav class="header-nav"><div class="max-container"><a href="../index.html" class="logo"><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" height="1em" width="1em">
<path d="m21.66 10.44-.98 4.18c-.84 3.61-2.5 5.07-5.62 4.77-.5-.04-1.04-.13-1.62-.27l-1.68-.4c-4.17-.99-5.46-3.05-4.48-7.23l.98-4.19c.2-.85.44-1.59.74-2.2 1.17-2.42 3.16-3.07 6.5-2.28l1.67.39c4.19.98 5.47 3.05 4.49 7.23Z" fill="#c9d1d9"></path>
<path d="M15.06 19.39c-.62.42-1.4.77-2.35 1.08l-1.58.52c-3.97 1.28-6.06.21-7.35-3.76L2.5 13.28c-1.28-3.97-.22-6.07 3.75-7.35l1.58-.52c.41-.13.8-.24 1.17-.31-.3.61-.54 1.35-.74 2.2l-.98 4.19c-.98 4.18.31 6.24 4.48 7.23l1.68.4c.58.14 1.12.23 1.62.27Zm2.43-8.88c-.06 0-.12-.01-.19-.02l-4.85-1.23a.75.75 0 0 1 .37-1.45l4.85 1.23a.748.748 0 0 1-.18 1.47Z" fill="#228e6c"></path>
<path d="M14.56 13.89c-.06 0-.12-.01-.19-.02l-2.91-.74a.75.75 0 0 1 .37-1.45l2.91.74c.4.1.64.51.54.91-.08.34-.38.56-.72.56Z" fill="#228e6c"></path>
</svg>
<span class="title">Quick Reference</span></a><div class="menu"><a href="javascript:void(0);" class="searchbtn" id="searchbtn"><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
</svg><span>搜索</span><span>⌘K</span></a><a href="https://github.com/jaywcjlove/reference/blob/main/docs/ansible.md" class="edit" target="__blank"><svg viewBox="0 0 36 36" fill="currentColor" height="1em" width="1em"><path d="m33 6.4-3.7-3.7a1.71 1.71 0 0 0-2.36 0L23.65 6H6a2 2 0 0 0-2 2v22a2 2 0 0 0 2 2h22a2 2 0 0 0 2-2V11.76l3-3a1.67 1.67 0 0 0 0-2.36ZM18.83 20.13l-4.19.93 1-4.15 9.55-9.57 3.23 3.23ZM29.5 9.43 26.27 6.2l1.85-1.85 3.23 3.23Z"></path><path fill="none" d="M0 0h36v36H0z"></path></svg><span>编辑</span></a><button id="darkMode" type="button"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="light" height="1em" width="1em">
<path d="M6.995 12c0 2.761 2.246 5.007 5.007 5.007s5.007-2.246 5.007-5.007-2.246-5.007-5.007-5.007S6.995 9.239 6.995 12zM11 19h2v3h-2zm0-17h2v3h-2zm-9 9h3v2H2zm17 0h3v2h-3zM5.637 19.778l-1.414-1.414 2.121-2.121 1.414 1.414zM16.242 6.344l2.122-2.122 1.414 1.414-2.122 2.122zM6.344 7.759 4.223 5.637l1.415-1.414 2.12 2.122zm13.434 10.605-1.414 1.414-2.122-2.122 1.414-1.414z"></path>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24" class="dark" height="1em" width="1em">
<path d="M12 11.807A9.002 9.002 0 0 1 10.049 2a9.942 9.942 0 0 0-5.12 2.735c-3.905 3.905-3.905 10.237 0 14.142 3.906 3.906 10.237 3.905 14.143 0a9.946 9.946 0 0 0 2.735-5.119A9.003 9.003 0 0 1 12 11.807z"></path>
</svg>
</button><script src="../js/dark.js?v=1.8.3"></script><a href="https://github.com/jaywcjlove/reference" class="" target="__blank"><svg viewBox="0 0 16 16" fill="currentColor" height="1em" width="1em"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg></a></div></div></nav><div class="wrap h1body-exist max-container"><header class="wrap-header h1wrap"><h1 id="ansible-备忘清单"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" height="1em" width="1em" viewBox="0 0 65 65">
<path fill="currentColor" d="M32,0 C49.672,0 64,14.328 64,32 C64,49.674 49.674,64 32,64 C14.326,64 0,49.674 0,32 C0,14.326 14.328,0 32,0 Z M32.539,12.688 C31.666,12.688 30.875,13.156 30.511,14.04 L16.52,47.664 L21.303,47.664 L26.837,33.801 L43.352,47.144 C44.016,47.681 44.496,47.924 45.119,47.924 C46.367,47.924 47.457,46.988 47.457,45.638 C47.457,45.418 47.379,45.068 47.239,44.694 L34.512,14.04 C34.148,13.156 33.412,12.688 32.539,12.688 Z M32.54,19.548 L40.82,39.986 L28.312,30.133 L32.54,19.548 Z" transform="translate(.38 .76)"></path>
</svg><a aria-hidden="true" tabindex="-1" href="#ansible-备忘清单"><span class="icon icon-link"></span></a>Ansible 备忘清单</h1><div class="wrap-body">
<p>此快速参考备忘单提供了使用 <a href="https://ansible.com">Ansible</a> 的各种方法。</p>
</div></header><div class="menu-tocs"><div class="menu-btn"><svg aria-hidden="true" fill="currentColor" height="1em" width="1em" viewBox="0 0 16 16" version="1.1" data-view-component="true">
<path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path>
</svg></div><div class="menu-modal"><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#入门">入门</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#安装">安装</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#配置位置">配置位置</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#inventory文件hosts列表">Inventory文件(hosts列表)</a><a aria-hidden="true" class="leve4 tocs-link" data-num="4" href="#静态inventory">静态Inventory</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#inventory-主机组使用多个ip和域名">Inventory 主机组使用多个IP和域名</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#inventory-主机组使用子主机组">Inventory 主机组使用子主机组</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#给多台主机设置变量">给多台主机设置变量</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#命令行ad-hoc">命令行(ad-hoc)</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#ansible">ansible</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#ansible-命令帮助">Ansible 命令帮助</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#ansible-galaxy-工具">Ansible Galaxy 工具</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#ansible-doc">ansible-doc</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#ansible-vault">ansible-vault</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#ansible-playbook">ansible-playbook</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#ansible-pull">ansible-pull</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#ansible常用模块">ansible常用模块</a><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#另见">另见</a></div></div><div class="h1wrap-body"><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="入门"><a aria-hidden="true" tabindex="-1" href="#入门"><span class="icon icon-link"></span></a>入门</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="安装"><a aria-hidden="true" tabindex="-1" href="#安装"><span class="icon icon-link"></span></a>安装</h3><div class="wrap-body">
<table><thead><tr><th align="left">安装命令</th><th>环境</th></tr></thead><tbody><tr><td align="left"><code>brew install ansible</code></td><td>macos</td></tr><tr><td align="left"><code>yum install -y ansible</code></td><td>centos</td></tr><tr><td align="left"><code>pip install ansible</code></td><td>python</td></tr></tbody></table>
<hr>
<ul>
<li><a href="https://docs.ansible.com">Ansible 官方文档</a></li>
</ul>
</div></div></div><div class="wrap h3body-not-exist col-span-2 row-span-2"><div class="wrap-header h3wrap"><h3 id="配置位置"><a aria-hidden="true" tabindex="-1" href="#配置位置"><span class="icon icon-link"></span></a>配置位置</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2 row-span-2-->
<table><thead><tr><th align="left">文件路径</th><th>说明</th></tr></thead><tbody><tr><td align="left"><code>/etc/ansible/ansible.cfg</code></td><td>系统范围的配置</td></tr><tr><td align="left"><code>~/ansible.cfg</code></td><td>用户特定的配置</td></tr><tr><td align="left"><code>$pwd/ansible.cfg</code></td><td>当前目录下的配置</td></tr></tbody></table>
<p>配置文件优先级</p>
<ul class="style-timeline">
<li>如果没有任何其他配置文件,默认使用 <code>/etc/ansible/ansible.cfg</code></li>
<li><code>~/.ansible.cfg</code> <code></code>目录下的 <code>.ansible.cfg</code></li>
<li>当前目录下的 <code>ansible.cfg</code>,即在同一目录下 <code>ansible.cfg</code> 优先级高于 <code>~/.ansible.cfg</code></li>
<li>环境变量 <code>exoport ANSIBLE_CONFIG=/$DIR/ansible.cfg</code></li>
</ul>
<!--rehype:className=style-timeline-->
<p>查看正在使用的 <code>ansible</code> 配置文件:</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">ansible <span class="token parameter variable">--version</span> <span class="token operator">|</span> <span class="token function">grep</span> <span class="token string">"config file"</span>
</span></code></pre>
</div></div></div><div class="wrap h3body-exist"><div class="wrap-header h3wrap"><h3 id="inventory文件hosts列表"><a aria-hidden="true" tabindex="-1" href="#inventory文件hosts列表"><span class="icon icon-link"></span></a>Inventory文件(hosts列表)</h3><div class="wrap-body">
<h4 id="静态inventory"><a aria-hidden="true" tabindex="-1" href="#静态inventory"><span class="icon icon-link"></span></a>静态Inventory</h4>
<p><code>/etc/ansible/hosts</code></p>
<pre class="language-ini"><code class="language-ini code-highlight"><span class="code-line">mail.example.com
</span><span class="code-line">
</span><span class="code-line"><span class="token section"><span class="token punctuation">[</span><span class="token section-name selector">webservers</span><span class="token punctuation">]</span></span>
</span><span class="code-line">foo.example.com
</span><span class="code-line">bar.example.com
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="inventory-主机组使用多个ip和域名"><a aria-hidden="true" tabindex="-1" href="#inventory-主机组使用多个ip和域名"><span class="icon icon-link"></span></a>Inventory 主机组使用多个IP和域名</h3><div class="wrap-body">
<pre class="language-ini"><code class="language-ini code-highlight"><span class="code-line"><span class="token section"><span class="token punctuation">[</span><span class="token section-name selector">web</span><span class="token punctuation">]</span></span>
</span><span class="code-line">172.18.12.5[1:4]
</span><span class="code-line"><span class="token section"><span class="token punctuation">[</span><span class="token section-name selector">webservers</span><span class="token punctuation">]</span></span>
</span><span class="code-line">www[01:50].example.com
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="inventory-主机组使用子主机组"><a aria-hidden="true" tabindex="-1" href="#inventory-主机组使用子主机组"><span class="icon icon-link"></span></a>Inventory 主机组使用子主机组</h3><div class="wrap-body">
<pre class="language-ini"><code class="language-ini code-highlight"><span class="code-line"><span class="token section"><span class="token punctuation">[</span><span class="token section-name selector">usa:children</span><span class="token punctuation">]</span></span>
</span><span class="code-line">southeast
</span><span class="code-line">northeast
</span><span class="code-line">southwest
</span><span class="code-line">northwest
</span></code></pre>
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="给多台主机设置变量"><a aria-hidden="true" tabindex="-1" href="#给多台主机设置变量"><span class="icon icon-link"></span></a>给多台主机设置变量</h3><div class="wrap-body">
<p><code>group variables</code>
如果组中的所有主机共享一个变量值,则可以一次将该变量应用于整个组</p>
<pre class="language-ini"><code class="language-ini code-highlight"><span class="code-line"><span class="token section"><span class="token punctuation">[</span><span class="token section-name selector">atlanta</span><span class="token punctuation">]</span></span>
</span><span class="code-line">host1
</span><span class="code-line">host2
</span><span class="code-line">
</span><span class="code-line"><span class="token section"><span class="token punctuation">[</span><span class="token section-name selector">atlanta:vars</span><span class="token punctuation">]</span></span>
</span><span class="code-line"><span class="token key attr-name">ntp_server</span><span class="token punctuation">=</span><span class="token value attr-value">ntp.atlanta.example.com</span>
</span><span class="code-line"><span class="token key attr-name">proxy</span><span class="token punctuation">=</span><span class="token value attr-value">proxy.atlanta.example.com</span>
</span><span class="code-line">
</span></code></pre>
</div></div></div></div></div><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="命令行ad-hoc"><a aria-hidden="true" tabindex="-1" href="#命令行ad-hoc"><span class="icon icon-link"></span></a>命令行(ad-hoc)</h2><div class="wrap-body">
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="ansible"><a aria-hidden="true" tabindex="-1" href="#ansible"><span class="icon icon-link"></span></a>ansible</h3><div class="wrap-body">
<p>检查Inventory是否生效</p>
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ ansible all --list-hosts
</span></code></pre>
<p>ping所有目标</p>
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ ansible all <span class="token parameter variable">-m</span> <span class="token function">ping</span>
</span></code></pre>
<p>ping本地(不使用SSH连接)</p>
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line">$ ansible all <span class="token parameter variable">-i</span> localhost, <span class="token parameter variable">-e</span> <span class="token string">'{"ansible_connection": "local"}'</span> <span class="token parameter variable">-m</span> <span class="token function">ping</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>本地执行命令</p>
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line">$ ansible all <span class="token parameter variable">-i</span> localhost, <span class="token parameter variable">-e</span> <span class="token string">'{"ansible_connection": "local"}'</span> <span class="token parameter variable">-a</span> <span class="token string">'hostname'</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>获取本地主机的信息</p>
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line">$ ansible all <span class="token parameter variable">-i</span> localhost, <span class="token parameter variable">-e</span> <span class="token string">'{"ansible_connection": "local"}'</span> <span class="token parameter variable">-m</span> setup
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>获取远程到本地</p>
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line">$ ansible target <span class="token parameter variable">-m</span> fetch <span class="token parameter variable">-a</span> <span class="token string">"src=/tmp/seq dest=/tmp/seq"</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
<p>拷贝本地到远程</p>
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line">$ ansible target <span class="token parameter variable">-m</span> copy <span class="token parameter variable">-a</span> <span class="token string">"src=/tmp/seq dest=/tmp/seq"</span>
</span></code></pre>
<!--rehype:className=wrap-text -->
</div></div></div><div class="wrap h3body-not-exist col-span-2 row-span-3"><div class="wrap-header h3wrap"><h3 id="ansible-命令帮助"><a aria-hidden="true" tabindex="-1" href="#ansible-命令帮助"><span class="icon icon-link"></span></a>Ansible 命令帮助</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-2 row-span-3-->
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ ansible
</span><span class="code-line">$ ansible <span class="token operator">&#x3C;</span>host-pattern<span class="token operator">></span> <span class="token punctuation">[</span>options<span class="token punctuation">]</span>
</span></code></pre>
<hr>
<table class="left-align"><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>-a MODULE_ARGS</code>, <code>--args=MODULE_ARGS</code></td><td>模块参数</td></tr><tr><td align="left"><code>--ask-vault-pass</code></td><td>询问保险库密码</td></tr><tr><td align="left"><code>-B SECONDS</code>, <code>--background=SECONDS</code></td><td>异步运行X 秒后失败 (默认=N/A)</td></tr><tr><td align="left"><code>-C</code>, <code>--check</code></td><td>不要做任何改变;相反,尝试预测可能发生的一些变化</td></tr><tr><td align="left"><code>-D</code>, <code>--diff</code></td><td>更改(小)文件和模板时,显示这些文件中的差异; 与 <code>--check</code> 配合使用效果很好</td></tr><tr><td align="left"><code>-e EXTRA_VARS</code>, <code>--extra-vars=EXTRA_VARS</code></td><td>将附加变量设置为 key=value 或 YAML/JSON</td></tr><tr><td align="left"><code>-f FORKS</code>, <code>--forks=FORKS</code></td><td>指定要使用的并行进程数 (default=5)</td></tr><tr><td align="left"><code>-h</code>, <code>--help</code></td><td>显示此帮助信息并退出</td></tr><tr><td align="left"><code>-i INVENTORY</code>, <code>--inventory-file=INVENTORY</code></td><td>指定清单主机路径(默认=/etc/ansible/hosts)或逗号分隔的主机列表</td></tr><tr><td align="left"><code>-l SUBSET</code>, <code>--limit=SUBSET</code></td><td>进一步将选定主机限制为其他模式</td></tr><tr><td align="left"><code>--list-hosts</code></td><td>输出匹配主机列表;不执行任何其他操作</td></tr><tr><td align="left"><code>-m MODULE_NAME</code>, <code>--module-name=MODULE_NAME</code></td><td>要执行的模块名称 (default=command)</td></tr><tr><td align="left"><code>-M MODULE_PATH</code>, <code>--module-path=MODULE_PATH</code></td><td>指定模块库的路径 (default=None)</td></tr><tr><td align="left"><code>--new-vault-password-file=NEW_VAULT_PASSWORD_FILE</code></td><td>用于重新生成密钥的新保管库密码文件</td></tr><tr><td align="left"><code>-o</code>, <code>--one-line</code></td><td>压缩输出</td></tr><tr><td align="left"><code>--output=OUTPUT_FILE</code></td><td>用于加密或解密的输出文件名; 使用 - 用于标准输出</td></tr><tr><td align="left"><code>-P POLL_INTERVAL</code>, <code>--poll=POLL_INTERVAL</code></td><td>如果使用 -B 则设置轮询间隔(default=15)</td></tr><tr><td align="left"><code>--syntax-check</code></td><td>对 playbook 执行语法检查,但不要执行它</td></tr><tr><td align="left"><code>-t TREE</code>, <code>--tree=TREE</code></td><td>将输出记录到此目录</td></tr><tr><td align="left"><code>--vault-password-file=VAULT_PASSWORD_FILE</code></td><td>保险库密码文件</td></tr><tr><td align="left"><code>-v</code>, <code>--verbose</code></td><td>详细模式(-vvv 更多,-vvvv 启用连接调试)</td></tr><tr><td align="left"><code>--version</code></td><td>显示程序的版本号并退出</td></tr></tbody></table>
<!--rehype:className=left-align-->
<p>控制谁以及如何连接到主机,连接选项:</p>
<table class="left-align"><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>-k</code>, <code>--ask-pass</code></td><td>询问连接密码</td></tr><tr><td align="left"><code>--private-key=PRIVATE_KEY_FILE</code>, <code>--key-file=PRIVATE_KEY_FILE</code></td><td>使用此文件来验证连接</td></tr><tr><td align="left"><code>-u REMOTE_USER</code>, <code>--user=REMOTE_USER</code></td><td>以此用户身份连接(default=None)</td></tr><tr><td align="left"><code>-c CONNECTION</code>, <code>--connection=CONNECTION</code></td><td>要使用的连接类型 (default=smart)</td></tr><tr><td align="left"><code>-T TIMEOUT</code>, <code>--timeout=TIMEOUT</code></td><td>以秒为单位覆盖连接超时 (default=10)</td></tr><tr><td align="left"><code>--ssh-common-args=SSH_COMMON_ARGS</code></td><td>指定要传递给 sftp/scp/ssh 的常用参数 (e.g. ProxyCommand)</td></tr><tr><td align="left"><code>--sftp-extra-args=SFTP_EXTRA_ARGS</code></td><td>指定仅传递给 <code>sftp</code> 的额外参数 (e.g. -f, -l)</td></tr><tr><td align="left"><code>--scp-extra-args=SCP_EXTRA_ARGS</code></td><td>指定仅传递给 <code>scp</code> 的额外参数 (e.g. -l)</td></tr><tr><td align="left"><code>--ssh-extra-args=SSH_EXTRA_ARGS</code></td><td>指定仅传递给 <code>ssh</code> 的额外参数 (e.g. -R)</td></tr></tbody></table>
<!--rehype:className=left-align-->
<p>控制您成为目标主机上的用户的方式和用户,特权升级选项:</p>
<table class="left-align"><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><del><code>-s</code></del>, <del><code>--sudo</code></del></td><td>使用 sudo (nopasswd) 运行操作(已弃用,使用 become)</td></tr><tr><td align="left"><del><code>-U SUDO_USER</code></del>, <del><code>--sudo-user=SUDO_USER</code></del></td><td>所需的 sudo 用户(默认=root)(已弃用,使用 become)</td></tr><tr><td align="left"><del><code>-S</code></del>, <del><code>--su</code></del></td><td>使用 su 运行操作(已弃用,使用 become)</td></tr><tr><td align="left"><del><code>-R SU_USER</code></del>, <del><code>--su-user=SU_USER</code></del></td><td>以该用户身份使用 su 运行操作(默认 = root)(已弃用,使用 become)</td></tr><tr><td align="left"><code>-b</code>, <code>--become</code></td><td>使用 become 运行操作(不暗示密码提示)</td></tr><tr><td align="left"><code>--become-method=BECOME_METHOD</code></td><td>要使用的权限提升方法(默认=sudo),有效选择:[ <code>sudo</code> | <code>su</code> | <code>pbrun</code> | <code>pfexec</code> | <code>runas</code> | <code>doas</code> | <code>dzdo</code> ]</td></tr><tr><td align="left"><code>--become-user=BECOME_USER</code></td><td>以该用户身份运行操作(默认=root)</td></tr><tr><td align="left"><del><code>--ask-sudo-pass</code></del></td><td>询问 sudo 密码(已弃用,使用 become)</td></tr><tr><td align="left"><del><code>--ask-su-pass</code></del></td><td>询问 su 密码(已弃用,使用 become)</td></tr><tr><td align="left"><code>-K</code>, <code>--ask-become-pass</code></td><td>要求提权密码</td></tr></tbody></table>
<!--rehype:className=left-align-->
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="ansible-galaxy-工具"><a aria-hidden="true" tabindex="-1" href="#ansible-galaxy-工具"><span class="icon icon-link"></span></a>Ansible Galaxy 工具</h3><div class="wrap-body">
<pre class="wrap-text"><code class="language-bash code-highlight"><span class="code-line">$ ansible-galaxy <span class="token punctuation">[</span>delete<span class="token operator">|</span><span class="token function">import</span><span class="token operator">|</span>info<span class="token operator">|</span>init<span class="token operator">|</span><span class="token function">install</span><span class="token operator">|</span>list<span class="token operator">|</span>login<span class="token operator">|</span>remove<span class="token operator">|</span>search<span class="token operator">|</span>setup<span class="token punctuation">]</span> <span class="token punctuation">[</span>--help<span class="token punctuation">]</span> <span class="token punctuation">[</span>options<span class="token punctuation">]</span> <span class="token punctuation">..</span>.
</span></code></pre>
<!--rehype:className=wrap-text-->
<hr>
<table class="style-list"><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>-h</code>, <code>--help</code></td><td>显示此帮助信息并退出</td></tr><tr><td align="left"><code>-v</code>, <code>--verbose</code></td><td>详细模式(-vvv 更多,-vvvv 启用连接调试)</td></tr><tr><td align="left"><code>--version</code></td><td>显示程序的版本号并退出</td></tr></tbody></table>
<!--rehype:className=style-list-->
<hr>
<pre class="wrap-text"><code class="language-bash code-highlight"><span class="code-line">$ ansible-galaxy search <span class="token parameter variable">--author</span> <span class="token operator">&#x3C;</span>AUTHOR<span class="token operator">></span>
</span><span class="code-line">$ ansible-galaxy search <span class="token parameter variable">--platforms</span> <span class="token operator">&#x3C;</span>PLATFORM<span class="token operator">></span>
</span><span class="code-line">$ ansible-galaxy search --galaxy-tags <span class="token operator">&#x3C;</span>TAG<span class="token operator">></span>
</span><span class="code-line">$ ansible-galaxy info <span class="token operator">&#x3C;</span>ROLE<span class="token operator">></span>
</span><span class="code-line">$ ansible-galaxy <span class="token function">install</span> <span class="token operator">&#x3C;</span>ROLE<span class="token operator">></span> <span class="token parameter variable">-p</span> <span class="token operator">&#x3C;</span>ROLE_DIRECTORY<span class="token operator">></span>
</span><span class="code-line">$ ansible-galaxy <span class="token function">install</span> <span class="token parameter variable">-r</span> <span class="token operator">&#x3C;</span>ROLE<span class="token operator"><span class="token file-descriptor important">1</span>></span> <span class="token operator">&#x3C;</span>ROLE<span class="token operator"><span class="token file-descriptor important">2</span>></span> <span class="token operator">&#x3C;</span>ROLE<span class="token operator"><span class="token file-descriptor important">3</span>></span> <span class="token punctuation">..</span>.
</span><span class="code-line">$ ansible-galaxy list
</span><span class="code-line">$ ansible-galaxy remove <span class="token operator">&#x3C;</span>ROLE<span class="token operator">></span>
</span><span class="code-line">$ ansible-galaxy init <span class="token operator">&#x3C;</span>ROLE<span class="token operator">></span>
</span><span class="code-line">$ ansible-galaxy init <span class="token parameter variable">--offline</span> <span class="token operator">&#x3C;</span>ROLE<span class="token operator">></span>
</span></code></pre>
<!--rehype:className=wrap-text-->
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="ansible-doc"><a aria-hidden="true" tabindex="-1" href="#ansible-doc"><span class="icon icon-link"></span></a>ansible-doc</h3><div class="wrap-body">
<p>在本地访问文档</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ ansible-doc
</span><span class="code-line">$ ansible-doc <span class="token punctuation">[</span>options<span class="token punctuation">]</span> <span class="token punctuation">[</span>module<span class="token punctuation">..</span>.<span class="token punctuation">]</span>
</span></code></pre>
<hr>
<table class="style-list"><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>-h</code>, <code>--help</code></td><td>显示此帮助信息并退出</td></tr><tr><td align="left"><code>-l</code>, <code>--list</code></td><td>列出可用模块</td></tr><tr><td align="left"><code>-M MODULE_PATH</code>, <code>--module-path=MODULE_PATH</code></td><td>指定模块库的路径 (default=None)</td></tr><tr><td align="left"><code>-s</code>, <code>--snippet</code></td><td>显示指定模块的剧本片段</td></tr><tr><td align="left"><code>-v</code>, <code>--verbose</code></td><td>详细模式(-vvv 更多,-vvvv 启用连接调试)</td></tr><tr><td align="left"><code>--version</code></td><td>显示程序的版本号并退出</td></tr></tbody></table>
<!--rehype:className=style-list-->
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="ansible-vault"><a aria-hidden="true" tabindex="-1" href="#ansible-vault"><span class="icon icon-link"></span></a>ansible-vault</h3><div class="wrap-body">
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ ansible-vault
</span><span class="code-line">$ ansible-vault <span class="token punctuation">[</span>create<span class="token operator">|</span>decrypt<span class="token operator">|</span>edit<span class="token operator">|</span>encrypt<span class="token operator">|</span>rekey<span class="token operator">|</span>view<span class="token punctuation">]</span> <span class="token punctuation">[</span>--help<span class="token punctuation">]</span> <span class="token punctuation">[</span>options<span class="token punctuation">]</span> vaultfile.yml
</span></code></pre>
<hr>
<table class="style-list"><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>--ask-vault-pass</code></td><td>询问保险库密码</td></tr><tr><td align="left"><code>-h</code>, <code>--help</code></td><td>显示此帮助信息并退出</td></tr><tr><td align="left"><code>--new-vault-password-file=NEW_VAULT_PASSWORD_FILE</code></td><td>用于重新生成密钥的新保管库密码文件</td></tr><tr><td align="left"><code>--output=OUTPUT_FILE</code></td><td>用于加密或解密的输出文件名; 使用 - 用于标准输出</td></tr><tr><td align="left"><code>--vault-password-file=VAULT_PASSWORD_FILE</code></td><td>保险库密码文件</td></tr><tr><td align="left"><code>-v</code>, <code>--verbose</code></td><td>详细模式(-vvv 更多,-vvvv 启用连接调试)</td></tr><tr><td align="left"><code>--version</code></td><td>显示程序的版本号并退出</td></tr></tbody></table>
<!--rehype:className=style-list-->
</div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="ansible-playbook"><a aria-hidden="true" tabindex="-1" href="#ansible-playbook"><span class="icon icon-link"></span></a>ansible-playbook</h3><div class="wrap-body">
<!--rehype:wrap-class=row-span-2-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ ansible-playbook
</span><span class="code-line">$ ansible-playbook playbook.yml
</span></code></pre>
<hr>
<table class="style-list"><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>--ask-vault-pass</code></td><td>询问保险库密码</td></tr><tr><td align="left"><code>-C</code>, <code>--check</code></td><td>不要做任何改变;相反,尝试预测可能发生的一些变化</td></tr><tr><td align="left"><code>-D</code>, <code>--diff</code></td><td>更改(小)文件和模板时,显示这些文件中的差异;与 <code>--check</code> 配合使用效果很好</td></tr><tr><td align="left"><code>-e EXTRA_VARS</code>, <code>--extra-vars=EXTRA_VARS</code></td><td>将附加变量设置为 key=value 或 YAML/JSON</td></tr><tr><td align="left"><code>--flush-cache</code></td><td>清除事实缓存</td></tr><tr><td align="left"><code>--force-handlers</code></td><td>即使任务失败也运行处理程序</td></tr><tr><td align="left"><code>-f FORKS</code>, <code>--forks=FORKS</code></td><td>指定要使用的并行进程数(默认值=5</td></tr><tr><td align="left"><code>-h</code>, <code>--help</code></td><td>显示此帮助信息并退出</td></tr><tr><td align="left"><code>-i INVENTORY</code>, <code>--inventory-file=INVENTORY</code></td><td>指定清单主机路径(默认=/etc/ansible/hosts或逗号分隔的主机列表</td></tr><tr><td align="left"><code>-l SUBSET</code>, <code>--limit=SUBSET</code></td><td>进一步将选定主机限制为其他模式</td></tr><tr><td align="left"><code>--list-hosts</code></td><td>输出匹配主机列表;不执行任何其他操作</td></tr><tr><td align="left"><code>--list-tags</code></td><td>列出所有可用的标签</td></tr><tr><td align="left"><code>--list-tasks</code></td><td>列出所有将要执行的任务</td></tr><tr><td align="left"><code>-M MODULE_PATH</code>, <code>--module-path=MODULE_PATH</code></td><td>指定模块库的路径(默认=无)</td></tr><tr><td align="left"><code>--new-vault-password-file=NEW_VAULT_PASSWORD_FILE</code></td><td>用于重新生成密钥的新保管库密码文件</td></tr><tr><td align="left"><code>--output=OUTPUT_FILE</code></td><td>用于加密或解密的输出文件名;使用 - 用于标准输出</td></tr><tr><td align="left"><code>--skip-tags=SKIP_TAGS</code></td><td>只运行标签与这些值不匹配的播放和任务</td></tr><tr><td align="left"><code>--start-at-task=START_AT_TASK</code></td><td>在匹配此名称的任务处启动剧本</td></tr><tr><td align="left"><code>--step</code></td><td>一步一步:在运行前确认每个任务</td></tr><tr><td align="left"><code>--syntax-check</code></td><td>对 playbook 执行语法检查,但不要执行它</td></tr><tr><td align="left"><code>-t TAGS</code>, <code>--tags=TAGS</code></td><td>只运行带有这些值标记的播放和任务</td></tr><tr><td align="left"><code>--vault-password-file=VAULT_PASSWORD_FILE</code></td><td>保险库密码文件</td></tr><tr><td align="left"><code>-v</code>, <code>--verbose</code></td><td>详细模式(-vvv 更多,-vvvv 启用连接调试)</td></tr><tr><td align="left"><code>--version</code></td><td>显示程序的版本号并退出</td></tr></tbody></table>
<!--rehype:className=style-list-->
<p>连接选项:</p>
<table class="style-list"><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>-k</code>, <code>--ask-pass</code></td><td>询问连接密码</td></tr><tr><td align="left"><code>--private-key=PRIVATE_KEY_FILE</code>, <code>--key-file=PRIVATE_KEY_FILE</code></td><td>使用此文件来验证连接</td></tr><tr><td align="left"><code>-u REMOTE_USER</code>, <code>--user=REMOTE_USER</code></td><td>以此用户身份连接(默认=None)</td></tr><tr><td align="left"><code>-c CONNECTION</code>, <code>--connection=CONNECTION</code></td><td>要使用的连接类型(默认=smart)</td></tr><tr><td align="left"><code>-T TIMEOUT</code>, <code>--timeout=TIMEOUT</code></td><td>以秒为单位覆盖连接超时(默认值 = 10)</td></tr><tr><td align="left"><code>--ssh-common-args=SSH_COMMON_ARGS</code></td><td>指定要传递给 sftp/scp/ssh 的常用参数(例如 ProxyCommand)</td></tr><tr><td align="left"><code>--sftp-extra-args=SFTP_EXTRA_ARGS</code></td><td>指定仅传递给 sftp 的额外参数(例如 -f、-l)</td></tr><tr><td align="left"><code>--scp-extra-args=SCP_EXTRA_ARGS</code></td><td>指定仅传递给 scp 的额外参数(例如 -l)</td></tr><tr><td align="left"><code>--ssh-extra-args=SSH_EXTRA_ARGS</code></td><td>指定仅传递给 ssh 的额外参数(例如 -R)</td></tr></tbody></table>
<!--rehype:className=style-list-->
<p>特权升级选项:</p>
<table class="style-list"><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>-s</code>, <code>--sudo</code></td><td>使用 sudo (nopasswd) 运行操作(已弃用,使用 become)</td></tr><tr><td align="left"><code>-U SUDO_USER</code>, <code>--sudo-user=SUDO_USER</code></td><td>所需的 sudo 用户(默认=root)(已弃用使用become)</td></tr><tr><td align="left"><code>-S</code>, <code>--su</code></td><td>使用 su 运行操作(已弃用,使用 become)</td></tr><tr><td align="left"><code>-R SU_USER</code>, <code>--su-user=SU_USER</code></td><td>以该用户身份使用 su 运行操作(默认 = root)(已弃用使用become)</td></tr><tr><td align="left"><code>-b</code>, <code>--become</code></td><td>使用 become 运行操作(不暗示密码提示)</td></tr><tr><td align="left"><code>--become-method=BECOME_METHOD</code></td><td>要使用的权限提升方法(默认=sudo),有效选择:[ sudo | su | pbrun | pfexec | runas | doas | dzdo ]</td></tr><tr><td align="left"><code>--become-user=BECOME_USER</code></td><td>以该用户身份运行操作(默认=root)</td></tr><tr><td align="left"><code>--ask-sudo-pass</code></td><td>询问 sudo 密码(已弃用,使用 become)</td></tr><tr><td align="left"><code>--ask-su-pass</code></td><td>询问 su 密码(已弃用,使用 become)</td></tr><tr><td align="left"><code>-K</code>, <code>--ask-become-pass</code></td><td>要求提权密码</td></tr></tbody></table>
<!--rehype:className=style-list-->
</div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="ansible-pull"><a aria-hidden="true" tabindex="-1" href="#ansible-pull"><span class="icon icon-link"></span></a>ansible-pull</h3><div class="wrap-body">
<!--rehype:wrap-class=row-span-2-->
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ ansible-pull
</span><span class="code-line">$ ansible-pull <span class="token parameter variable">-U</span> <span class="token operator">&#x3C;</span>repository<span class="token operator">></span> <span class="token punctuation">[</span>options<span class="token punctuation">]</span>
</span></code></pre>
<hr>
<table class="style-list"><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>--accept-host-key</code></td><td>如果尚未添加,则添加 repo url 的主机密钥</td></tr><tr><td align="left"><code>--ask-vault-pass</code></td><td>询问保险库密码</td></tr><tr><td align="left"><code>-C CHECKOUT</code>, <code>--checkout=CHECKOUT</code></td><td>分支/标签/提交结帐。默认为存储库模块的行为。</td></tr><tr><td align="left"><code>-d DEST</code>, <code>--directory=DEST</code></td><td>签出存储库的目录</td></tr><tr><td align="left"><code>-e EXTRA_VARS</code>, <code>--extra-vars=EXTRA_VARS</code></td><td>将附加变量设置为 key=value 或 YAML/JSON</td></tr><tr><td align="left"><code>-f</code>, <code>--force</code></td><td>即使无法更新存储库也运行 playbook</td></tr><tr><td align="left"><code>--full</code></td><td>做一个完整的克隆,而不是一个浅的</td></tr><tr><td align="left"><code>-h</code>, <code>--help</code></td><td>显示此帮助信息并退出</td></tr><tr><td align="left"><code>-i INVENTORY</code>, <code>--inventory-file=INVENTORY</code></td><td>指定清单主机路径(默认=/etc/ansible/hosts)或逗号分隔的主机列表</td></tr><tr><td align="left"><code>-l SUBSET</code>, <code>--limit=SUBSET</code></td><td>进一步将选定主机限制为其他模式</td></tr><tr><td align="left"><code>--list-hosts</code></td><td>输出匹配主机列表;不执行任何其他操作</td></tr><tr><td align="left"><code>-m MODULE_NAME</code>, <code>--module-name=MODULE_NAME</code></td><td>存储库模块名称ansible 将使用它来签出 repo。默认是 git</td></tr><tr><td align="left"><code>-M MODULE_PATH</code>, <code>--module-path=MODULE_PATH</code></td><td>指定模块库的路径(默认=无)</td></tr><tr><td align="left"><code>--new-vault-password-file=NEW_VAULT_PASSWORD_FILE</code></td><td>用于重新生成密钥的新保管库密码文件</td></tr><tr><td align="left"><code>-o</code>, <code>--only-if-changed</code></td><td>仅在存储库已更新时才运行 playbook</td></tr><tr><td align="left"><code>--output=OUTPUT_FILE</code></td><td>用于加密或解密的输出文件名;使用 - 用于标准输出</td></tr><tr><td align="left"><code>--purge</code></td><td>剧本运行后清除结帐</td></tr><tr><td align="left"><code>--skip-tags=SKIP_TAGS</code></td><td>只运行标签与这些值不匹配的播放和任务</td></tr><tr><td align="left"><code>-s SLEEP</code>, <code>--sleep=SLEEP</code></td><td>在开始之前休眠随机间隔(在 0 到 n 秒之间)。这是分散 git 请求的有用方法</td></tr><tr><td align="left"><code>-t TAGS</code>, <code>--tags=TAGS</code></td><td>只运行带有这些值标记的播放和任务</td></tr><tr><td align="left"><code>-U URL</code>, <code>--url=URL</code></td><td>剧本存储库的 URL</td></tr><tr><td align="left"><code>--vault-password-file=VAULT_PASSWORD_FILE</code></td><td>保险库密码文件</td></tr><tr><td align="left"><code>-v</code>, <code>--verbose</code></td><td>详细模式(-vvv 更多,-vvvv 启用连接调试)</td></tr><tr><td align="left"><code>--verify-commit</code></td><td>验证签出提交的 GPG 签名,如果失败则中止运行 playbook。这就需要对应的VCS模块来支持这样的操作</td></tr><tr><td align="left"><code>--version</code></td><td>显示程序的版本号并退出</td></tr></tbody></table>
<!--rehype:className=style-list-->
<p>连接选项:</p>
<table class="style-list"><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>-k</code>, <code>--ask-pass</code></td><td>询问连接密码</td></tr><tr><td align="left"><code>--private-key=PRIVATE_KEY_FILE</code>, <code>--key-file=PRIVATE_KEY_FILE</code></td><td>使用此文件来验证连接</td></tr><tr><td align="left"><code>-u REMOTE_USER</code>, <code>--user=REMOTE_USER</code></td><td>以此用户身份连接(默认=无)</td></tr><tr><td align="left"><code>-c CONNECTION</code>, <code>--connection=CONNECTION</code></td><td>要使用的连接类型(默认=智能)</td></tr><tr><td align="left"><code>-T TIMEOUT</code>, <code>--timeout=TIMEOUT</code></td><td>以秒为单位覆盖连接超时(默认值 = 10)</td></tr><tr><td align="left"><code>--ssh-common-args=SSH_COMMON_ARGS</code></td><td>指定要传递给 sftp/scp/ssh 的常用参数(例如 ProxyCommand)</td></tr><tr><td align="left"><code>--sftp-extra-args=SFTP_EXTRA_ARGS</code></td><td>指定仅传递给 sftp 的额外参数(例如 -f、-l)</td></tr><tr><td align="left"><code>--scp-extra-args=SCP_EXTRA_ARGS</code></td><td>指定仅传递给 scp 的额外参数(例如 -l)</td></tr><tr><td align="left"><code>--ssh-extra-args=SSH_EXTRA_ARGS</code></td><td>指定仅传递给 ssh 的额外参数(例如 -R)</td></tr></tbody></table>
<!--rehype:className=style-list-->
<p>特权升级选项:</p>
<table class="style-list"><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>--ask-sudo-pass</code></td><td>询问 sudo 密码(已弃用使用become)</td></tr><tr><td align="left"><code>--ask-su-pass</code></td><td>询问 su 密码(已弃用使用become)</td></tr><tr><td align="left"><code>-K</code>, <code>--ask-become-pass</code></td><td>要求提权密码</td></tr></tbody></table>
<!--rehype:className=style-list-->
<!-- ### ansible-playbook -->
<!-- todo -->
</div></div></div><div class="wrap h3body-not-exist col-span-3"><div class="wrap-header h3wrap"><h3 id="ansible常用模块"><a aria-hidden="true" tabindex="-1" href="#ansible常用模块"><span class="icon icon-link"></span></a>ansible常用模块</h3><div class="wrap-body">
<!--rehype:wrap-class=col-span-3 -->
<p><code>Ansible</code> 的模块已经高达 <code>3000+</code> 之多。但是个人在日常工作中,比较常见的大约 <code>20</code> 多个</p>
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">$ ansible-doc <span class="token parameter variable">--list</span> <span class="token comment">#查询所有模块</span>
</span><span class="code-line">$ ansible <span class="token operator">&#x3C;</span>host-pattern<span class="token operator">></span> <span class="token punctuation">[</span>options<span class="token punctuation">]</span> <span class="token comment"># 标准使用方式</span>
</span></code></pre>
<hr>
<table class="left-align"><thead><tr><th>:-</th><th>-</th><th>-</th></tr></thead><tbody><tr><td>ping</td><td>检查指定节点机器是否还能连通</td><td><code>ansible all -m ping</code></td></tr><tr><td>command</td><td>用于在各受控端节点运行指定的命令</td><td><code>ansible all -m command -a 'hostname'</code></td></tr><tr><td>shell</td><td>shell模块可以特殊字符而command是不支持</td><td><code>ansible all -m shell -a 'hostname &#x26;&#x26; date'</code></td></tr><tr><td>hostname</td><td>修改远程受控节点的主机名的模块</td><td><code>ansible -i /opt/hosts xx -m hostname -a 'name=ansible-client-199'</code></td></tr><tr><td>copy</td><td>在远程主机执行复制操作文件</td><td><code>ansible all -m copy -a 'src=/etc/hosts dest=/opt/hosts backup=yes'</code></td></tr><tr><td>fetch</td><td>从远程主机获取文件到管理节点,但是不支持目录操作</td><td><code>ansible all -m fetch -a "src=/etc/yum.repos.d/epel.repo dest=/usr/local/src"</code></td></tr><tr><td>script</td><td>管理端一个脚本,然后在远程服务器上执行</td><td><code>ansible all -m script -a '/root/time.sh'</code></td></tr><tr><td>file</td><td>主要用于远程主机上的文件和目录操作</td><td><code>ansible all -m file -a "path=/root/rsync.password mode=600 state=touch"</code></td></tr><tr><td>cron</td><td>管理执行任务计划模块(增删改查)</td><td><code>ansible all -m cron -a "name='test a job' user=root job='/bin/sh /server/scripts/test.sh' minute=* hour=* day=* month=* weekday=*"</code></td></tr><tr><td>yum</td><td>RedHat和CentOS的软件包安装和管理</td><td>安装<br><code>ansible all -m yum -a "name=httpd state=present"</code><br><code>ansible all -m yum -a "name=httpd state=installed"</code><br>卸载<br><code>ansible all -m yum -a "name=httpd state=absent"</code><br><code>ansible all -m yum -a "name=httpd state=removed"</code></td></tr><tr><td><code>service</code><code>systemd</code></td><td>用于管理远程主机的服务</td><td><code>ansible all -m systemd -a "name=httpd state=started enabled=yes"</code><br><code>ansible all -m systemd -a "name=httpd state=restarted"</code></td></tr><tr><td>user</td><td>useradd, userdel, usermod</td><td><code>ansible all -m user -a 'name=haha remove=no state=absent'</code></td></tr><tr><td>group</td><td>groupadd, groupdel, groupmod</td><td><code>ansible all -m group -a 'name=mygroup state=absent'</code></td></tr><tr><td>setup</td><td>可收集远程主机的facts变量的信息</td><td><code>ansible all -m setup -a 'filter=ansible_default_ipv4'</code></td></tr><tr><td>authorized_key</td><td>为特定的用户账号添加或删除 SSH authorized keys</td><td><code>ansible all -m authorized_key -a "user=root key='{{lookup('file','/root/.ssh/id_rsa.pub')}}' path=/root/.ssh/authorized_keys manage_dir=no"</code></td></tr><tr><td>replace</td><td>和 sed 命令比较类似,用于正则匹配和替换</td><td><code>ansible all -m replace -a "path=/etc/fstab regexp=^(UUID.*) replace='#\1'"</code></td></tr><tr><td>lineinfile</td><td>正则匹配,更改某个关键参数值</td><td><code>ansible all -m lineinfile -a "path=/etc/selinux/config regexp='^SELINUX=' line='SELINUX=disabled'"</code></td></tr></tbody></table>
<!--rehype:className=left-align-->
</div></div></div></div></div><div class="wrap h2body-not-exist"><div class="wrap-header h2wrap"><h2 id="另见"><a aria-hidden="true" tabindex="-1" href="#另见"><span class="icon icon-link"></span></a>另见</h2><div class="wrap-body">
<ul>
<li><a href="https://docs.ansible.com/ansible/latest/getting_started/index.html">Getting started with Ansible</a></li>
<li><a href="https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html">Introduction to ad hoc commands</a></li>
<li><a href="https://github.com/luckylittle/ansible-cheatsheet/blob/master/ansible-cheatsheet.txt">Ansible cheatsheet</a></li>
<li><a href="https://spacelift.io/blog/ansible-tutorial">Ansible Tutorial for Beginners: Ultimate Playbook &#x26; Examples</a></li>
</ul>
</div></div><div class="h2wrap-body"></div></div></div><script src="https://giscus.app/client.js" data-repo="jaywcjlove/reference" data-repo-id="R_kgDOID2-Mw" data-category="Q&#x26;A" data-category-id="DIC_kwDOID2-M84CS5wo" data-mapping="pathname" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="bottom" data-theme="dark" data-lang="zh-CN" crossorigin="anonymous" async></script><div class="giscus"></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 <a href="https://wangchujiang.com/#/app" target="_blank">Kenny Wang</a>.</footer></footer><script src="../data.js?v=1.8.3" defer></script><script src="../js/fuse.min.js?v=1.8.3" defer></script><script src="../js/main.js?v=1.8.3" defer></script><div id="mysearch"><div class="mysearch-box"><div class="mysearch-input"><div><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
</svg><input id="mysearch-input" type="search" placeholder="搜索" autocomplete="off"><div class="mysearch-clear"></div></div><button id="mysearch-close" type="button">搜索</button></div><div class="mysearch-result"><div id="mysearch-menu"></div><div id="mysearch-content"></div></div></div></div></body>
</html>