Linux下自动化运维工具Ansible的部署(一)

本文介绍Ansible自动化运维工具的特点及部署过程,包括环境搭建、主机配置、免密登录设置及基本命令测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ansible的官方文档:Ansible is Simple IT Automation

ansible的配置文件手册:Ansible的配置文件 — 国内最专业的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 平台。

Ansible 与 SaltStack的区别:

最大的区别是 Ansible 无需在被监控主机部署任何客户端代理,默认通过 SSH 通道进行远程命令执行或下发配置。
相同点是都具备功能强大、灵活的系统管理、状态配置,都使用 YAML 格式来描述配置,两者都提供丰富的模板及 API,对云计算平台、大数据都有很好的支持。

二、实验环境(rhel7.3版本)

1.selinux和firewalld状态为disabled

2.各主机信息如下:

主机ip
server1(ansible的服务端)172.25.83.1
server2(ansible的客户端)172.25.83.2

三、ansible部署

1下载ansible的相关rpm包及其依赖包,并进行安装

[root@server1 ansible]# yum install *.rpm -y   

2编辑/etc/hosts解析文件

[root@server1 ansible]# vim /etc/hosts
172.25.83.1    server1 
172.25.83.2    server2

3设置ansible主机

[root@server1 ansible]# cd /etc/ansible/
[root@server1 ansible]# ls
ansible.cfg  hosts  roles
[root@server1 ansible]# vim hosts   #编辑配置主机的hosts文件,在文件的最后,写入下面的内容
44 [web]
45 server1
46 
47 [db]
48 server2


###补充内容###
/etc/ansible/hosts文件的编写是很灵活的,又很多中写法。
我这里列举4种方法:
<1>一个web组,组中有两个主机,分别的server1和server2
[web]
server1
server2
<2>一个web组,组中有很多主机,主机名只要是以server开头的即可
[web]
server*
<3>一个web组,组中有100个主机,主机名是server1-server100
[web]
server[1:100]
<4>两个组,一个web组,一个db组。web组中的主机为server1,db组中的主机为server2。
[web]
server1
[db]
server2

4测试ansible(必须输入密码)

[root@server1 ansible]# ansible server1 -m ping -k   #server1表示操作hosts文件中指定的server1主机,-m表示指定模块,ping表示指定的模块是ping模块,k表示输入密码。密码为redhat
[root@server1 ansible]# ansible server2 -m ping -k   #server2表示操作hosts文件中指定的server2主机,-m表示指定模块,ping表示指定的模块是ping模块,k表示输入密码。密码为redhat
[root@server1 ansible]# ansible web -m ping -k   #web表示操作hosts文件中指定的web组,-m表示指定模块,ping表示指定的模块是ping模块,k表示输入密码。密码为redhat
[root@server1 ansible]# ansible db -m ping -k   #db表示操作hosts文件中指定的db组,-m表示指定模块,ping表示指定的模块是ping模块,k表示输入密码。密码为redhat
[root@server1 ansible]# ansible server* -m ping -k   #server*表示操作hosts文件中指定的以server开头的主机,-m表示指定模块,ping表示指定的模块是ping模块,k表示输入密码。密码为redhat
[root@server1 ansible]# ansible all -m ping -k   #sall表示操作hosts文件中指定的所有主机,-m表示指定模块,ping表示指定的模块是ping模块,k表示输入密码。密码为redhat


5设置ssh免密登录

[root@server1 ansible]# ssh-keygen   #一路敲回车
[root@server1 ansible]# ssh-copy-id server1   #将密码发送给server1。实现server1—server1的面密登录
[root@server1 ansible]# ssh-copy-id server2   #将密码发送给server2。实现server1-server2的免密登录

6测试ansible(可以不输入密码,当然你也可以输入密码)

[root@server1 ansible]# ansible server1 -m ping
[root@server1 ansible]# ansible server2 -m ping
[root@server1 ansible]# ansible web -m ping
[root@server1 ansible]# ansible db -m ping
[root@server1 ansible]# ansible all -m ping

至此,Ansible的部署也就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值