找回密码
 立即注册
查看: 369|回复: 0

[linux] 使用 Ansible Playbooks 自动化 Ubuntu 系统配置

[复制链接]

224

主题

0

回帖

773

积分

高级会员

积分
773
发表于 2024-6-9 12:18:39 | 显示全部楼层 |阅读模式
本帖最后由 御坂主机 于 2024-6-9 13:47 编辑

1. 引言

随着现代 IT 环境的复杂性不断增加,自动化工具在系统配置和管理中的作用变得越来越重要。Ansible 是一种流行的开源自动化工具,能够帮助我们高效地管理和配置多个服务器。本文将介绍如何使用 Ansible Playbooks 自动化 Ubuntu 系统的配置。

1.1 Ansible 简介

Ansible 是一种基于 Python 的自动化工具,使用无代理(agentless)的架构,通过 SSH 进行远程通信。它的主要组成部分包括:

(1) 控制节点(Control Node):运行 Ansible 的计算机,负责管理和控制所有被管理节点。
(2) 被管理节点(Managed Node):需要配置和管理的目标主机。
(3) Playbooks:包含一系列任务的 YAML 文件,用于定义自动化工作流程。

1.2 Ansible Playbooks 的优势

(1) 简单易用:Ansible 使用 YAML 语法,易读易写。
(2) 无代理:无需在被管理节点安装任何软件,降低了管理复杂性。
(3) 可重复性:通过 Playbooks,可以保证每次配置的一致性和可重复性。

2. 安装 Ansible

在开始使用 Ansible 之前,我们需要在控制节点上安装 Ansible。

首先,更新 Ubuntu 软件包索引:

  1.     sudo apt update
复制代码


接着,安装 Ansible:

  1.     sudo apt install ansible
复制代码


安装完成后,可以通过以下命令验证安装是否成功:

  1.     ansible --version
复制代码


3. 配置 Ansible

在控制节点上配置 Ansible 以管理目标 Ubuntu 系统。

3.1 编辑 Hosts 文件

Ansible 使用一个名为 hosts 的清单文件来定义被管理节点。编辑该文件以包含目标主机的 IP 地址或主机名:

  1.     sudo nano /etc/ansible/hosts
复制代码


在文件中添加以下内容:

  1.     [ubuntu_servers]
  2.     192.168.1.100
  3.     192.168.1.101
复制代码


3.2 配置 SSH 密钥

为了使 Ansible 能够无密码地连接到被管理节点,配置 SSH 密钥认证。首先生成 SSH 密钥对:

  1.     ssh-keygen -t rsa
复制代码


然后将公钥复制到目标主机:

  1.     ssh-copy-id [email protected]
  2.     ssh-copy-id [email protected]
复制代码


4. 编写 Ansible Playbook

Playbooks 是 Ansible 的核心部分,通过它我们可以定义一系列的任务来自动化配置 Ubuntu 系统。

4.1 基本 Playbook 示例

创建一个名为 setup.yml 的 Playbook 文件:

  1.     nano setup.yml
复制代码


在文件中添加以下内容:

  1.     ---
  2.     - name: Configure Ubuntu servers
  3.       hosts: ubuntu_servers
  4.       become: yes
  5.       tasks:
  6.         - name: Update apt repository
  7.           apt:
  8.             update_cache: yes

  9.         - name: Upgrade all packages
  10.           apt:
  11.             upgrade: dist

  12.         - name: Install Nginx
  13.           apt:
  14.             name: nginx
  15.             state: present
复制代码


4.2 运行 Playbook

使用以下命令运行 Playbook:

  1.     ansible-playbook setup.yml
复制代码


5. 高级 Playbook 示例

在实际应用中,我们可能需要编写更复杂的 Playbook,以完成更多的配置任务。

5.1 配置防火墙

创建一个名为 firewall.yml 的 Playbook 文件:

  1.     nano firewall.yml
复制代码


在文件中添加以下内容:

  1.     ---
  2.     - name: Configure UFW firewall
  3.       hosts: ubuntu_servers
  4.       become: yes
  5.       tasks:
  6.         - name: Allow OpenSSH
  7.           ufw:
  8.             rule: allow
  9.             name: OpenSSH

  10.         - name: Allow Nginx HTTP
  11.           ufw:
  12.             rule: allow
  13.             name: 'Nginx HTTP'

  14.         - name: Enable UFW
  15.           ufw:
  16.             state: enabled
复制代码


5.2 运行防火墙 Playbook

使用以下命令运行防火墙 Playbook:

  1.     ansible-playbook firewall.yml
复制代码


6. 结论

通过本文的介绍,我们了解了如何使用 Ansible Playbooks 自动化配置 Ubuntu 系统。Ansible 简单易用且功能强大,使得系统配置和管理变得高效且可重复。通过编写 Playbooks,可以轻松实现各种配置任务,从而大幅提高工作效率。希望本文对您使用 Ansible 管理 Ubuntu 系统有所帮助。




------------------------------------------------------------------------------------------------------------------------------------------

========  御 坂 主 机  ========

>> VPS主机 服务器 前沿资讯 行业发布 技术杂谈 <<

>> 推广/合作/找我玩  TG号 : @Misaka_Offical <<

-------------------------------------------------------------------------------------------------------------------------------------------

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系站长|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2025-4-5 02:32 , Processed in 0.062285 second(s), 24 queries .

Powered by 主机论坛 HostSsss.Com

HostSsss.Com

快速回复 返回顶部 返回列表