让你一看就会,一装就对,一用就赞的运维自动化工具
随着互联网技术的发展和更新,企业部署业务使用的服务器的数量也在成倍的增长,从业务初期的单台或者几台服务器发展到庞大的数据中心,单靠人工已经无法满足在技术、业务、管理等方面的要求,运维的自动化也受到IT 人员越来越多的关注。
今天跟大家分享一个能够降低 IT 服务成本的自动化运维工具,帮助你在最短的时间内完成批量系统的配置、部署以及命令的运行!比如:
- 同时在100台服务器上安装nginx服务,并在安装后启动它们
- 将某个文件一次性拷贝到100台服务器上
- 每当有新服务器加入工作环境时,你都要为新服务器部署某个服务,也就是说你需要经常重复的完成相同的工作
Ansible统统满足你~
Ansible 是一个配置管理和配置工具,类似于 Chef,Puppet 或 Salt。这是一款很简单也很容易入门的部署工具,它使用 SSH 连接到服务器并运行配置好的任务,服务器上不用安装任何多余的软件,只需要开启 SSH,所有工作都交给 Client 端的 Ansible负责。
Ansible的优点:
- 轻量级:无需在客户端安装 agent ,并且也不需要启动服务
- 配置灵活:Ansible 基于 SSH 工作,可使用系统或自定义模块满足更为灵活的需求
- 语法简洁:配置语言采用 yaml ,用来定义多条任务,语法更为简洁,Ansible简单易懂的自动化语言
- 允许使用人员在很短的时间内完成自动化项目的部署
一张图理解Ansible工作原理
PLAYBOOKS:任务剧本(任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是JSON格式的YML文件
INVENTORY:Ansible管理主机的清单/etc/anaible/hosts
MODULES:Ansible执行命令的功能模块,多数为内置的核心模块,也可自定义,ansible-doc –l 可查看模块
PLUGINS:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用
API:供第三方程序调用的应用程序编程接口
ANSIBLE:组合INVENTORY、 API、 MODULES、PLUGINS的绿框,可以理解为是ansible命令工具,其为核心执行工具
安装配置
以 CentOS 7.2 在线安装为例
- 安装 epel 源
wget -O /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo yum clean all yum makecache
- Ansible 安装,准备好 epel 源后通过 yum 在线安装即可
yum -y install ansible
配置与验证
Ansible常用参数
-m 指定执行使用的模块 -u 指定username -s --sudo -U --sudo-user -v 输入执行过程信息
- 配置SSH秘钥
'''省去后续操作需要输入密码''' ssh-keygen -N "" -b 4096 -t rsa -C "thisistest" -f /root/.ssh/test.rsa ssh-copy-id -i /root/.ssh/test.rsa [email protected] '''免密码登陆测试''' ssh -i /root/.ssh/test.rsa [email protected]
- host添加
将需要操作的主机信息填写至配置文件中 配置路径:/etc/ansible/hosts
- 测试
ansible web1 -m command -a "ls /root/" '''查看web1主机组/root 目录下的文件'''
一看就会,一装就对,一用就赞!
小编之后还会持续更新,喜欢的同学们,记得关注我哦~