doc: update docs/ansible.md (#542)

* doc: update ansible.md

* doc: update ansible.md 代码格式

* 增加十分钟同步的域名、增加自动部署脚本

* 优化部署文档:定时任务同步pages的内容

* 优化 git-down-pages.sh 脚本 到配置

* update  README.md

* 更新代码

* update: doc ansible.md

* update CONTRIBUTING.md

* update CONTRIBUTING.md fix

* 优化ansible排版格式

---------

Co-authored-by: 魏栋梁 <dongliang.wei@fujfu.com> 704ba7332e
This commit is contained in:
jaywcjlove
2024-02-29 03:00:31 +00:00
parent 3374c80fbf
commit a024e2f2bf
4 changed files with 106 additions and 106 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -32,7 +32,7 @@
<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常用模块">ansible常用模块</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="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">
</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">
@ -400,108 +400,6 @@
</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常用模块"><a aria-hidden="true" tabindex="-1" href="#ansible常用模块"><span class="icon icon-link"></span></a>ansible常用模块</h3><div class="wrap-body">
<p>ansible的模块已经高达3000+之多。但是个人在日常工作中比较常见的大约20多个</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><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'</code> minute=* hour=* day=* month=* weekday=*"</td></tr><tr><td>yum</td><td>RedHat和CentOS的软件包安装和管理</td><td><code>安装&#x3C;br />ansible all -m yum -a "name=httpd state=present"&#x3C;br/>ansible all -m yum -a "name=httpd state=installed"&#x3C;br />卸载&#x3C;br />ansible all -m yum -a "name=httpd state=absent"&#x3C;br/>ansible all -m yum -a "name=httpd state=removed"</code></td></tr><tr><td>service和systemd</td><td>用于管理远程主机的服务</td><td><code>ansible all -m systemd -a "name=httpd state=started enabled=yes"&#x3C;br />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>`ansible all -m lineinfile -a "path=/etc/selinux/config regexp='^SELINUX=' line='SELINUX=disabled'"</td></tr></tbody></table>
</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
@ -991,6 +889,108 @@
<!--rehype:className=style-list-->
<!-- ### ansible-playbook -->
<!-- todo -->
</div></div></div><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>ansible的模块已经高达3000+之多。但是个人在日常工作中比较常见的大约20多个</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><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><code>安装&#x3C;br />ansible all -m yum -a "name=httpd state=present"&#x3C;br/>ansible all -m yum -a "name=httpd state=installed"&#x3C;br />卸载&#x3C;br />ansible all -m yum -a "name=httpd state=absent"&#x3C;br/>ansible all -m yum -a "name=httpd state=removed"</code></td></tr><tr><td>service和systemd</td><td>用于管理远程主机的服务</td><td><code>ansible all -m systemd -a "name=httpd state=started enabled=yes"&#x3C;br />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>
</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>

View File

@ -1485,7 +1485,7 @@
<!--rehype:class=home-card home-links-->
<p>如果你有资源,可以很方便<a href="https://github.com/jaywcjlove/reference/issues/102#issue-1451649637">部署 web 版</a>,这非常简单,只需要克隆 <a href="https://github.com/jaywcjlove/reference/tree/gh-pages">gh-pages</a> 分支代码到你的静态服务就可以了,还可以使用 <a href="https://hub.docker.com/r/wcjiang/reference">docker</a> 快捷部署 web 版。</p>
</div></div><div class="h2wrap-body"></div></div></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 Kenny Wang. Updated on 2024/02/29 10:28:08</footer></footer><script src="data.js?v=1.5.2" defer></script><script src="js/fuse.min.js?v=1.5.2" defer></script><script src="js/main.js?v=1.5.2" 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">
</div></div><div class="h2wrap-body"></div></div></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 Kenny Wang. Updated on 2024/02/29 10:59:46</footer></footer><script src="data.js?v=1.5.2" defer></script><script src="js/fuse.min.js?v=1.5.2" defer></script><script src="js/main.js?v=1.5.2" 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>