Ansible-连接方法和细节

Ansible-连接方法和细节

  • 默认情况下,Ansible 使用本机 OpenSSH,因为它支持 ControlPersist(一项性能功能)、Kerberos 和 ~/.ssh/config 中的选项,例如 Jump Host 设置。,如果您的控制机器使用不支持 ControlPersist 的旧版本 OpenSSH,Ansible 将回退到名为“paramiko”的 OpenSSH Python 实现。

1. 设置远程用户

  • 默认情况下,Ansible使用在控制节点上的用户名连接所有的远程设备,如果远程设备上不存在该用户名,可以设置一个不同的用户名用于连接。
# 在playbook中设置用户名
---
- name: update webservers
  hosts: webservers
  remote_user: admin

  tasks:
  - name: thing to do first in this playbook
  . . .
  
# 在inventory中作为主机变量
other1.example.com     ansible_connection=ssh        ansible_user=myuser
other2.example.com     ansible_connection=ssh        ansible_user=myotheruser

# 在inventory中作为组变量
cloud:
  hosts:
    cloud1: my_backup.cloud.com
    cloud2: my_backup2.cloud.com
  vars:
    ansible_user: admin

2. 设置ssh秘钥

  • 默认情况下,Ansible假设使用SSH秘钥登录到远程机器,也可以通过--ask-pass选项输入密码登录,如果需要提权(sudo、 pbrun)可以使用--ask-become-pass选项
  • 使用ssh连接插件(默认设置)时,Ansible不会公开通道允许用户和ssh进程之间通过手动输入密码来解ssh秘钥,推荐使用ssh-agent
# 要设置 SSH 代理以避免重新输入密码
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa

# 可以通过 --private-key 指定一个pem文件
$ ssh-agent bash
$ ssh-add ~/.ssh/keypair.pem

# 还可以在inventory文件中使用 ansible_ssh_private_key_file 添加私钥文件

3. 针对本地主机运行

# 可以通过"localhost"或者"127.0.0.1"指定当前主机
$ ansible localhost -m ping -e 'ansible_python_interpreter="/usr/bin/env python"'

# 可以通过将其添加到inventory文件指定本地主机
localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"

4.检查主机秘钥

  • Ansible 默认启用主机密钥检查。检查主机密钥可以防止服务器欺骗和中间人攻击,但它确实需要一些维护。
  • 如果主机被重新安装并且在“known_hosts”中有不同的密钥,这将导致错误消息,直到更正。如果新主机不在“known_hosts”中,您的控制节点可能会提示确认密钥。
# 如果希望禁用这个行为,可以编辑/etc/ansible/ansible.cfg 或 ~/.ansible.cfg 
[defaults]
host_key_checking = False

# 通过 ANSIBLE_HOST_KEY_CHECKING 环境变量设置
$ export ANSIBLE_HOST_KEY_CHECKING=False

# 在 paramiko 模式下检查主机密钥相当慢,因此在使用此功能时也建议切换到“ssh”。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值