noansible

一个模仿ansible的 golang 练习项目

简易的ansible功能

{{ avars }}vars

实现内置功能模块

- name: aa
  plugin:
    mod: modname
    args: arg1,arg2,arg3... #统一逗号分隔,空格会被自动删除,支持变量模板

使用说明

  • 运行
#./noansible -h

Usage :
  -bs int
        SCP buffer size (default 1024)
  -i string
        Inventory file dir (default "inventory.yml")
  -log string
        Log file dir (default "output.log")
  -p string
        Inventory file dir (default "main.yml")
tasks支持变量模板
#inventory 格式
<groupname>:
  - <IPV4/IPV6 ADDR>,<PASSWORD>,[PORT:default=22]
  - <IPV4/IPV6 ADDR>,<PASSWORD>,[PORT:default=22]

编译

cd main
go build main.go

TODO

  • json支持
  • telnet支持
  • 从远端抓取文件
  • 记录异步任务的执行结果(当前默认,异步任务成功)