2.9 KiB
2.9 KiB
Ansible 是一个开源的自动化工具,主要用于配置管理、应用部署、和任务自动化。它通过编写简单的人可读的配置文件(YAML 格式的剧本,称为Playbooks)来定义自动化流程。Ansible 不需要在被管理节点上安装任何代理程序,使用的是 SSH 协议进行通信,这使得它非常轻量且易于部署。
Ansible 可以做什么:
- 配置管理:确保服务器的状态如期望的那样。例如,安装软件包、设置系统配置等等。
- 应用部署:自动化应用程序的安装、升级和管理过程。
- 任务自动化:可以自动化执行日常的维护和操作任务。
- 编排:管理不同设备和服务之间的复杂工作流。
搭建流程:
-
安装 Ansible:
-
首先确保你有一台控制节点(通常是你的本地开发机),以及一台或多台被管理节点。
-
在控制节点上安装 Ansible。可以通过以下命令在大多数 Linux 发行版上安装:
sudo apt update sudo apt install ansible对于 macOS 用户,可以使用 Homebrew:
brew install ansible
-
-
配置 SSH 访问:
-
确保 Ansible 控制节点可以通过 SSH 访问到被管理节点。
-
你可以用 SSH 密钥对来配置无密码登录:
ssh-keygen -t rsa ssh-copy-id user@managed_node_ip
-
-
设置清单文件:
-
创建一个清单文件用于定义被管理节点,可以命名为
hosts.ini:[webservers] 192.168.0.101 192.168.0.102 [databases] 192.168.0.103
-
-
编写一个简单的 Playbook:
-
创建一个 YAML 文件,如
site.yml:--- - 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
-
-
运行 Ansible Playbook:
-
运行以下命令执行 Playbook:
ansible-playbook -i hosts.ini site.yml
-
测试一个小 Demo:
首先确保你控制节点配置好了 SSH 访问和清单文件。然后,创建一个简单的 Playbook 文件 demo.yml,内容如下:
---
- name: Echo message to managed nodes
hosts: all
tasks:
- name: Echo Hello World
command: echo "Hello World"
运行如下命令来执行这个简单的 Playbook:
ansible-playbook -i hosts.ini demo.yml
这个 Playbook 将会在所有被管理节点上执行 echo "Hello World" 命令。通过这种小测试,可以确认 Ansible 环境的配置是否成功,并验证基础功能的正常运行。