• ansible 原理 面试


    ansible 简介 

    ansible是一款自动化的运维工具基于Python语言实现,由Paramiko和PyYAML两个关键模块构建,可用于自动化部署应用、配置、编排task(持续交付、无宕机更新等)

    组件:

    • Host Lnventory [ˈɪnvəntri]:记录了每一个由Ansible管理的主机信息,信息包括ssh端口,root帐号密码,ip地址等等。可以通过file来加载,可以通过CMDB加载
    • Playbooks:YAML格式文件,多个任务定义在一个文件中,使用时可以统一调用,“剧本”用来定义那些主机需要调用那些模块来完成的功能.
    • Core Modules 英 /kɔː(r)/ Ansible执行任何管理任务都不是由Ansible自己完成,而是由核心模块完成;Ansible管理主机之前,先调用core Modules中的模块,然后指明管理Host Lnventory中的主机,就可以完成管理主机。
    • Custom Modules英 /ˈkʌstəm/ 自定义模块,完成Ansible核心模块无法完成的功能,此模块支持任何语言编写。

    作用:

    优点:

    • 部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作;
    • 默认使用SSH协议对设备进行管理;
    • 幂等性  保证我们重复同一样操作的时候,得到的结果是一样的
    • 通过Playbooks来定制强大的配置、状态管理;
    • 支持API及自定义模块,可通过Python轻松扩展;

    返回值颜色:

    • 红色 报错
    • 黄色 成功 更改了
    • 绿色 成功 说明可能执行第二次了 没有更改但也成功了因为幂等性可以多次执行还能保证状态
    • 紫色

    配置文件:

    /etc/ansible/hosts //配置主机组  配置可以使用YAML(一种标记语言)或者INI

    基础命令:

    • -m : 使用什么模块
    • -a : 使用模块中的参数
    • -h : 帮助信息 
    • -C: 测试一下不会真的执行

    模块: (ansible-doc -l 可以看到模块的名称和大概功能 -s 可以看单个模块的使用方法)

    1.单个模块使用格式 (testA是主机组的名称)

    2.学会看ansible-doc信息

    标黄色的地方是模块的作用 红色线标注的地方是模块的选项 required是必须选项

     3.常见模块

    • 1 ping  //测试ansible 运行时主机之间是否连通

    • 2 fetch //从远程主机拉取文件

    • 3 copy //复制模块
    • 4 file //  对文本的基本操作 创建文件目录修改删除 权限 软连接硬链接
    • 5 blockinfile //在指定文本插入一段文本 是被标记过的 以后可以通过标记修改删除会添加这样一段文字
    •  6 lineinfile //确保某一行文本在指定文本中 删除或替换

    • 7 find //寻找模块
    • 8 replace //通过正则表达式替换文件中的字符串
    • 9 command //和shell差不多但是识别不了管道符,;大于号小于号
    • 10 shell   //可以通过远程主机上的/bin/sh处理
    • 11 script //远程执行ansible主机上的脚本
    • 12 cron //相当于crontab 定时任务
    • 13 service  //服务 关闭开启
    • 14 user //用户 创建,删除修改
    • 15 group //查看远程主机上的组
    • 16 yum_repository // 查看本地yum仓库
    • 17 yum  //下载模块

    4 playbook 里面的使用:

    检查语法错误试运行

    4.1YAML 语法:

    • ”---“代表文档开始
    • 第二行”-“ 开头 “-” 后面要有空格
    • :后面一定要有空格
    • 是不能用tab键缩进的 vim编辑器自动设置为空格
    • 每一个任务都要用 “-”开头

    4.2 关键字:

    • hosts: //主机之间用逗号隔开
    • tasks: //任务列表
    • name: // 执行的时候会输出关键字
    • handlers //notify 调用
    • tags //打标签方便单独执行

     

    • 特殊tag  always //总是执行 当没有被调用的时候也执行
    • 特殊tag   never 2.5版本
    • 特殊tag    tagged// 只有执行标签任务的时候执行别的时候不执行
    • 特殊tag untagged //
    • 特殊tag all //所有任务

    面试题:()

    1.Ansible 判断文件存在

    2.Ansible 部署过什么

    3Ansible的优势

  • 相关阅读:
    IntelliJ IDEA创建Java项目
    Oracle常见五个服务的作用
    Windows2008开启telnet客户端命令
    整理jQuery操作select控件常用功能代码
    Asp.Net程序报错
    Oracle中start with connect by prior用法
    Spring中无法访问resources目录下页面或静态资源
    对搜狗输入法的个人评价
    课堂练习寻找水王
    典型用户分析及用户场景分析
  • 原文地址:https://www.cnblogs.com/gaiting/p/12354307.html
Copyright © 2020-2023  润新知