Ansible学习笔记(一)SSH连接
远程连接信息
了解ansible
如何通过ssh
与远程主机通信是很重要的。
ansible 1.3
和之后版本会默认使用openssh
,以支持ControlPersist
,Kerberos
和~/.ssh/config
配置。在一些较老的版本中,如RH/CentOS
较早版本时,openssh
版本可能太老而不支持部分以上特性,此时ansible
会使用python
的OpenSSH
实现paramiko
。如果需要Kerberized ssh
,建议使用ubuntu
、fedora
等openssh
版本较新的发行版。
而<=1.2的版本中,默认为paramiko
,使用-c
选项切换到native
的ssh.
有很小的可能会遇到不支持SFTP
的情况,此时可以在配置文件中切换到SCP
。
与远程主机通信时,默认使用ssh key
,也可以通过-k
选项来使用密码,如果需要sudo特性且sudo要求密码时,可使用--ask-become-pass
。
也许是常识:控制主机离被控制集群越近,执行速度越快,因此尽量选用较近的主机。ansible
也并不一定要使用ssh
,传输方式是插件式的,支持本地管理方式、chroot,lxc
和jail containers, ansible-pull
模式能够按日程从中央git
服务器中pull
指令。
第一个命令
|
|
-b
是指使用sudo
现在来执行一个live
的命令
|
|
好的,你已经学会与远程主机通信了。现在可以去阅读一些为特定场景设计的命令,以了解ansible
可以为你做些什么,然后学习一些ansible playbook
的语法。
主机Key
检查
ansible 1.2
以上的版本会自动检测主机key
。如果主机重装后Key
与known_hosts
中不同,那么就会报错。对于不在known_hosts
中的主机则会提示确认key
,从而变成交互式的操作。也许你不想变成这样,如果你确认懂得以下操作的风险,你可以在配置文件/etc/ansible/ansible.cfg
或./.ansible.cfg
中修改.
也可能通过环境变量
另外主机Key
确认在paramiko
中有些慢,此时推荐切换到ssh
方式。
ansible
会在远程主机的syslog
上一些模块参数。除非task
或者play
有no_log
标签。
如要打开本地日志功能,参见Configuration file 中 log_path
配置设置。