当前位置: 首页 > news >正文

部署 Ansible

一、部署环境准备

在开始之前,请确保你满足以下条件:

  1. 控制节点 (Control Node)

    • 一台 Linux 服务器(推荐 CentOS 7/8, Ubuntu 18.04+, Debian 10+)。
    • 已安装 Python 2.7 或 Python 3.5+(现代 Linux 系统通常已预装)。
    • 能够通过 SSH 连接到所有 “被控节点”。
  2. 被控节点 (Managed Nodes)

    • 一台或多台需要被管理的 Linux 服务器。
    • 已安装 Python 2.6+ 或 Python 3.5+。
    • 已开启 SSH 服务(默认 22 端口)。
    • 防火墙已放行来自 “控制节点” 的 SSH 连接。

二、在控制节点上安装 Ansible

这里以最常见的 CentOS 7/8 和 Ubuntu/Debian 为例。

1. 在 CentOS / RHEL 上安装

CentOS 7 需要先安装 EPEL (Extra Packages for Enterprise Linux) 源,CentOS 8 则可以直接从官方源安装。

# 对于 CentOS 7
sudo yum install -y epel-release
sudo yum install -y ansible# 对于 CentOS 8 / RHEL 8
sudo dnf install -y ansible
2. 在 Ubuntu / Debian 上安装

Ubuntu/Debian 系统可以直接使用 apt 包管理器安装。

# 更新 apt 包索引
sudo apt update
# 安装 Ansible
sudo apt install -y ansible
3. 验证安装

安装完成后,执行以下命令查看版本信息,如果能成功输出版本号,说明安装成功。

ansible --version

三、配置 SSH 免密登录(推荐)

为了避免在执行 Ansible 命令时反复输入密码,强烈建议配置从 “控制节点” 到所有 “被控节点” 的 SSH 免密登录。

  1. 在控制节点上生成 SSH 密钥对如果你还没有 SSH 密钥对,请在控制节点上执行以下命令生成。一路按 Enter 键即可。

    ssh-keygen -t rsa
    

    这会在 ~/.ssh/ 目录下生成 id_rsa (私钥) 和 id_rsa.pub (公钥)。

  2. 将公钥分发到所有被控节点使用 ssh-copy-id 命令可以轻松地将公钥复制到被控节点。假设被控节点的 IP 是 192.168.1.101,用户名是 root

    # 语法: ssh-copy-id <用户名>@<被控节点IP>
    ssh-copy-id root@192.168.1.101
    

    执行此命令时,会要求你输入一次 192.168.1.101 的 root 用户密码。成功后,后续从控制节点 SSH 连接该节点将不再需要密码。

    提示:如果你的被控节点数量很多,可以编写一个简单的 Shell 脚本或使用 Ansible 的 authorized_key 模块来批量分发密钥。

四、配置主机清单 (Inventory)

主机清单是一个文件,Ansible 通过它来知道要管理哪些服务器。默认的清单文件是 /etc/ansible/hosts

  1. 编辑主机清单文件

    sudo vim /etc/ansible/hosts
    
  2. 定义主机和分组在文件末尾添加你的被控节点信息。你可以将服务器分组,方便统一管理。

    # 示例:定义一个名为 [webservers] 的组,包含两台 web 服务器
    [webservers]
    192.168.1.101 ansible_user=root ansible_port=22
    192.168.1.102 ansible_user=root ansible_port=22# 示例:定义一个名为 [dbservers] 的组,包含一台数据库服务器
    [dbservers]
    192.168.1.201 ansible_user=root# 你也可以为整个组设置变量
    [webservers:vars]
    ansible_python_interpreter=/usr/bin/python3# 定义一个包含所有服务器的组
    [all:children]
    webservers
    dbservers
    
    • [webservers]:方括号内是组名。
    • 192.168.1.101:被控节点的 IP 地址或主机名。
    • ansible_user=root:指定 SSH 登录的用户。
    • ansible_port=22:指定 SSH 端口(默认为 22,可以省略)。

五、测试 Ansible 连通性

一切准备就绪后,使用 Ansible 的 ping 模块来测试与被控节点的连通性。这是验证部署是否成功的关键一步。

  1. 测试所有节点

    ansible all -m ping
    
  2. 测试指定分组

    ansible webservers -m ping
    

如果一切正常,你会看到类似以下的输出,状态为 SUCCESS

192.168.1.101 | SUCCESS => {"changed": false,"ping": "pong"
}
192.168.1.102 | SUCCESS => {"changed": false,"ping": "pong"
}

至此,你的 Ansible 环境已经成功部署并可以开始使用了!

http://www.dtcms.com/a/462078.html

相关文章:

  • 磁悬浮轴承的磁滞非线性:精密控制中的“幽灵”与驯服之道
  • 沈阳网站外包公司wordpress 获取文章的分类id
  • Git 中的某个分支打标签
  • 知识IP如何迭代打法?
  • 今日行情明日机会——20251009
  • 网站游戏网站怎么自己做聚名网域名转出
  • TDengine 数学函数 ABS() 用户手册
  • AI 赋能 IBMS 智能化集成系统:从 “被动监控” 到 “主动决策” 的智慧建筑升级革命
  • 鹤庆县公路建设网站工商营业执照咨询电话24小时
  • 线上做网站赚钱深圳网站优化网站
  • Java 泛型中级面试题及答案
  • Java虚拟机(VM)相关线程与方法的说明展开
  • Windows 11 安装 JDK 25
  • web 消息推送
  • 手写MyBatis第99弹:MyBatis线程安全问题与连接池调优
  • springboot088健康追踪系统软件lgl(源码+部署说明+演示视频+源码介绍+lw)
  • Levenberg-Marquardt( LM)算法详解和二次曲线拟合实战
  • 局域网站建设模版模拟装修设计app免费
  • JavaWeb和MavenJavaWeb项目部署到Tomcat的三种方法
  • 备案的网站建设书是什么网站后台策划
  • 组合两个表-力扣
  • 网站内页不收录医院网站建设ppt
  • 1.2 Java语言的特性
  • 网络TCP解析
  • C++ -->STL 搜索平衡二叉树 AVL树
  • 建德做网站wordpress指定分类名称
  • 如何偷别人dedecms网站的模板购物网站难做
  • 网站建设属于硬件还是软件网易云音乐wordpress
  • 帝国cms 微信小程序的登录逻辑
  • 什么网站可以教做面包福州企业网站模板建站