TOP云提供高性价比云服务器租用,有中国内地/港澳台、海外等全球各地节点,TOP云国内云服务器只要有域名备案号就能直接用,无须重复备案;港澳台及海外云服务器不用备案,购买之后直接使用,省时省力省心。价格实惠,续费同价,2核2G5M仅需27元每月,8核8G50M仅需66元每月,更多配置套餐请进入下面网址了解:

TOP云总站云服务器:https://topyun.vip/server/buy.html

TOP云C站云服务器:https://c.topyun.vip/cart

在云服务器上配置 Ansible 自动化部署,主要包括以下几个步骤:


一、Ansible 简介

Ansible 是一个基于 Python 的自动化配置管理工具,使用 SSH 进行通信,无需在被控端安装客户端,非常适合云服务器的批量部署和管理。


二、环境准备

假设你有多台云服务器,其中一台作为 控制节点(Control Node),其他作为 被控节点(Managed Nodes)

1. 控制节点和被控节点要求

  • 所有服务器(控制节点和被控节点)需要:

    • 安装 Python(Ansible 依赖 Python)

    • 开启 SSH 服务

    • 控制节点可以通过 SSH 免密登录到被控节点


三、在控制节点上安装 Ansible

以 Ubuntu 为例:

# 更新软件包索引
sudo apt update

# 安装 Ansible
sudo apt install ansible -y

其他系统(如 CentOS、MacOS)安装方式略有不同,可参考 Ansible 官方文档


四、配置 SSH 免密登录

Ansible 通过 SSH 连接被控节点,因此需要配置控制节点到被控节点的 SSH 免密登录

1. 在控制节点生成 SSH 密钥对(如果还没有)

ssh-keygen -t rsa -b 4096

默认保存在 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)。

2. 将公钥复制到所有被控节点

ssh-copy-id username@被控节点IP

替换 username 为被控节点的用户名,如 root 或自定义用户。

如果有多个被控节点,需要为每个节点执行一次 ssh-copy-id,或者使用脚本批量操作。


五、配置 Ansible 的被控节点清单(Inventory)

Ansible 使用 Inventory 文件 来管理被控节点。

1. 默认 Inventory 文件路径

/etc/ansible/hosts

或者你可以自定义一个 Inventory 文件,比如 ~/my_inventory。

2. 编辑 Inventory 文件

示例:

[web_servers] 192.168.1.101
192.168.1.102 [db_servers] 192.168.1.103

你可以给节点分组,如 web_servers、db_servers 等,方便后续批量操作。

如果你使用自定义 Inventory 文件,运行 Ansible 时需要指定:

ansible all -i ~/my_inventory -m ping

六、测试 Ansible 连接

使用 ping 模块测试控制节点与被控节点的连接:

ansible all -i ~/my_inventory -m ping

如果所有节点都返回 pong,说明连接成功。


七、编写 Ansible Playbook

Playbook 是 Ansible 的核心,用 YAML 格式编写,用于定义一系列任务。

示例:安装 Nginx 的 Playbook(install_nginx.yml)

---
- hosts: web_servers
  become: yes  # 使用 sudo 权限
  tasks:
    - name: 更新 apt 包索引
      apt:
        update_cache: yes

    - name: 安装 Nginx
      apt:
        name: nginx
        state: present

    - name: 启动并设置开机自启 Nginx
      service:
        name: nginx
        state: started
        enabled: yes

hosts: web_servers 表示该 Playbook 只在 web_servers 组的节点上执行。


八、运行 Playbook

ansible-playbook -i ~/my_inventory install_nginx.yml

如果一切正常,Ansible 会在 web_servers 组的所有节点上自动安装并启动 Nginx。


九、进阶配置(可选)

  1. 使用自定义用户:如果你不想用 root 用户,可以在 Inventory 中指定用户:

    [web_servers] 192.168.1.101 ansible_user=ubuntu
    192.168.1.102 ansible_user=ubuntu
  2. 使用 SSH 配置文件:可以在 ~/.ssh/config 中配置 SSH 连接参数,如端口、密钥路径等,Ansible 会自动读取。

  3. 使用 Vault 加密敏感数据:如密码、密钥等,可以使用 Ansible Vault 加密。

  4. 模块扩展:Ansible 有丰富的模块库,可以用于文件管理、软件包管理、服务管理等。


十、总结

在云服务器上配置 Ansible 自动化部署的流程如下:

  1. 安装 Ansible 到控制节点

  2. 配置 SSH 免密登录到所有被控节点

  3. 编写 Inventory 文件定义被控节点

  4. 编写 Playbook 定义部署任务

  5. 使用 ansible-playbook 执行自动化部署

通过 Ansible,你可以轻松实现云服务器的批量配置、软件部署、服务管理等任务,提高运维效率,减少人为错误。



不容错过
Powered By TOPYUN 云产品资讯