Files
2026-03-01 01:43:46 +08:00

2.9 KiB
Raw Permalink Blame History

Ansible 是一个开源的自动化工具,主要用于配置管理、应用部署、和任务自动化。它通过编写简单的人可读的配置文件(YAML 格式的剧本,称为Playbooks)来定义自动化流程。Ansible 不需要在被管理节点上安装任何代理程序,使用的是 SSH 协议进行通信,这使得它非常轻量且易于部署。

Ansible 可以做什么:

  1. 配置管理:确保服务器的状态如期望的那样。例如,安装软件包、设置系统配置等等。
  2. 应用部署:自动化应用程序的安装、升级和管理过程。
  3. 任务自动化:可以自动化执行日常的维护和操作任务。
  4. 编排:管理不同设备和服务之间的复杂工作流。

搭建流程:

  1. 安装 Ansible

    • 首先确保你有一台控制节点(通常是你的本地开发机),以及一台或多台被管理节点。

    • 在控制节点上安装 Ansible。可以通过以下命令在大多数 Linux 发行版上安装:

      sudo apt update
      sudo apt install ansible
      

      对于 macOS 用户,可以使用 Homebrew

      brew install ansible
      
  2. 配置 SSH 访问

    • 确保 Ansible 控制节点可以通过 SSH 访问到被管理节点。

    • 你可以用 SSH 密钥对来配置无密码登录:

      ssh-keygen -t rsa
      ssh-copy-id user@managed_node_ip
      
  3. 设置清单文件

    • 创建一个清单文件用于定义被管理节点,可以命名为 hosts.ini

      [webservers]
      192.168.0.101
      192.168.0.102
      
      [databases]
      192.168.0.103
      
  4. 编写一个简单的 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
      
  5. 运行 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 环境的配置是否成功,并验证基础功能的正常运行。