已编辑 5 几个月前 通过 ExtremeHow 编辑团队
自动化Ansible配置管理开发与运维脚本命令行服务器设置编排演练手册管理
翻译更新 6 几个月前
管理大量服务器和自动化流程是系统管理员和DevOps专业人员的常见任务。Ansible是一种强大而简单的工具,可以在这方面提供帮助。它支持基础设施即代码、配置管理和任务自动化。本指南将引导您完成在Linux上安装和使用Ansible的详细步骤。我们将介绍开始使用Ansible所需的基础知识。
Ansible是一个开源的自动化工具或平台,用于IT任务,如应用程序部署、编排、配置管理,其中它使用playbooks来配置系统,部署软件,并编排高级工作流。它易于设置,不需要代理,并使用YAML(Yet Another Markup Language)作为其playbooks语言,使初学者易于理解和有效使用。
在开始之前,请确保您具备以下条件:
Ansible的安装过程根据您使用的Linux发行版而略有不同。让我们来看一些最常见的方法:
按照以下步骤在Ubuntu上安装Ansible:
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt update
sudo apt install ansible
ansible --version
如果您使用的是CentOS或Red Hat Enterprise Linux (RHEL),请按照以下步骤操作:
sudo yum install epel-release
sudo yum install ansible
ansible --version
对于Fedora用户,过程非常相似:
sudo dnf install ansible
ansible --version
安装Ansible后,下一步是配置它。Ansible使用SSH与远程服务器通信。您需要设置到将通过Ansible管理的主机的SSH访问。
ssh-keygen
ssh-copy-id <user>@<host>
ssh <user>@<host>
Ansible库存文件列出Ansible被指示管理的主机和主机组。默认情况下,它位于/etc/ansible/hosts
。
sudo nano /etc/ansible/hosts
[webservers]<hostname> ansible_host=<IP>[dbservers]<hostname> ansible_host=<IP>
Ansible playbooks是包含Ansible将遵循的一系列任务的文件。它们是用YAML格式编写的,易于阅读和理解。以下是Ansible playbook的基本结构:
---
- name: Ensure Apache is installed
hosts: webservers
tasks:
- name: Install Apache
apt:
name: apache2
state: present
在上述示例中:
name
:描述playbook的内容。hosts
:指定playbook适用的主机或主机组。tasks
:要执行的任务列表,每个任务都有自己的name
和action
。Ansible模块是创建Ansible playbooks的构建块。每个模块都是一个独立的脚本,Ansible一次运行一个模块。模块可以用于管理硬件、操作系统配置等。
在playbook中使用apt
模块的示例:
- name: Install Apache
hosts: webservers
tasks:
- name: Install Apache package
apt:
name: apache2
state: latest
编写playbook后,您需要执行它以在您的服务器上实现所需的自动化任务。要运行playbook:
.yml
文件扩展名。playbook.yml
):ansible-playbook playbook.yml
假设您创建了一个名为setup_web.yml
的playbook,其内容如下:
- name: Set up web server
hosts: webservers
become: true
tasks:
- name: Install Apache
apt:
name: apache2
state: present
- name: Start Apache
service:
name: apache2
state: started
像这样运行它:
ansible-playbook setup_web.yml
运行后,Ansible将在您的库存文件中列为webserver组的所有主机上安装Apache并启动其服务。
为了管理更复杂的系统,Ansible角色让您可以将playbooks组织成可重用的组件。角色允许您将playbook分成多个、更小的文件,以便更容易维护。角色通常包含任务、处理程序、模板、变量和文件,按照特定结构组织。
ansible-galaxy init <rolename>
/roles
下创建一个角色目录结构,其中包含任务、处理程序等目录。- hosts: webservers
roles:
- <rolename>
这将导致在指定主机上应用角色中定义的功能。
使用Ansible时您可能遇到的一些常见问题包括:
Ansible是一个用于自动化服务器和应用程序配置、管理的多功能工具。由于其模块丰富和易于理解的以YAML编写的playbooks,Ansible成为了IT管理员工具包中不可或缺的工具。通过遵循所述步骤,专业人员可以轻松使用Linux软件包管理器安装Ansible,轻松配置它,并通过playbooks和角色在整个基础设施中自动化任务。
如果你发现文章内容有误, 您可以