【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(一个第三方角色存储库)下载和安装其他人编写的角色

相关推荐
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
XiHongShi20164 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本4 天前
离散数学第六课
学习·离散数学
AI职业加油站4 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
旖旎夜光4 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
奇思妙想聪明勤奋的小羊4 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
霍霍的袁4 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
我爱cope4 天前
【操作系统 | 计算机硬件:CPU、内存与 I/O 如何支撑操作系统?】
学习·操作系统