Files
notes/resource/组件/Ansible.md
T
2026-03-01 01:43:46 +08:00

95 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Ansible 是一个开源的自动化工具,主要用于配置管理、应用部署、和任务自动化。它通过编写简单的人可读的配置文件(YAML 格式的剧本,称为Playbooks)来定义自动化流程。Ansible 不需要在被管理节点上安装任何代理程序,使用的是 SSH 协议进行通信,这使得它非常轻量且易于部署。
### Ansible 可以做什么:
1. **配置管理**:确保服务器的状态如期望的那样。例如,安装软件包、设置系统配置等等。
2. **应用部署**:自动化应用程序的安装、升级和管理过程。
3. **任务自动化**:可以自动化执行日常的维护和操作任务。
4. **编排**:管理不同设备和服务之间的复杂工作流。
### 搭建流程:
1. **安装 Ansible**
- 首先确保你有一台控制节点(通常是你的本地开发机),以及一台或多台被管理节点。
- 在控制节点上安装 Ansible。可以通过以下命令在大多数 Linux 发行版上安装:
```bash
sudo apt update
sudo apt install ansible
```
对于 macOS 用户,可以使用 Homebrew
```bash
brew install ansible
```
2. **配置 SSH 访问**
- 确保 Ansible 控制节点可以通过 SSH 访问到被管理节点。
- 你可以用 SSH 密钥对来配置无密码登录:
```bash
ssh-keygen -t rsa
ssh-copy-id user@managed_node_ip
```
3. **设置清单文件**
- 创建一个清单文件用于定义被管理节点,可以命名为 `hosts.ini`
```ini
[webservers]
192.168.0.101
192.168.0.102
[databases]
192.168.0.103
```
4. **编写一个简单的 Playbook**
- 创建一个 YAML 文件,如 `site.yml`
```yaml
---
- name: Install and start Apache
hosts: webservers
become: yes
tasks:
- name: Ensure Apache is installed
apt:
name: apache2
state: present
- name: Ensure Apache is running
service:
name: apache2
state: started
```
5. **运行 Ansible Playbook**
- 运行以下命令执行 Playbook
```bash
ansible-playbook -i hosts.ini site.yml
```
### 测试一个小 Demo
首先确保你控制节点配置好了 SSH 访问和清单文件。然后,创建一个简单的 Playbook 文件 `demo.yml`,内容如下:
```yaml
---
- name: Echo message to managed nodes
hosts: all
tasks:
- name: Echo Hello World
command: echo "Hello World"
```
运行如下命令来执行这个简单的 Playbook:
```bash
ansible-playbook -i hosts.ini demo.yml
```
这个 Playbook 将会在所有被管理节点上执行 `echo "Hello World"` 命令。通过这种小测试,可以确认 Ansible 环境的配置是否成功,并验证基础功能的正常运行。