Ansible 作用及部署

type
status
date
slug
summary
tags
category
icon
password
notion image
Ansible:Ansible核心程序。
HostInventory:记录由Ansible管理的主机信息,包括端口、密码、ip等。
Playbooks:“剧本”YAML格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能。
CoreModules:核心模块,主要操作是通过调用核心模块来完成管理任务。
CustomModules:自定义模块,完成核心模块无法完成的功能,支持多种语言。
ConnectionPlugins:连接插件,Ansible和Host通信使用

一、Ansible 简介

  • 开发语言:Python
  • 类型:轻量级自动化运维工具(对比 SaltStack 为中等重量,Puppet/Chef 为重量级)
  • 核心作用:批量配置管理、应用部署、任务执行等
  • 通信协议:基于 SSH,无需客户端(Agentless)
  • 架构特点:无服务端(No Server)、无客户端(No Agent)
  • 扩展性:提供丰富的 API 和模块
page icon
windows是否可以借助Ansible进行管控?
  • Ansible 本身是 基于 SSH 的无代理管理工具,默认适用于 Linux/Unix。
  • Windows 不使用 SSH(虽然 Win32-OpenSSH 可以启用 SSH),主要通过 WinRM(Windows Remote Management) 协议来远程管理。
  • Ansible 的 Windows 模块都是以 WinRM 为通信基础,例如:
    • win_copy
    • win_command
    • win_shell
    • win_service
    • win_package

二、Ansible 安装与部署

1. 配置 SSH 免密登录(推荐)

2. 安装 Ansible(CentOS 7 示例)

3. 配置主机清单(Inventory)

文件路径:/etc/ansible/hosts

3.1 未分组写法

3.2 分组写法

4. 测试连接


三、常见问题与解决

问题:非免密主机连接失败

若需使用密码连接,可在主机清单中指定:

错误提示:Host Key Checking 导致连接失败

错误信息
“Using a SSH password instead of a key is not possible because Host Key checking is enabled...”
解决方法
编辑 /etc/ansible/ansible.cfg,添加或修改:

四、补充知识点

1. Ansible 核心组件

  • Inventory:主机清单文件
  • Playbook:剧本文件,用于定义任务(YAML 格式)
  • Module:执行具体任务的模块(如 ping, copy, yum
  • Plugin:扩展功能(如回调、连接插件)
  • Ad-Hoc 命令:临时执行命令,如 ansible web -a "df -h"

2. 常用模块示例

3. 配置文件优先级

Ansible 配置按以下顺序读取(后者覆盖前者):
  • 环境变量 ANSIBLE_CONFIG
  • 当前目录下的 ansible.cfg
  • 用户家目录 ~/.ansible.cfg
  • 系统默认 /etc/ansible/ansible.cfg

五、注意事项

  • 确保所有被管理主机 SSH 端口可达
  • 若使用密码连接,建议使用 ansible-vault 加密密码
  • 生产环境中建议使用 SSH 密钥认证,提高安全性

Loading...