Skip to content

billgavin/ansible-develop

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ansible Develop Guide

[TOC]

1. Dynamic Inventory

当你所管理的机器比较少时,可以使用静态inventory来保存服务器和组的关系,但是当你的服务器越来越多的时候,你通常会考虑使用一个软件系统来存放inventory信息

提供inventory的软件系统有以下几种:

  1. CMDB
  2. 公有云提供商(AWS)
  3. 企业内部私有云(openstack)

AWS和openstack,ansible已经提供了如何生成动态inventory的脚本,可以直接使用

AWS ansible Dynamic inventory scripts

Openstack ansible Dynamic inventory scripts

本课程通过建立一个简单的CMDB,并且使用python脚本从CMDB获取Dynamic Inventory

2. Ansible module

多数情况下,没有必要写自己的module,官方已经给我们提供了很多module,几乎涵盖了所有功能

可以使用ansible-doc --list 列出所有模块的使用帮助 Ansible Modules

当你有自己特殊的业务时,需要写自己的ansible module,如何写自己的ansible module呢 ?

本课程将通过检测文件是否变化,实现自定义ansible模块



3. Ansible Python API

  1. 什么是Ansible Python API ?

    Ansible Python API是一组用python编写的类和函数,便于使用python程序调用Ansible的核心功能

  2. 为什么要使用Ansible Python API ? Ansible python API的应用场景主要有一下几种

    1. 前一次的执行结果作为后一次任务的参数输入
    2. 对任务的执行结果进行定制化输出或者存储
    3. 方便其他程序调用ans ible的核心功能
  3. 如何使用Ansible Python API ?

    本课程通过Ansible Python API 调用之前写的自定义模块来说明Ansible Python API如何使用


4. Ansible Plugins

  1. plugin是什么?

    回顾一下ansible python API的使用,讲解在哪些地方可以插入plugin

  2. 有哪些plugin?

    • action_plugins
    • cache_plugins
    • callback_plugins
    • connection_plugins
    • lookup_plugins
    • inventory_plugins
    • vars_plugins
    • filter_plugins
    • test_plugins
    • terminal_plugins
    • strategy_plugins
  3. 如何扩展plugin?

    本课程我们扩展一下callback plugin,并使用ansible运行看callback

  4. 如何使用扩展的plugin?

    ansible.cfg中打开相关的plugin的配置

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 94.5%
  • Shell 5.5%