ansible批量管理

一、ansible简介

ansible基于python开发的自动化运维工具,其功能实现基于ssh远程连接服务

ansible可以实现批量系统配置、批量软件部署、批量文件拷贝、批量运行命令等功能

http://www.ansible.com/   ##帮助手册

1.1 一些常用的自动化运维工具

        Puppet —基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行相对较弱

        SaltStack —基于 Python 开发,采用 C/S 架构,相对 puppet 更轻量级,配置语法使用 YMAL,使得配置 脚本更简单。

 

1.2  Ansible —基于 Pythonparamiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2 模板语言,

    更强的远程 命令执行操作 ,Ansible 是一个简单的自动化运维管理工具,可以用来自动化部署应用、配置、

    编排 task(持续 交 付、无宕机更新等),采用paramiko 协议库(fabric 也使用这个),通过 SSH 或者 ZeroMQ 等连接主机。

  

1.3  Ansible 工作机制

   Ansible 在管理节点将 Ansible 模块通过 SSH 协议(或者 Kerberos、LDAP)推送到被管理端执 行,执行完之后自动删除,

   可以使用SVN 等来管理自定义模块及编排  

 

1.4  Ansible 的组成由 5 个部分组成:

 

 ①,Ansible:核心引擎(包含2个模块)

        核心模块:ansible模块资源分发到远程节点使其执行特定任务或匹配一个特定的状态。

        自定义模块:如果核心模块不足以完成某种功能,可以添加自定义模块。

 ②,Plugins:完成模块功能的补充,包括连接插件、邮件插件等

 ③,Playbooks:定义ansible任务的配置文件,可以将多个任务定义在一个剧本中,

 ④,由ansible自动执行,剧本执行支持多个任务,可以由控制主机运行多个任务,同时对多台远程主机进行管理。

 ⑤,Inventory:定义 Ansible 管理主机的清单    

 

二、特点:

1、不需要单独安装客户端,基于系统自带的sshd服务,sshd就相当于ansible的客户端

2、不需要服务端

3、需要依靠大量的模块实现批量管理

4、配置文件/etc/ansible/ansible.cfg

 

 

 

三、准备环境:

ssh key+ansible (ansible需要先ssh认证)

1、管理机 需要配置好ssh密钥认证

2、管理机 连接到客户端1、客户端2...不需要密码

3、关闭防火墙

 

四、安装服务

yum -y install epel-release    ##安装epel源

yum -y install ansible

 

五、ansible配置文件

[root@test1 ~]# tree -F /etc/ansible/

/etc/ansible/

├── ansible.cfg     ##目前不需要修改,如果所有服务器的ssh端口变了就修改

├── hosts    ##被ansible管理的服务器IP地址列表(也可以是主机名但是主机名必须被解析)

└── roles/    ##目录下是空的

配置文件详解:

[defaults]            #通用默认配置段

#inventory = /etc/ansible/hosts                 #被控端IP或者DNS列表

#library = /usr/share/my_modules/             #ansible默认搜寻模块位置

#module_utils = /usr/share/my_module_utils/        

#remote_tmp = ~/.ansible/tmp            #ansible远程执行临时文件;

#local_tmp = ~/.ansible/tmp      

#forks = 5                            #并行进程数

#poll_interval = 15               #回频率或者轮训间隔时间

#sudo_user = root               #sudo远程执行用户名

#ask_sudo_pass = True            #使用sudo,是够需要输入密码

#ask_pass = True                   #是否需要输入密码

#transport = smart                  #通信机制

#remote_port = 22                    #远程SSH端口

#module_lang = C                   #模块和系统之间通信语言

#module_set_locale = False     

#gathering = implicit             #控制默认facts收集(远程系统变量)

roles_path= /etc/ansible/roles                     用于playbook搜索Ansible roles;

host_key_checking = False                             检查远程主机密钥;

#sudo_exe = sudo                                      sudo远程执行命令;

#sudo_flags = -H                                              传递sudo之外的参数;

timeout = 10                                                    SSH超时时间;

remote_user = root                                  远程登陆用户名;

log_path = /var/log/ansible.log                日志文件存放路径;

module_name = command              
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值