内容简介:Ansible使用Python语言开发,巧妙的设计、实现了简单易用、功能强大的自动化管理工具。目前它已经广泛应用于各种规模、各个领域的企业。
Ansible简介
Ansible使用 Python 语言开发,巧妙的设计、实现了简单易用、功能强大的自动化管理工具。目前它已经广泛应用于各种规模、各个领域的企业。
Ansible应用领域
Ansible的编排引擎可以出色地完成配置管理、流程控制、资源部署等工作,与其他IT自动化产品比较,Ansible提供了一种不需要安装客户端软件、管理简便、功能强大的基础架构配置、维护工具。
- 安装部署过程特别简单,学习曲线很平坦;
- 管理主机便捷,支持多台主机并行管理;
- 避免在被管理主机上安装客户代理,打开额外端口,采用无代理方式,只是利用现在的ssh后台进程;
- 用于描述基础架构的语言无论对机器还是对人都是友好的;
- 关注安全,很容易对执行的内容进行审计、评估、重写;
- 能够立即管理远程被管理主机,不需要预先安装任何软件;
- 不仅仅支持Python,可运行使用任何动态语言开发的模块;
- 非root账号也可以使用;
- 成为最简单、易用的IT自动化系统
Ansible功能特性
从功能上实现了以下目标:
- 应用代码自动化部署
- 系统管理配置自动化
- 支持持续交付自动化
- 支持云计算、大数据平台(如AWS、OpenStack、CloudStack、VMWare等环境)
- 轻量级,无需在客户端安装agent,更新时只需在控制机上进行一次更新
- 批量任务执行可以写成脚本,不用分发到远程主机就可以执行
- 使用Python编写,维护更简单
- 支持非root用户管理操作,支持sudo
系统环境
主机 | 操作系统 | IP地址 |
---|---|---|
Ansible Server | Centos 7.3 X86_64 | 192.168.96.15 |
Client1 | Centos 7.3 X86_64 | 192.168.96.23 |
Client2 | Centos 7.3 X86_64 | 192.168.96.24 |
一、安装Ansible
1.关闭防火墙及Selinux
setenforce 0 systemctl stop firewalld
2.安装repo源
yum -y install epel-release
3.安装rabbitmq-server软件包
yum -y install ansible tree
4.查看ansible目录结构
tree /etc/ansible/
5.编辑主机及组的配置
vim /etc/ansible/hosts
#新增主机 [webserver] 192.168.96.23 192.168.96.24 [mysql] 192.168.96.24
二、配置 Linux 被控机ssh无密码访问
1.生成一对密钥
ssh-keygen -t rsa
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:rkN0zcCPMUsNd/JcugxgF2z5DGCbQtMVCqDl4ZSg6rA root@client The key's randomart image is: +---[RSA 2048]----+ | ..=o+o**B+. . | | . *.o =BB*= o | |. . o ..+@.++ | |. ..+ +oo. | |o . .S o | |o. .. | |E. . . | | .. | | .. | +----[SHA256]-----+
2.发送公钥至被控制机上
cd /root/.ssh ssh-copy-id root@192.168.96.23 yes----->输入对方root密码---> ssh-copy-id root@192.168.96.24 yes----->输入对方root密码--->
3.启用ssh代理
ssh-agent bash ssh-add
至此,ansible管理端已经安装完毕了
三、对被管节点批量执行操作
1.对所有被管节点连通性进行测试
ansible all -m ping
2.对webserver组所有主机执行date命令
ansible webserver -m command -a 'date'
3.对webserver组所有主机执行添加计划性任务
ansible webserver -m cron -a 'minute="*/10" job="/bin/echo hello" name="test cron job"'
4.对webserver组所有主机执行查询计划性任务
ansible webserver -a 'crontab -l'
以上所述就是小编给大家介绍的《自动化运维之Ansible服务部署》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Syncd - 自动化部署工具
- 前端自动化部署方案探索
- 使用 Capistrano 进行自动化部署
- jenkins自动化项目部署实战
- Syncd——开源自动化部署工具
- SaltStack自动化批量部署Apache
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。