Ansible 快速入門
來自:入門小站
Ansible 是一款簡單的運維自動化工具,只需要使用 ssh 協議連接就可以來進行系統管理,自動化執行命令,部署等任務。
Ansible 的優點
-
不需要安裝客戶端, 不需要運行服務
-
使用 python 開發的一套自動執行任務的模塊
-
playbook 採用 yaml 配置, 結構清晰
Ansible 的組成結構
-
Ansible: 核心命令工具, 一次性或臨時性執行的操作都由該工具執行
-
Ansible playbook: 任務劇本 (又稱任務集), 編排定義 Ansible 任務集的配置文件, 由 Ansible 執行, 格式是
yaml
-
Inventory:Ansible 管理的主機, 在
/etc/ansible/hosts
中配置 -
Modules:Ansible 執行命令的功能模塊, Ansible2.3 版本爲止,共有 1039 個模塊。還可以自定義模塊。
-
Plugins: 插件,模塊功能的補充,常有連接類型插件,循環插件,變量插件,過濾插件,插件功能用的較少。
-
API: 提供給第三方程序調用的應用程序編程接口。
Ansible 常用的功能模塊
命令模塊
command
shell
文件模塊
copy
fetch
file
安裝模塊
yum
服務模塊
service
掛載模塊
mount
定時任務
cron
用戶模塊
group
user
壓縮解壓
unarchive
Ansible 安裝
> yum install ansible -y
配置主機
> vim /etc/ansible/hosts
[web]
192.168.2.10 ansible_ssh_port=22 ansible_ssh_user=rumenz ansible_ssh_pass="123456"
192.168.2.11 ansible_ssh_port=22 ansible_ssh_user=rumenz ansible_ssh_pass="123456"
我們定義了一個web
組 (可以加很多主機),Ansible
默認使用的是ssh
協議, 指定好端口, 賬號, 密碼就可以了。除了使用賬號, 密碼的形式配置, 我們也可以用祕鑰, 後面訪問。
測試
> ansible web -m ping
web
就是上面我們定義的分組,-m
我後面指定模塊, 這裏我們使用ping
模塊, 用於查看主機是否網絡可達。
使用Ansible
執行pwd
命令
> ansible web -m shell -a "pwd"
這裏我們使用的是shell
模塊,-a
後面跟上需要執行的shell
命令
使用Ansible
查看web
分組下nginx
服務是否在運行
> ansible web -m shell -a "ps -ef | grep nginx"
使用Ansible
簡單批量安裝redis
> ansible web -m shell -a "yum install redis -y"
注意複雜的軟件安裝, 需要編寫Ansible playbook
配置文件, 更加靈活。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/tewDhDmdHvb_AVFtgMHosA