是一个开源的自动化运维工具,主要用于配置管理、应用部署、任务自动化和多节点编排。它设计简洁、易于使用,基于 SSH 进行远程管理,无需在被管理主机安装额外代理软件。
安装 python3-pip(如果没安装)
SGELLsudo apt update sudo apt install python3-pip -y
安装最新 ansible
SHELLpip3 install --user ansible
确认版本
SHELL~/.local/bin/ansible --version
此时如果直接输入ansible 可能会报错 因为需要加入环境变量
SHELLexport PATH=$HOME/.local/bin:$PATH
SHELLecho 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
在/etc/ansible文件夹下 如果没有就新建
SHELLmkdir -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组的所有主机
SHELLansible [组名] -m [模块名] -a '[模块参数]' [其他选项] 组名 CN WEB 或者是all 也可以多个组一起执行 模块命 ping yum apt shell copy等等 -a "[模块参数]":传递给模块的参数(可选,视模块而定)
ping所有主机(探活)
SHELLansible all -m ping
在某组主机中执行命令(最常用)
SHELLansible web -m shell -a "uptime"
复制文件到远程主机
SHELLansible all -m copy -a "src=/etc/hosts dest=/tmp/hosts" src 本机要传输的文件地址 dest 对端(被控端)资源存放地址
安装软件
SHELLansible all -m apt -a "name=htop state=present" name 软件包名 state 期望的动作
对于软件包安装的state状态解释
SHELLpresent 如果没安装就安装,有就跳过 absent 不存在,即卸载 latest 安装最新版