自动运维工具--ansible的部署与搭建

一.ansible介绍

当下有许多的运维自动化工具(配置管理 ),例如:Chef、Ansible、SaltStack、Puppet、Fabric 等。
Ansible 一种集成 IT 系统的配置管理、应用部署、执行特定任务的开源平台,是 AnsibleWorks 公司名下的项目,该公司由 Cobbler 及 Func 的作者于 2012 年创建成立。
Ansible 基于 Python 语言实现,由 Paramiko 和 PyYAML 两个关键模块构建

ansible的特点

部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何操作。
默认使用 SSH(Secure Shell)协议对设备进行管理。
主从集中化管理。
配置简单、功能强大、扩展性强。
支持 API 及自定义模块,可通过 Python 轻松扩展。
通过 Playbooks 来定制强大的配置、状态管理。
对云计算平台、大数据都有很好的支持。
提供一个功能强大、操作性强的 Web 管理界面和 REST API 接口 —- AWX 平台

二.具体搭建步骤

系统环境RHEL
server1(172.25.61.1)(webserver)ansible服务端
server2(172.25.61.2)test 远程客户端
server3(172.25.61.3)db 远程客户端
1.获取安装包,解决必要的依赖
[root@server1 ~]# ls
ansible-2.7.8-1.el7.noarch.rpm           python-httplib2-0.9.2-0.1.el7.noarch.rpm
libtomcrypt-1.17-25.el7.x86_64.rpm       python-keyczar-0.71c-2.el7.noarch.rpm
libtommath-0.42.0-5.el7.x86_64.rpm       python-paramiko-2.1.1-0.9.el7.noarch.rpm
python2-crypto-2.6.1-13.el7.x86_64.rpm   sshpass-1.06-1.el7.x86_64.rpm
python2-jmespath-0.9.0-1.el7.noarch.rpm
[root@server1 ~]# yum install -y *
2.创建目录及文件
[root@server1 ~]# useradd devops
[root@server1 ~]# su - devops

ansible服务端创建一个普通用户,server2和server3创建同样的用户并配置密码,注意要保持三台机子创建的用户uid与gid要保持一致

[root@server2 ~]# useradd devops
[root@server2 ~]# passwd  devops
Changing password for user devops.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

创建一个目录来存放ansible服务的文件

[devops@server1 ~]$ mkdir ansible
[devops@server1 ~]$ ls
ansible
[devops@server1 ~]$ cd ansible/
[devops@server1 ansible]$ ls
ansible.cfg  inventory
[devops@server1 ansible]$ cat ansible.cfg 
[defaults]

inventory	= inventory
[devops@server1 ansible]$ cat inventory 
[test]
server2

[db]
server3

[webservers:children]
test
db
server2属于web组,server3主机属于db组,名字可以自己定义,这两组都属于webserver组。
3.添加本地解析
vim /etc/hosts
172.25.61.1   server1
172.25.61.2   server2
172.25.61.3   server3
4.免密操作

ansible的远程部署是通过ssh来进行通行的,所以服务端和客户端之间要做免密操作。

[devops@server1 ~]$ ssh-keygen 
[devops@server1 ~]$ ssh-copy-id server2
[devops@server1 ~]$ ssh-copy-id server3

在这里插入图片描述

5.测试通信

列出所有主机列表

[devops@server1 ansible]$ ansible all --list-hosts
  hosts (2):
    server3
    server2

检测连接情况,-m表示调用模块,这里调用ping模块

[devops@server1 ansible]$ ansible all -m ping
server2 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
server3 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

三.ansible常用模块

使用ansible的模块如何获取帮助,ansible-doc加上模块来查看帮助在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值