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 环境的配置是否成功,并验证基础功能的正常运行。