zoukankan      html  css  js  c++  java
  • Ansible工作架构和原理

    特性

    • 模块块化调用持定的模块,完成持定任务
    • 有Paramiko,PyYAML,Jinja2(模板语言)三个关键模块
    • 支持自定义模块
    • 基于Python语法头现
    • 部署简单,基于python和SSH(默认已安),agentless
    • 安全,基于openSSH
    • 支持playbook编排任务
    • 幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况
    • 无需代理不依赖PKI(无需ssl)
    • 可使用任何程浯言编写模块
    • YAML格式,编排任务,支持丰富的数据结构
    • 较强大的多层解决方案(角色)

    架构

    • Host Inventory 主机清单:记录哪些主机需要控制
    • Playbook 脚本
    • Connection Plugins 连接插件

    管理ansible

    • CMDB : 配置管理数据库(需要开发)
    • 公有云、私有云配置接口(需要开发)
    • 用户命令(主要)
    • Playbook 脚本(主要)

    Ansible主要组成部分

    • ANSIBLEPLAYBOOKS:任务剧本(任务集),编排定义Ansible任务集的配置
      文件,由Ansible顺序依次执行,通常是jsON格式的YML文件
    • INVENTORY:Ansible管理主机的清单/etc/anaible/hosts
    • MODULES:Ansible执行命令的功能模块,多数为内置核心块,也可自定义
    • PLUGINS模块功能的补充,如连接类型适件、循环插件、变量插件、过滤插
      件等,该功能不常用
    • API:供第三方程序调用的应用程序编程接口
    • ANSIBLE:组合INVENTORY、API、MODULES、PLUGINS的绿框,可以理解
      为是ansible命令工具其为核心执行工具

    利用Ansible实现管理的方式

    • AD-Hoc即ansible命令,主要用于临时命令使用场景
    • Ansible-playbook主要用于长期规划好的,大型顶目的场景,需要有前提
      的规划.

    Playbook执行过程

    • 任务集写入Playbook
    • 拆分任务集,逐条执行

    主要操作对象

    • HOSTS主机
    • NETWORKING网络设备

    Ansible安装

    • yum install ansible
    • 源码安装
    • GIT安装
    • pip安装

    确认安装:
    ansible --version

    配置文件:

    • 主配置文件/etc/ansible/ansible.cfg 通常不用动,配置工作特性
    • 主机清单/etc/ansible/hosts:要管理的主机
    • 角色/etc/ansible/roles

    程序

    • /usr/bin/ansible主程序,临时命令执行工具
    • /usr/bin/ansible-doc看配置文档,模块功能查看工
    • /usr/bin/ansible-galaxy下载/上传优秀代码或Roles模块的官网平台
    • /usr/bin/ansible-playbook定制自动化任务,编排剧本工具,类似于bash
    • /usr/bin/ansibIe-pull远程执行命令的工具
    • /usr/bin/ansible-vault文件加密工具
    • /usr/bin/ansible-console基于console界面与用户交互的执行工具

    Inventory主机清单

    • ansible的主要功用在于批量主机操作,为了便捷地使用其中的部分主机,可以在inventory file中将其分组命名
    • 默认的inventory file为/etc/ansible/hosts
    • inventoryfile可以有多个,且也可以通过Dynamic Inventory动态生成

    例 用ping模块判断主机是否存活:ansible 目标IP -m ping -k。对方必须在ansible hosts里,且需要带密码。若填写多个IP,只会要求填写第一个的口令(用此口令访问所有主机),则可能会导致其他的出错。切访问次序不会按期望执行。上次连接会记住了口令。ansible all -m ping -k访问主机清单里的所有主机。

    主机清单格式

    inventory文件遵循INI文件风格,中括号中的字符为组名。可以将同一个主机
    同时归并到多个不同的组中;此外,当如若目标主机使用了非默认的SSH端口,
    还可以在主机名称之后使用冒号加端囗号来标明

    • ntp.magedu.com
    • [webservers]
    • wwwl.magedu.com2222
    • www2.magedu.com
    • [dbservers]
    • 4b1.magedu.com
    • 4b2.magedu.com
    • db3.maqedu.com
  • 相关阅读:
    自己用的C++编码规范
    飘逸的python
    编译Sqoop2错误解决
    怎样设置linux中Tab键的宽度(可永久设置)
    系统分析师零散知识点
    Hadoop权威指南学习笔记一
    Spring获取request、session以及servletContext
    RequestContextHolder获取request和response
    Spring MVC 中RequestContextHolder获取request和response
    缓存清理
  • 原文地址:https://www.cnblogs.com/boxker/p/10752981.html
Copyright © 2011-2022 走看看