Ansible 简单使用
在开始之前,了解 Ansible 如何通过 SSH 与远程机器通信非常重要。
默认情况下,如果可能,Ansible 将尝试使用本机 OpenSSH 进行远程通信。这支持 ControlPersist (性能特性)、Kerberos 和 ~/.ssh/config,例如跳转主机设置。
然而,当使用 RHEL 6 操作系统作为控制机器时,OpenSSH 版本可能太旧,不支持 ControlPersist。在这些操作系统上,Ansible 将退回到使用 OpenSSH 的高质量 Python 实现“paramiko”。如果希望使用 kerberized SSH 等特性,可以考虑使用 Fedora、macOS 或 Ubuntu 作为控制机器,直到平台上有了新的 OpenSSH 版本。
偶尔您会遇到不支持 SFTP 的设备。这很少见,但是如果发生这种情况,您可以在配置 Ansible 时切换到 SCP 模式。
在与远程机器对话时,默认情况下,Ansible 假定您使用 SSH 密钥。鼓励使用 SSH 密钥,但是也可以在需要时使用密码身份验证,方法是提供一个选项 --ask-pass。如果使用 sudo 特性,并且当 sudo 需要密码时,还要提供 --ask-become-pass。
第一条命令
现在可以使用一些简单和基本的例子。
首先,编辑或者创建 /etc/ansible/hosts 文件,用来存放远程主机的信息。你的公钥应该在这些机器的 authorized_keys 。
这是一个变量文件,现在来 ping 所有的节点。
Ansible 将尝试使用当前用户名远程连接到计算机,就像 SSH 一样。要覆盖远程用户名,只需使用' -u '参数。
如果你想要使用 sudo 模式,那么你需要使用如下的参数
现在可以运行一个
默认情况下,Ansible 启用了主机密钥检查。如果重新安装了一台主机,并且在' known_hosts '中有一个不同的键,这将导致一条错误消息,直到更正为止。如果主机最初不在' known_hosts '中,这将导致提示确认密钥,如果使用例如 cron 之类的工具来使用 Ansible,则会产生不好的交互体验。如果不需要该功能,且希望禁用此行为,您可以通过编辑/etc/ansible/ansible.cfg 或~/.ansible.cfg 来实现:
版权声明: 本文为 InfoQ 作者【耳东】的原创文章。
原文链接:【http://xie.infoq.cn/article/29b5dee1e1d64d074733b4e75】。文章转载请联系作者。
评论