前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Ansible介绍、安装与配置教程

Ansible介绍、安装与配置教程

原创
作者头像
Power
发布2025-03-03 13:29:35
发布2025-03-03 13:29:35
5800
代码可运行
举报
运行总次数:0
代码可运行

1、Ansible介绍

Ansible是一个自动化运维工具,大规模节点化管理。 优点: (1)简单,SHELL脚本能做的事情,Ansible都能做。Playbook可读性很强。 (2)强大,模块化实现,约2000多模块,如copy模块。 (3)YAML格式文件,严格的缩进。 (4)真正实现自动化运维的基础(docker是针对应用做容器化,而Ansible针对全局),有CI和CD的集成思想。 (5)最大的优点,puppet saltstack 被管理节点一定需要安装客户端的,但是ansible是agentless无客户端,完全ssh管理。

2、Ansible架构

Ansible介绍、安装与配置教程(图1)
Ansible介绍、安装与配置教程(图1)

【注】类CI和CD的无缝集成。测试、质量管理、具体操作者、管理人员、外包,所有人员都可以通过ansible playbook实现想要的功能。

Ansible介绍、安装与配置教程(图2)
Ansible介绍、安装与配置教程(图2)

Ansible集成内容: (1)CMDB即配置管理数据库。 (2)INVENTORY即清单,被管理节点信息。分静态和动态(Python脚本实现)。 (3)MODULES即模块,搞清楚常用模块,如安装install,拷贝copy等模块。 (4)PLUGINS即插件,用来实现ansible和客户端连接的功能。 重点:如何引用和设置清单inventory,如何查找和使用modules。 架构: 管理节点:安装了ansible的管理节点,通过ssh到被管理节点,执行任务任务task。

Ansible介绍、安装与配置教程(图3)
Ansible介绍、安装与配置教程(图3)

(1)停止监控 (2)移除负载均衡 (3)停止服务 (4)部署应用 【注】如上图,一个服务器需要执行以上6步,那么100台服务器的工作量是相当可怕的,可以通过ansible进行批量部署。

3、Ansible安装部署

(1)安装部署和授权

代码语言:javascript
代码运行次数:0
复制
[root@ansible ~]# yum install ansible -y
[root@ansible ~]# useradd devops
[root@ansible ~]# passwd devops
[root@ansible ~]# cp -ir  /etc/ansible  /home/devops/
[root@ansible ~]# cd /home/devops/
[root@ansible devops]# chown -R devops:devops ansible/
1-210212203GA57.png
1-210212203GA57.png

(2)两台待管理主机添加devops用户

代码语言:javascript
代码运行次数:0
复制
[root@blogs ~]# useradd devops
[root@blogs ~]# passwd devops
[root@hsd ~]# useradd devops
[root@hsd ~]# passwd devops

(3)配置免密登录

代码语言:javascript
代码运行次数:0
复制
[devops@ansible ~]$ ssh-keygen -t rsa
1-210212204009A4.png
1-210212204009A4.png
代码语言:javascript
代码运行次数:0
复制
[devops@ansible ~]$ ssh-copy-id blogs
[devops@ansible ~]$ ssh-copy-id hsd

(4)修改visudo配置

代码语言:javascript
代码运行次数:0
复制
[root@blogs ~]# visudo
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
devops  ALL=(ALL)       NOPASSWD:ALL

[root@hsd ~]# visudo
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
devops  ALL=(ALL)       NOPASSWD:ALL

4、修改Ansible主配置文件

Ansible的配置文件:定义相关的属性、设置清单。

(1)Ansible配置文件优先级

代码语言:javascript
代码运行次数:0
复制
/etc/ansible/ansible.cfg    # /etc下的默认ansible配置文件优先级最低
~/ansible.cfg               # 当前家目录ansible配置文件,优先级其次
./ansible.cfg               # 当前目录ansible配置文件,优先级最高

(2)修改当前目录下的ansible.cfg配置文件

1-210212205UC13.png
1-210212205UC13.png
代码语言:javascript
代码运行次数:0
复制
[devops@ansible ansible]$ vim ansible.cfg
[defaults]
inventory=/home/student/dep-dynamic/inventory # 设置动或静态清单所在目录,无需-i
remote user=devops                            # 远程以devops身份操作
[privilege_escalation]                        # 提权参数
become=True                                   # 允许用户做权限提升
become_method=sudo                            # 提升的方式是sudo
become_user=root                              # 提权到root用户
become_ask_pass=False                         # 不需要输入密码

5、验证测试,编辑hosts

代码语言:javascript
代码运行次数:0
复制
[devops@ansible ansible]$ vim hosts 
[blogs]
blogs
[hsd]
hsd
[all]
blogs
hsd

[devops@ansible ansible]$ mkdir inventory
[devops@ansible ansible]$ mv hosts inventory

# 测试blogs主机和hsd主机是否有做过修改
[devops@ansible ansible]$ ansible all -m ping
1-2102122111431N.png
1-2102122111431N.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档