【Ansible 学习之旅】Ansible 安装和入门

系列文章

Ansible 介绍和架构


目录


Ansible安装

  • 在安装 Ansible 之前确实需要确保目标系统(即控制节点和被管理节点)上已经安装了 Python。这是因为 Ansible 依赖于 Python 来与被管理节点进行通信,并执行各种任务。
  • Ansible安装在控制节点,受管节点(Ansible 管理的机器)不需要安装 Ansible,但需要 Python 来运行 Ansible 生成的 Python 代码。 受管节点还需要一个用户账户,该账户可以通过 SSH 连接到带有交互式 POSIX shell 的节点。

ansible的安装方法有多种。

  • EPEL源的rpm包安装:
bash 复制代码
yum install ansible
  • 编译安装
bash 复制代码
yum -y install python-jinja2 PyYAML python-paramiko python-babel python-crypto
tar xf ansible-1.5.4.tar.gz
cd ansible-1.5.4
python setup.py build
python setup.py install
mkdir /etc/ansible
cp -r examples/* /etc/ansible
  • Git方式
bash 复制代码
git clone git://github.com/ansible/ansible.git --recursive
cd ./ansible
source ./hacking/env-setup
  • pip 安装
    pip 是安装Python包的管理器,类似 yum
bash 复制代码
yum install python-pip python-devel
yum install gcc glibc-devel zibl-devel  rpm-bulid openssl-devel
pip install  --upgrade pip
pip install ansible --upgrade

确认安装

bash 复制代码
ansible --version

演示

这里准备3台虚拟机:

主机 操作系统 IP地址 角色 主要软件
server1 Rocky Linux 8.8 192.168.30.121 控制机器 ansible
server2 Rocky Linux 8.8 192.168.30.122 受控机器 httpd
server3 Rocky Linux 8.8 192.168.30.123 受控机器 mysql

下面演示在server1上的操作

  1. 修改主机名及关闭防火墙
bash 复制代码
hostnamectl set-hostname server1
systemctl stop firewalld
systemctl disable firewalld
  1. yum安装epel源和ansible并查看其结构
bash 复制代码
yum install -y epel-release ansible

...

bash 复制代码
ansible --version

/etc/ansible中有三个重要的文件和目录:

  • ansible.cfg

    ansible.cfg 是 Ansible 的全局配置文件,用于设置 Ansible 的默认行为和参数。这个文件可以自定义 Ansible 的行为,例如设置默认的连接方式、身份验证方法、日志级别等等。

  • hosts

    hosts 文件是 Ansible 的清单文件,用于指定被管理节点(也称为"主机")及其属性。在这个文件中,我们可以定义不同组的主机,以及每个组内的主机列表。例如,可以创建一个名为 webservers 的组,然后将所有 Web 服务器添加到这个组中。这样,在执行任务时就可以针对这个组而不是单独的每一台服务器。

    清单文件还可以包含变量,这些变量可以在剧本中使用,以提供动态配置的能力

  • roles

    roles 目录是存放 Ansible 角色的地方。角色是一种可复用的 Ansible 内容集合,包含任务、处理程序、变量、模板和文件。角色可以帮助我们组织和重用代码,提高效率。

    我们可以创建自己的角色,也可以从 Ansible Galaxy(一个第三方角色存储库)下载和安装其他人编写的角色

相关推荐
神之王楠6 分钟前
学习风格的类型
学习
知识分享小能手19 分钟前
mysql学习教程,从入门到精通,SQL 删除数据(DELETE 语句)(19)
大数据·开发语言·数据库·sql·学习·mysql·数据开发
晚睡早起₍˄·͈༝·͈˄*₎◞ ̑̑1 小时前
苍穹外卖学习笔记(五)
java·笔记·学习
张望远-长风万里1 小时前
运维监控专项学习笔记-id:0-需求场景、监控作用、监控能力
运维·笔记·学习
jun7788951 小时前
机器学习-监督学习:朴素贝叶斯分类器
人工智能·学习·机器学习
程序猿 董班长2 小时前
socket学习
学习
@月落2 小时前
alibaba获得店铺的所有商品 API接口
java·大数据·数据库·人工智能·学习
6230_2 小时前
git使用“保姆级”教程1——简介及配置项设置
前端·git·学习·html·web3·学习方法·改行学it
李小星同志4 小时前
高级算法设计与分析 学习笔记6 B树
笔记·学习
霜晨月c4 小时前
MFC 使用细节
笔记·学习·mfc