ansible基础介绍

Ansible是一款基于Python的自动化工具,通过SSH实现远程主机的批量管理,提升工作效率和准确性,降低成本。它支持批量操作系统配置、软件部署、文件分发等功能。配置包括安装Ansible,编写主机清单文件,定义主机信息并分发公钥。Ansible无需在管理端启动服务,受控端也不需额外软件,但需处理如SELinux等可能导致管理问题的因素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ansible批量管理服务概述
  • 基于python开发的自动化软件工具
  • 基于SSH远程管理服务实现远程主机批量管理
ansible批量管理服务意义
  • 提高工作的效率
  • 提高工作准确度
  • 减少维护的成本
  • 减少重复性工作
ansible批量管理服务功能
  • 批量系统操作配置
  • 批量软件服务部署
  • 批量文件数据分发
  • 批量系统信息收集
ansible批量管理服务部署
管理端服务器
  • 安装部署软件

    yum install -y ansible
    需要依赖epel的yum源
    
    /etc/ansible/ansible.cfg	服务配置文件
    /etc/ansible/hosts	主机清单文件
    /etc/ansible/roles	角色目录
    
  • 需要编写主机清单文件,定义可以管理的主机信息(这里面的主机要分发好公钥)

    vim /etc/ansible/hosts
    
    第一个ip
    第二个ip
    第三个ip
    
  • 测试是否可以管理多个主机

    ansible all -a "hostname"
    
    ansible 172.16.1.31,172.16.1.41 -a "hostname"
    
如何配置主机清单
  • 分组配置主机

    [web]
    第一个ip
    第二个ip
    
    [data]
    第一个ip
    第二个ip
    
    • 管理的时候要根据分组名进行管理,不能使用IP

      ansible web -a "hostname"
      
  • 主机名符号匹配配置

    [web]
    172.16.1.[7:9]
    
    相当于
    [web]
    172.16.1.7
    172.16.1.8
    172.16.1.9
    
  • 根据主机名配置

    [web]
    web01
    
    cat /etc/hosts
    172.16.1.7 web01
    
  • 跟上非标准远程端口

    [web]
    web01:222
    
  • 主机使用特殊的变量

    • 不用分发公钥就进行连接

      [web]
      172.16.1.7 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=root
      
    • 不用在hosts文件中做映射

      [web]
      web01 ansible_ssh_host=172.16.1.7 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=root
      
  • 主机组名嵌入式配置

    [rsync:children]
    rsync_server
    rsync_client
    
    [rsync_server]
    web01
    
    [rsync_client]
    web02
    web03
    
  • 嵌入变量信息配置

    [web]
    web01
    web02
    
    [web:vars]
    ansible_ssh_port=22
    ansible_ssh_user=root
    ansible_ssh_pass=123456
    
ansible服务架构信息
  • 主机清单配置
  • 软件模块信息
  • 基于秘钥连接主机
  • 主机需要关闭selinux
  • 软件剧本功能
ansible学习帮助手册如何查看
  • 列出模块使用简介

    ansible-doc -l
    
  • 指定一个模块详细说明

    ansible-doc -s fetch
    
  • 查询模块在剧本中的应用方法

    ansible-doc fetch
    
ansible输出颜色说明
  • 绿色:查看主机信息/对主机未做改动
  • 黄色:对主机数据信息进行了修改
  • 红色:命令执行出错了
  • 粉色:警告信息
  • 蓝色:显示ansible命令执行过程
ansible输出信息解释
  • 对哪台主机进行操作
  • 是否对主机信息进行修改
  • 生成一个文件校验码 == MD5数值
  • 显示目标路径信息
  • 显示复制后文件uid信息
  • 显示复制后文件属组信息
  • 生成一个文件校验码 == MD5数值
  • 显示复制后文件权限信息
  • 显示复制后文件属主信息
  • 显示文件的大小信息
ansible服务特点
  • 管理端不需要启动服务程序(no server)
  • 管理端不需要编写配置文件(/etc/ansible/ansible.cfg)
  • 受控端不需要安装软件程序(libselinux-python)
    • 被管理端selinux服务没有关闭——影响ansible软件管理
    • libselinux-python让selinux开启的状态也可以使用ansible程序
  • 受控端不需要启动服务程序(no agent)
  • 服务程序管理操作模块众多(module)
  • 利用脚本编写来实现自动化(playbook)
远程主机无法管理问题分析
  • 管理端没有分发好主机的公钥
  • 被管理端远程服务出现问题
    • /usr/sbin/sshd -D:负责建立新的远程连接
    • sushi: root@pts/0:用于维护当前的远程连接(windows—linux)
    • sshd:root@notty:用于维护远程连接(ansible—被管理端)
  • 被管理端进程出现卡死情况
    • 杀掉sshd:root@notty进程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值