ansible工作架构和原理

我们知道,随着时代的发展,运维已逐渐向着自动化方向发展,那么,掌握一些自动化运维工具必不可少,这样我们才能更加快速,准确的完成任务,避免手动带来的失误

常用的自动化运维工具

  • Ansible:Python,Agentless,中小型应用环境
  • Saltstack:Python,一般需要部署agent端,执行效率更高
  • Puppet:ruby,功能强大,配置复杂,重型,适用于大型环境
  • Fabric:Python,Agentless
  • Chef:ruby,国内应用少
  • Cfengine
  • func

特性

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

ansible工作原理 

ansible基本配置文件

  • 配置文件
  1.   /etc/ansible/ansible.cfg  主配置文件,配置ansible工作特性
  2.   /etc/ansible/hosts  主机清单
  3.   /etc/ansible/roles  存放角色的目录
  • 程序
  1.   /usr/bin/ansible 主程序,临时命令执行工具
  2.   /usr/bin/ansible-doc 查看配置文档,模块功能查看工具
  3.   /usr/bin/ansible-galaxy  下载/上传优秀代码或roles模块的官网品台
  4.   /usr/bin/ansible-playbook定制自动化任务,编排剧本工具/usr/bin/ansible-pull远程执行命令的工具
  5.   /usr/bin/ansible-vault  文件加密工具
  6.   /usr/bin/ansible-console  基于console界面与用户交互的执行工具

主机清单inventory

 

  1. /etc/ansible/hosts 文件格式
  2. inventory文件遵循INI文件风格,中括号中的字符为组名。可以将同一个主机同事归纳并到多个不同的组中;此外,当如若目标主机使用了非默认的ssh端口,还可以在
  3. 主机名称之后使用冒号加端口来标明

如:


[wedserver]
10.0.194.81
10.0.194.83
[dbserver]
10.0.194.81
10.0.194.82
[nfs]
10.0.194.8[1:3]

aansible主配置文件详解

[defaults]

# some basic default values...

#inventory      = /etc/ansible/hosts             主机存放位置,可以自定义修改
#library        = /usr/share/my_modules/         默认搜寻模块的位置
#module_utils   = /usr/share/my_module_utils/     
#remote_tmp     = ~/.ansible/tmp                 ansible执行的原理,本地生成python脚本,然后
#local_tmp      = ~/.ansible/tmp                 copy远端执行,最后删除脚本
#plugin_filters_cfg = /etc/ansible/plugin_filters.yml
#forks          = 5                              默认并行进程数,可自定义调节
#poll_interval  = 15                             拉取数据间隔
#sudo_user      = root                           默认sudo为root
#ask_sudo_pass = True                            执行是否询问口令,命令体现为参数-k
#ask_pass      = True                            
#transport      = smart
#remote_port    = 22                             远程主机端口号
#module_lang    = C
#module_set_locale = False


#host_key_checking = False                      检查对应服务器host_key,建议取消注释
#log_path = /var/log/ansible.log                日志文件
        

另外,ansible配置文件修改即生效,不需要重启类的操作

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值