1. 程式人生 > >Ansible常用命令

Ansible常用命令

mef ansible使用 連接 ddr id號 shadow word 賬號 用戶家目錄

前言

Ansible命令行工具會向指定的主機通過ssh連接發送命令。這些主機在ansible中被稱為資產inventory,接下來我們會介紹inventory的配置方式

一. Inventory 配置

資產配置可以使用可以使用IP或主機名,資產配置文件為 /etc/ansible/hosts

分組

將同一個類別的主機放入一個組中,使用[group_name]元素定義,示例如下:

[dbserver]
192.168.200.135
node2

註意:如果使用主機名,要求能夠解析主機名,我們可以通/etc/hosts解析或則DNS解析

未分組的主機

我們需要將主機列表放在[group_name]元素之上即可,示例:

node1
node2
[dbserver]
192.168.200.135
node2

註意:主機可以在不同的組和未分組的主機列表中重復使用

主機名通配

www[001:009].example.com   #匹配www001.example.com 到 www009.example.com
192.168.200.13[6:9]        #匹配192.168.200.136 到192.168.200.139

二. ansible-doc的使用

ansible沒有任何功能,所用的功能都由對應的模塊實現,ansible-doc命令列出可用的模塊以及模塊使用的方法

基本語法格式:

ansible-doc [-l] [-s] [module...]

options說明:

-l 顯示所有可用模塊
-s 查看某一模塊的參數

示例:

技術分享圖片

技術分享圖片

三. ansible的使用

1. ansible使用語法格式

__ansible < host-pattern > [-m module_name] [-a args]__

< host-pattern> : 尖括號表示不可省

  1. 在資產文件中的組名
  2. 資產文件中的IP或主機名
  3. all文件資產文件中的所有主機

[-m module_name] :中括號表示此選項可省,此參數為模塊名

-a args :模塊對應的參數,有些模塊沒有參數。

2. ansible中常用模塊使用方法

ping:探測主機是否存活,無參數

技術分享圖片

command : 遠程執行命令,但不支持管道。它是默認命令可不指明模塊
技術分享圖片

技術分享圖片

shell :遠程執行命令,與command的不同在於可以使用管道

技術分享圖片
cron :用於設置crontab

用法:
job   執行的命令
state 添加crontab還是刪除,present(添加),absent(刪除),默認是添加
name 設置crontab條目的名稱
minute,hour,day,month 設置運行的時間

示例:

添加一個crontab條目

技術分享圖片

到對應主機上查看crontab條目

技術分享圖片

刪除crontab條目

技術分享圖片

copy : 拷貝文件到遠程主機

用法
src :本地文件路徑,可以是絕對和相對
dest= :不可省,如果src是目錄,則dest也是目錄。只能是絕對路徑
group :指明文件屬組
mode   :指明權限
owner :指明所有者
content :直接寫出內容,並將其復制給遠程主機

示例:

復制本地文件到遠端主機

技術分享圖片

技術分享圖片

直接寫出要復制到遠端主機的內容

技術分享圖片

file

用法
1. 創建鏈接文件
path=/PATH/TO/SOMEFILE src=/PATH/TO/SOMEFILE state=link
path指向的路徑生成一個鏈接文件,鏈接文件指向src指向的路徑。

2. 創建 目錄
path=/PATH/TO/SOMEFILE state=directory

3. 刪除文件
path=/PATH/TO/SOMEFILE state=absent
  1. 創建連接文件

技術分享圖片

技術分享圖片

  1. 創建 目錄

技術分享圖片

  1. 刪除文件

技術分享圖片

fetch :從遠端主機獲取文件

用法:
src=遠端主機上的文件。
dest=保存文件的目錄

示例:

技術分享圖片

註意:獲取的文件存放的路徑為dest_dir/IP|address/src_file。

group:添加或刪除組

用法:
gid :指明組ID
name:指明組名
state:創建或刪除,present(創建,默認選項),absent(刪除)
system:yes表明創建系統用戶,默認是false

示例:

技術分享圖片
user :管理用戶賬號

用法:
name= :用戶的名稱
uid :指明用戶id號
state :present創建用戶,absent刪除用戶
createhome :默認為yes,如果為no則不創建用戶家目錄
home :設置用戶家目錄
group :指明用戶主組
groups : 指明用戶附加組
password :用戶加密後的值
shell : 設置用戶使用的shell

示例:

技術分享圖片

技術分享圖片
yum:使用yum管理安裝包

用法:
name= : 指明管理程序包包名
state :present,installed表示安裝程序包,latest表明安裝最新版本;absent和removed表示卸載安裝包。默認是安裝最新版本

示例:
技術分享圖片

技術分享圖片

技術分享圖片

service : 管理服務

用法:
name= :管理服務的名稱
enabled : 是否開機啟動
state : started/stopped啟動或停止服務;restart重啟服務;reloaded重新加載配置文件,註意如果服務沒有起來會啟動服務。

示例:

技術分享圖片

技術分享圖片

Ansible常用命令