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。
九、进阶配置(可选)
使用自定义用户:如果你不想用 root 用户,可以在 Inventory 中指定用户:
[web_servers] 192.168.1.101 ansible_user=ubuntu 192.168.1.102 ansible_user=ubuntu
使用 SSH 配置文件:可以在 ~/.ssh/config 中配置 SSH 连接参数,如端口、密钥路径等,Ansible 会自动读取。
使用 Vault 加密敏感数据:如密码、密钥等,可以使用 Ansible Vault 加密。
模块扩展:Ansible 有丰富的模块库,可以用于文件管理、软件包管理、服务管理等。
十、总结
在云服务器上配置 Ansible 自动化部署的流程如下:
安装 Ansible 到控制节点
配置 SSH 免密登录到所有被控节点
编写 Inventory 文件定义被控节点
编写 Playbook 定义部署任务
使用 ansible-playbook 执行自动化部署
通过 Ansible,你可以轻松实现云服务器的批量配置、软件部署、服务管理等任务,提高运维效率,减少人为错误。