<div id="article_content" class="article_content clearfix">
        <link rel="stylesheet" href="">
                        <div  class="markdown_views prism-tomorrow-night-eighties">
                <!-- flowchart 箭头图标 勿删 -->
                <svg xmlns="http://www.w3.org/2000/svg" >
                    <path stroke-linecap="round" d="M5,0 0,2.5 5,5z"  ></path>
                </svg>
                                        <h4><a id="Ansible__0" target="_blank"></a>一、Ansible 管理命令</h4>

Ansible 管理命令有如下几个:
(1)ansible:这个命令是日常工作中使用率非常高的命令之一,主要用于临时一次性操作;
(2)ansible-doc:Ansible 模块文档说明,针对每个模块都有详细的用法说明和应用案例介绍;
(3)ansible-galaxy:可以简单的理解为 Github 或 PIP 的功能,是 Ansible 官方一个分享 role 的功能平台。可以通过 ansible-galaxy 命令很简单的实现 role 的分享和安装;
(4)ansible-playbook:是日常应用中使用频率最高的命令,其工作机制是,通过读取预先编写好的playbook文件实现批量管理;
(5)ansible-pull:Ansible 的另一种工作模式,pull 模式,Ansible 默认使用 push 模式;
(6)ansible-vault:主要用于配置文件加密;
(7)ansible-console:让用户可以在 ansible-console 虚拟出来的终端上像 Shell 一样使用 Ansible 内置的各种命令。

下面对常用的管理命令做介绍。

二、ansible 命令

ansible 是日常工作中使用率非常高的命令之一,其主要在如下场景使用:
(1)非固化需求
(2)临时一次性操作
(3)二次开发接口调用

该命令使用方式如下:

ansible <host-pattern> [options]
  • 1

比如:工作中我临时想查看 web1 服务器是否存活,或我想临时复制本地的 /etc/fstab 到 web1 服务器的 /tmp 目录下做测试等等。

具体的命令使用如下:
检查服务器存活

ansible web1 -m ping
  • 1

复制本地文件到远程

ansible web1 -m copy -a "src=/etc/fstab dest=/tmp/fstab owner=root group=root mode=644 backup=yes"
  • 1

详细参数可以查看帮助:

[root@ansible-manager ~]# ansible -h
Usage: ansible <host-pattern> [options]

Define and run a single task ‘playbook’ against a set of

Options:

-a MODULE_ARGS, –args=MODULE_ARGS
 module arguments
–ask-vault-pass ask for vault password
-B SECONDS, –background=SECONDS
 run asynchronously, failing after X seconds
(default=N/A)
-C, –check don’t make any changes; instead, try to predict some
of the changes that may occur
-D, –diff when changing (small) files and templates, show the
 differences in those files; works great with –check
-e EXTRA_VARS, –extra-vars=EXTRA_VARS
set additional variables as key=value or YAML/JSON, if
 filename prepend with @
-f FORKS, –forks=FORKS
 specify number of parallel processes to use
(default=5)
……
 Some modules do not make sense in Ad-Hoc (include, meta, etc)



相关选项都有解释,这里不再详述。

三、ansible-doc 命令

ansible-doc 是 Ansible 模块文档说明,针对每个模块都有详细的用法说明及应用案例介绍,功能和 Linux 系统 man 命令类似。该命令使用方式如下:

ansible-doc [options] [module...]
  • 1

ansible-doc 命令后跟[options]参数或[模块名],显示模块用法说明,具体示例如下:

列出支持的模块

ansible-doc -l
  • 1

ping 模块功能说明

ansible-doc ping
  • 1
四、ansible-playbook 命令

ansible-playbook 是日常应用中使用频率最高的命令,其工作机制是通过读取预先编写好的 playbook文件实现批量管理。要实现的功能与命令 ansible 是一样的,可以理解为按一定条件组成的 ansible 任务集。

ansible-playbook 命令后跟 YML 格式的 playbook 文件,执行事先编排好的任务集,命令使用方式如下:

ansible-playbook playbook.yml
  • 1

具体示例如下:
执行 nginx.yml 这个 playbook 中定义的所有任务集

ansible-playbook nginx.yml
  • 1

playbook 具有编写简单、可定制性高、灵活方便同时可固化日常所有操作的特点,运维人员应熟练掌握。

</div>
            <link href="" rel="stylesheet">
                                <div data-report-view="{"mod":"popu_387","dest":";}"></div>
                    
        <div class="person-messagebox">
            <div class="left-message"><a href="">
                <img src="" class="avatar_pic" username="xie_qi_chao">
            </a></div>
            <div class="middle-message">
                                    <div class="title"><span class="tit "><a href="" data-report-click="{"mod":"popu_379","ab":"new"}" target="_blank">解启超</a></span>
                    <!-- 等级,level -->
                                            <img class="identity-icon" src="">                                            </div>
                <div class="text"><span>原创文章 409</span><span>获赞 75</span><span>访问量 6万+</span></div>
            </div>
                            <div class="right-message">
                                        <a class="btn btn-sm attented bt-button personal-watch" data-report-click="{"mod":"popu_379","ab":"new"}">已关注</a>
                                                            <a href="" target="_blank" class="btn btn-sm bt-button personal-letter">私信
                    </a>
                                </div>
                        </div>
                    
    </div>
</article>