阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

ansible的ansible.cfg配置介绍

59次阅读
没有评论

共计 3373 个字符,预计需要花费 9 分钟才能阅读完成。

Ansible 默认安装好后有一个配置文件 /etc/ansible/ansible.cfg,该配置文件中定义了 ansible 的主机的默认配置部分,如默认是否需要输入密码、是否开启 sudo 认证、action_plugins 插件的位置、hosts 主机组的位置、是否开启 log 功能、默认端口、key 文件位置等等。

具体如下:

[defaults]
# some basic default values...
hostfile = /etc/ansible/hosts                 \\ 指定默认 hosts 配置的位置
# library_path = /usr/share/my_modules/
remote_tmp = $HOME/.ansible/tmp
pattern = *
forks = 5
poll_interval = 15
sudo_user = root                             \\ 远程 sudo 用户
#ask_sudo_pass = True                        \\ 每次执行 ansible 命令是否询问 ssh 密码
#ask_pass = True                             \\ 每次执行 ansible 命令时是否询问 sudo 密码
transport = smart
remote_port = 22
module_lang = C
gathering = implicit
host_key_checking = False                   \\ 关闭第一次使用 ansible 连接客户端是输入命令提示
log_path = /var/log/ansible.log                   
                                            \\ 需要时可以自行添加 chown -R root:root ansible.log
system_warnings = False                     \\ 关闭运行 ansible 时系统的提示信息,一般为提示升级
# set plugin path directories here, separate with colons
action_plugins = /usr/share/ansible_plugins/action_plugins
callback_plugins = /usr/share/ansible_plugins/callback_plugins
connection_plugins = /usr/share/ansible_plugins/connection_plugins
lookup_plugins = /usr/share/ansible_plugins/lookup_plugins
vars_plugins = /usr/share/ansible_plugins/vars_plugins
filter_plugins = /usr/share/ansible_plugins/filter_plugins
fact_caching = memory
[accelerate]
accelerate_port = 5099
accelerate_timeout = 30
accelerate_connect_timeout = 5.0
# The daemon timeout is measured in minutes. This time is measured
# from the last activity to the accelerate daemon.
accelerate_daemon_timeout = 30

本篇就结合一个示例对其进行下了解。我在对之前未连接的主机进行连结时报错如下:

[root@361way.com ~]# ansible test -a 'uptime'
10.212.52.14 | FAILED => Using a SSH password instead of a key is not possible because Host Key
checking is enabled and sshpass does not support this. Please add this host's fingerprint to 
your known_hosts file to manage this host.
10.212.52.16 | FAILED => Using a SSH password instead of a key is not possible because Host Key
 checking is enabled and sshpass does not support this. Please add this host's fingerprint to 
your known_hosts file to manage this host.

从上面的输出提示上基本可以了解到由于在本机的~/.ssh/known_hosts 文件中并有 fingerprint key 串,ssh 第一次连接的时候一般会提示输入 yes 进行确认为将 key 字符串加入到  ~/.ssh/known_hosts 文件中。

方法 1:

了解到问题原因为,我们了解到进行 ssh 连接时,可以使用 - o 参数将 StrictHostKeyChecking 设置为 no,使用 ssh 连接时避免首次连接时让输入 yes/no 部分的提示。通过查看 ansible.cfg 配置文件,发现如下行:

[ssh_connection]
# ssh arguments to use
# Leaving off ControlPersist will result in poor performance, so use
# paramiko on older platforms rather than removing it
#ssh_args = -o ControlMaster=auto -o ControlPersist=60s

所以这里我们可以启用 ssh_args 部分,使用下面的配置,避免上面出现的错误:

ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no
方法 2:

在 ansible.cfg 配置文件中,也会找到如下部分:

# uncomment this to disable SSH key host checking
host_key_checking = False

默认 host_key_checking 部分是注释的,通过找开该行的注释,同样也可以实现跳过 ssh 首次连接提示验证部分。由于配置文件中直接有该选项,所以推荐用方法 2。

其他部分

由于官方给的说明比较详细,同时 ansible.cfg 文件本身默认也有注释提示部分,所以不做过多说明,这里再举个例子,默认 ansible 执行的时候,并不会输出日志到文件,不过在 ansible.cfg 配置文件中有如下行:

# logging is off by default unless this path is defined
# if so defined, consider logrotate
log_path = /var/log/ansible.log

同样,默认 log_path 这行是注释的,打开该行的注释,所有的命令执行后,都会将日志输出到 /var/log/ansible.log 文件,便于了解在何时执行了何操作及其结果,如下:

[root@361way.com ansible]# cat /var/log/ansible.log
2015-05-04 01:57:19,758 p=4667 u=root |
2015-05-04 01:57:19,759 p=4667 u=root | /usr/bin/ansible test -a uptime
2015-05-04 01:57:19,759 p=4667 u=root |
2015-05-04 01:57:20,563 p=4667 u=root | 10.212.52.252 | success | rc=0 >>
01:57am up 23 days 11:20, 2 users, load average: 0.38, 0.38, 0.40
2015-05-04 01:57:20,831 p=4667 u=root | 10.212.52.14 | success | rc=0 >>
02:03am up 331 days 8:19, 2 users, load average: 0.08, 0.05, 0.05
2015-05-04 01:57:20,909 p=4667 u=root | 10.212.52.16 | success | rc=0 >>
02:05am up 331 days 8:56, 2 users, load average: 0.00, 0.01, 0.05

更多部分可以参看官方文档。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-09-20发表,共计3373字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中