02ansible的第一条命令

             <div id="article_content" class="article_content clearfix">
        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-211130ba7a.css">
                        <div id="content_views" class="markdown_views prism-tomorrow-night-eighties">
                <!-- flowchart 箭头图标 勿删 -->
                <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
                    <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
                </svg>
                                        <h4><a id="_0" target="_blank"></a>一、编写第一条命令</h4>
ansible 192.168.128.83 -m ping

 
 
  • 1

这条命令的意思是通过管理主机 ping 192.168.128.83
命令中的”-m ping”表示调用 ping 模块。由00节可知,Ansible 有很多模块,包括核心模块和自定义模块,不同的模块可以帮助我们完成不同的工作。我们会根据实际情况使用各种模块,Ansible 基于这些模块完成实际的任务。

如果想要让上述命令正常执行,则必须同时满足两个最基本的条件:
(1)Ansible 所在的管理主机可以通过ssh连接到被管理主机;
(2)被管理主机的IP地址等信息已经添加到 Ansible 的”管理清单(Inventory)”中。

条件(1)是因为 Ansible 不用在管理主机上安装 agent,但是它需要依赖ssh连接到被管理主机。条件(2)表明,即使 Ansible 所在的主机能够通过 ssh 连接到被管理主机,仍然需要将被管理主机的 IP 地址、ssh 端口号等信息添加到一个被称作为”管理清单(Inventory)”的配置文件中,如果对应的主机信息在 Ansible 的”清单”中不存在,那么 Ansible 则无法操作对应主机。

二、执行第一条命令

在01节我们已经安装好 Ansible 了,现在执行这个命令,看看效果:

[root@ansible-manager ~]# ansible 192.168.128.83 -m ping
 [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

[WARNING]: Could not match supplied host pattern, ignoring: 192.168.128.83

  • 1
  • 2
  • 3
  • 4

警告显示,主机列表是空的。也就是上面说的第二个基本条件没有满足,虽然我们可以从管理节点 ping 通被管理节点,但是 Inventory 里面没有配置这一IP地址,Ansible 就无法正确执行。

下面在把 192.168.128.83 主机和 ssh 验证信息加入到 /etc/ansible/hosts (Inventory 文件的位置)中:

192.168.128.83  ansible_port=22  ansible_user=root  ansible_ssh_pass=root

 
 
  • 1

ansible_port :用于配置被管理主机上的sshd服务端口号,如果是默认的22,则可以省略。
ansible_user :用于配置连接到被管理主机时所使用的用户名称。
ansible_ssh_pass :用于配置被管理主机用户的连接密码。

再试一次,操作成功:

[root@ansible-manager ~]# ansible 192.168.128.83 -m ping
192.168.128.83 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

Ansible 还支持对主机添加别名,当主机存在别名时,我们可以通过主机的”别名”管理对应主机。
比如,192.168.128.83 这台主机的别名为 ansible-demo3,那么,我们在配置清单时,可以进行如下配置:

ansible-demo3 anible_host=192.168.128.83  ansible_port=22  ansible_user=root  ansible_ssh_pass=root

 
 
  • 1

当为主机配置别名时,主机的IP地址必须使用 anible_host 关键字进行指明,否则 Ansible将无法正确的识别对应的主机。下面使用主机的别名管理对应主机:

[root@ansible-manager ~]# ansible ansible-demo3 -m ping
ansible-demo3 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
三、配置管理节点免密登陆

为了安全考虑,一般会采用密钥验证方式登录主机。通过证书签名达到 ssh 无密码访问。使用 ssh-keygen 与 ssh-copy-id 来实现快速证书的生成及公钥下发。

[root@ansible-manager ~]# ssh-keygen
...
[root@ansible-manager ~]# ssh-copy-id root@192.168.128.83
......

 
 
  • 1
  • 2
  • 3
  • 4

既然已经能够免密码创建 ssh 连接,那么在配置”管理清单”时,就没有必要再提供对应主机的用户名和密码了,所以,可以将清单中的配置精简为如下(端口默认为22也可以省略):

ansible-demo3 anible_host=192.168.128.83

 
 
  • 1

再次执行:

[root@ansible-manager ~]# ansible ansible-demo3 -m ping
ansible-demo3 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

如果 192.168.128.83 的 hostname 为 ansible-demo3,则清单中的配置更可以精简为:

ansible-demo3

 
 
  • 1

在后续的示例中,默认使用密钥认证的方式连接到被管理主机。

                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
                                <div data-report-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/xie_qi_chao/article/details/105809951&quot;,&quot;extend1&quot;:&quot;pc&quot;,&quot;ab&quot;:&quot;new&quot;}"></div>
                    
        <div class="person-messagebox">
            <div class="left-message"><a href="https://blog.csdn.net/xie_qi_chao">
                <img src="https://profile.csdnimg.cn/B/F/6/3_xie_qi_chao" class="avatar_pic" username="xie_qi_chao">
            </a></div>
            <div class="middle-message">
                                    <div class="title"><span class="tit "><a href="https://blog.csdn.net/xie_qi_chao" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;,&quot;ab&quot;:&quot;new&quot;}" target="_blank">解启超</a></span>
                    <!-- 等级,level -->
                                            <img class="identity-icon" src="https://csdnimg.cn/identity/blog5.png">                                            </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="{&quot;mod&quot;:&quot;popu_379&quot;,&quot;ab&quot;:&quot;new&quot;}">已关注</a>
                                                            <a href="https://im.csdn.net/im/main.html?userName=xie_qi_chao" target="_blank" class="btn btn-sm bt-button personal-letter">私信
                    </a>
                                </div>
                        </div>
                    
    </div>
</article>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河北王承志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值