编辑
2025-08-03
运维
00
请注意,本文编写于 286 天前,最后修改于 285 天前,其中某些信息可能已经过时。

目录

Ansible
ansible的安装
ansible主机列表配置文件
ansible的使用
ansible语句的参数
ansible常用语句

Ansible

是一个开源的自动化运维工具,主要用于配置管理、应用部署、任务自动化和多节点编排。它设计简洁、易于使用,基于 SSH 进行远程管理,无需在被管理主机安装额外代理软件。

ansible的安装

安装 python3-pip(如果没安装)

SGELL
sudo apt update sudo apt install python3-pip -y

安装最新 ansible

SHELL
pip3 install --user ansible

确认版本

SHELL
~/.local/bin/ansible --version

此时如果直接输入ansible 可能会报错 因为需要加入环境变量

SHELL
export PATH=$HOME/.local/bin:$PATH
SHELL
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc

ansible主机列表配置文件

在/etc/ansible文件夹下 如果没有就新建

SHELL
mkdir -p /etc/ansible/ nano /etc/ansible/hosts

写法如下

SHELL
[HK] HK1 HK2 [CN] QZ1 BJ1

[]中间是组名,下方是主机名,可以填/etc/hosts里的主机名或者是填IP,也可以写父子组

SHELL
[WEB:children] CN HK

注意,:前是自定义名,冒号后必须要写children,然后下方跟组名,比如刚才的CN和HK。WEB:children的含义是 web组里包含 CN和HK组的所有主机

ansible的使用

ansible语句的参数

SHELL
ansible [组名] -m [模块名] -a '[模块参数]' [其他选项] 组名 CN WEB 或者是all 也可以多个组一起执行 模块命 ping yum apt shell copy等等 -a "[模块参数]":传递给模块的参数(可选,视模块而定)

ansible常用语句

ping所有主机(探活)

SHELL
ansible all -m ping

在某组主机中执行命令(最常用)

SHELL
ansible web -m shell -a "uptime"

复制文件到远程主机

SHELL
ansible all -m copy -a "src=/etc/hosts dest=/tmp/hosts" src 本机要传输的文件地址 dest 对端(被控端)资源存放地址

安装软件

SHELL
ansible all -m apt -a "name=htop state=present" name 软件包名 state 期望的动作

对于软件包安装的state状态解释

SHELL
present 如果没安装就安装,有就跳过 absent 不存在,即卸载 latest 安装最新版