Java教程

ansible总结

本文主要是介绍ansible总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

使用ansible批量执行下发命令并执行

ansible all -m shell -a "ls /root"

说明:all代表所有在inventory文件中所有的主机列表,-m 后面是ansible的模块名称,-a后面是参数。

ansible all -m command -a "ls /root"

ansible简介

Ansible是一种agentless(基于ssh),可实现批量配置、命令执行和控制,基于Python开发的自动化运维工具。

安装方式

  1. yum安装,配置epel源;
  2. pip安装
## e.g.
#first step: install python related
yum -y install python-pip python-devel
#next: install ansible via pip command
pip install ansible

ansible架构图

ansible核心模块介绍:

  • core models: ansible自带的模块,file,shell,copy等
  • custom models: ansible自带模块不足以满足工作需要时,用户添加扩展模块
  • host inventory: 由ansible 管理的主机,包括主机名,ip,端口等
  • playbook: yaml格式文件,多任务定义在一个yaml文件中,主要定义哪些功能由哪些模块完成,顺序执行
  • connection plugins: ansible通过该插件连接到各个目标主机,内部默认使用paramiko模块ssh协议来完成

ansible特性

  • 无侵入:被管理端无须安装agent,只要python版本满足条件和ssh服务即可。
  • 无服务端:只需要按照ansible,配置完之后,命令行完成工作。
  • 多语言:可以基于任何语言开发ansible新模块。
  • 模块冥等性:定义的任务已经存在则不会做任何事情,意味着在同一台服务器上多次执行同一个playbook和执行一次,效果一样。

ansible重要文件

/usr/bin/ansible: 命令行工具

​ 命令通用格式:ansible <host-pattern> [options] [-m module_name] [-a args]

/usr/bin/ansible-doc: 帮助文档

/usr/bin/ansible-playbook: 剧本执行工具

/etc/ansible/ansible.cfg:主配置文件

/etc/ansible/hosts: 管理主机清单

/etc/ansible/roles: 角色文件

# /etc/ansible/hosts

[test-hosts]
192.168.50.100
192.168.50.101

[db-hosts]
192.168.50.102
192.168.50.103
192.168.50.104

## 可以选择性的让部分主机执行命令
ansible test-hosts -m command -a "ls"

ansible工作流程

ansible命令执行——> 读取ansible.cfg配置文件——>通过规则过滤inventory中定义的主机列表——>加载task对应的模块文件——>通过ansible core将模块或命令打包成Python脚本文件——>对应执行用户的家目录:''.ansible/tmp/xxx/xxx.py"文件——>给文件加执行权限——>执行py文件并返回结果——>删除文件退出

这篇关于ansible总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!