在使用Ansible控制自身(localhost)时,可以使用local选项
我正在使用 Vagrant 创建的 CentOS 7.x 虚拟机中复习 ansible。
由于 CentOS 7.x 默认安装的是 Ansible 1.9 版本,但如果安装 epel 软件仓库,则可以安装 2.1 版本。将在 2.1 版本中运行在 1.9 版本中创建的 *.yml 文件,一般都可以正常运行,但是会出现多种废弃警告,因此我正在努力将其改为适用于2.1版本的格式。
vagrant@localhost:/etc/ansible$ grep _warnings ansible.cfg
#system_warnings = True
#deprecation_warnings = True
command_warnings = True
現在,Vagrant 使用虛擬機(VM)時,在虛擬機一側會有一個名為 authorized_keys(*1)的公開金鑰,而在主機一側則沒有。
- (*1)…Vagrant-1.8.5 では公開鍵のパーミッションが誤っているため、修正しないと接続できません。
在Ansible中,被控制的一方不需要代理,只需要运行sshd就可以了。但是在虚拟机内,默认情况下也使用ssh连接。因此,以前为了控制自己,我们需要将private_key复制到虚拟机上。
我重新阅读手册后,发现ansible-playbook命令中有一个”-c local”选项。使用这个选项,即使没有ssh密钥,也可以执行ansible-playbook命令。
只是,总是容易忘记添加选项,每次都会
The authenticity of host 'localhost (::1)' can't be established.
如果您所说的是正确的,那么只需将localhost默认设置为本地连接就好了,这样想到后来才发现,设置已经正确配置好了。
请提供下列选项中的一个,母语为中文:
http://docs.ansible.com/ansible/intro_inventory.html#non-ssh-connection-types
http://docs.ansible.com/ansible/intro_inventory.html#非SSH连接类型
只需要一个选项,用中文翻译以下内容:仅仅将 /etc/ansible/hosts
localhost ansible_connection=local
只是写下来而已。我就变得幸福了。