1. 程式人生 > >004.Ansible Ad-Hoc命令集

004.Ansible Ad-Hoc命令集

一 Ad-Hoc使用場景

Ad-Hoc更傾向於解決簡單、臨時性任務。

1.1 Ad-Hoc基礎命令

基本語法:
  1 ansible <host-pattern> [options]
<host-pattern>:指Inventory中定義的主機或主機組,可以為ip、hostname、Inventory中的group組名等。同時支援具有“.”、“*”或“:”等特殊字元的匹配型字串。 提示:<>表示該選項為必選,[]表述是該選項中的引數任選其一或多個。
  1 [options]:
  2 -v,--verbose:輸出更詳細的執行過程資訊,-vvv可得到執行過程所有資訊;
  3
-i PATH,--inventory=PATH:指定inventory資訊,預設/etc/ansible/hosts; 4 -f NUM,--forks=NUM:併發執行緒數,預設5個執行緒; 5 --private-key=PRIVATE_KEY_FILE:指定祕鑰檔案; 6 -m NAME,--module-name=NAME:指定執行使用的模組。
提示:-m指定模組名稱, 預設情況下是指command模組, 可以省略不寫。
  1 -M DIRECTORY,--module-path=DIRECTORY:指定模組存放路徑,預設/usr/share/ansible;
  2
-a 'ARGUMENTS',--args=‘ARGUMENTS’"模組引數; 3 -k,--ask-pass SSH:認證密碼; 4 -K,ask-sudo=pass sudo:使用者的密碼(--sudo時使用); 5 -o,--one-line:標準輸出至一行; 6 -s,--sudo:相當於Linux系統下的sudo命令; 7 -t DIRECTORY,--tree=DIRECTORY:輸出資訊至DIRECTORY目錄下,結果檔案以遠端主機命名; 8 -T SECONDS,--timeout=SECONDS:指定連線遠端主機的最大超時,單位是秒; 9 -B NUM,--background=NUM:後臺執行命令,超NUM秒後中止正在執行的任務; 10
-P NUM,--poll=NUM:定期返回後臺任務進度; 11 -u USERNAME,--user=USERNAME:指定遠端主機以USERNAME執行命令; 12 -U SUDO_USERNAME,--sudo-user=SUDO_USERNAME:使用sudo,相當於Linux系統下的sudo命令; 13 -c CONNECTION,--connection=CONNECTION:指定連線方式,可用選項paramiko(SSH)、ssh、local,local方式常用於crontab和kickstarts; 14 -l SUBSET,--limit=SUBSET:指定執行主機; 15 -l ~REGEX,--limit=~REGEX:指定執行主機(正則); 16 --list-hosts:列出符合條件的主機列表,不執行任何命令。
  • 場景1:檢查myhost主機組所有主機是否存活.
  1 [[email protected] ~]# ansible myhost -f 5 -m ping
07 解析: 172.24.8.32:表示執行命令的主機; SUCCESS:表示命令成功執行; => {……}:表示詳細返回結果; "changed": false,:表示沒有對主機做變更; "ping": "pong":表示執行ping命令返回結果為pong。
  • 場景2:返回myhost組所有主機的hostname,並列印最詳細的執行過程到標準輸出。
  1 [[email protected] ~]# ansible myhost1 -s -m command -a 'hostname' -vvv
解析: 執行過程圖如下: 08
  • 場景3:列出myhost組所有主機列表。
  1 [[email protected] ~]# ansible myhost --list-hosts
09
  • 場景4:將172.24.8.31伺服器以root執行sleep 20,設定最大連線超時為2s,且設定為後臺執行模式,執行過程每2s輸出一次進度,如5s還未執行完則終止該任務。
  1 [[email protected] ~]# time ansible 172.24.8.31 -B 5 -P 2 -T 2 -m command -a 'sleep 20' -u root

1.2 通過Ad-Hoc檢視系統設定

  • 場景1:批量檢視myhost組所有主機的磁碟容量(command模組)。
  1 [[email protected] ~]# ansible myhost -a "df -hl"
10 解析:rc=0表示ResultCode=0,即命令執行成功。
  • 場景2:批量檢視遠端主機記憶體使用情況(shell模組)。
  1 [[email protected] ~]# ansible myhost -m shell -a "free -m"

二 Ansible模組使用

2.1 Ad-Hoc檢視模組介紹

ansible-doc ansible-doc是Ansible模組文件說明,針對每個模組都有詳細的用法及應用案例介紹,類似Linux的man。 基本語法:
  1 ansible-doc [-l|-F|-s] [options] [-t <plugin type> ] [plugin]
引數: -v,--version:顯示工具版本號; -h,--help:顯示該help說明; -M MODULE_PATH,--module-path=MODULE_PATH:指定Ansible模組的預設載入目錄; -l,--list:列出所有可用模組; -s,--snippet:只顯示playbook說明的程式碼段; 示例:
  1 [[email protected] ~]# ansible-doc -l		#列出支援的模組
  2 [[email protected] ~]# ansible-doc yum	        #檢視模組功能說明
  • 場景1:安裝redhat-lsb並檢視伺服器系統版本號。
  1 [[email protected] ~]# ansible myhost -m yum -a 'name=redhat-lsb state=present'	#安裝軟體
11 解析: "changed":true:主機是否有變更,true表示有,false表示沒有; "msg":安裝過程資訊; "rc":0,resultcode:結果返回碼,非0返回碼往往是紅色並且錯誤的返回。
  1 [[email protected] ~]# ansible myhost -a 'lsb_release -a'
12
  • 場景2:為伺服器安裝MySQL,並啟動,同時設定為開機啟動.
  1 [[email protected] ~]# ansible myhost -m yum -a 'name=mariadb,mariadb-server state=present'
  2 [[email protected] ~]# ansible myhost -m service -a 'name=mariadb state=started enabled=yes'

三 Ansible主機、使用者與組管理

3.1 主機變更

  • 情景1:指定組內特定主機變更。
  1 [[email protected] ~]# ansible myhost -m service -a 'name=ntpd state=started' --limit "172.24.8.31"
--limit:通過limit引數限定主機做變更
  • 場景2:通過指定具體IP限定主機做變更。
  1 [[email protected] ~]# ansible 172.24.8.32 -m command -a "systemctl start ntpd"
  • 場景3:指定多臺主機做變更。
  1 [[email protected] ~]# ansible 172.24.8.31:172.24.8.33 -m command -a "systemctl start ntpd"
解析:使用:指定多臺伺服器,:非31-33,而是31和33兩臺主機。
  1 [[email protected] ~]# ansible 172.24.8.3* -m command -a "systemctl stop ntpd"

3.2 Linux使用者管理模組user

引數 必填 預設值 選項 說明
append No Yes/no yes:增量新增group no:全量變更group,只設置groups指定的group組
comment     使用者的描述資訊
createhome yes Yes/no yes:新增使用者同時建立家目錄; no:新增使用者時不建立家目錄;
force No Yes/no 強制,結合state=absent使用, 相當於userdel --force
generate_ssh_key No Yes/no 是否生成祕鑰,不會覆蓋已有SSH key
group     可選,設定使用者的主組
groups     設定使用者附屬組,用逗號分隔的組; 當groups設定為空,則會移除除主組外其他所有組
home     可選,設定為使用者的home目錄
login_class     可選,設定FreeBSD/OpenBSD/NetBSD系統的使用者 登陸class
name     使用者名稱
move_home No Yes/no 若為yes,則會臨時遷移家目錄到特定目錄
non_unique No Yes/no 可選,結合-u使用,允許改變使用者ID為非唯一值
password     可選,設定使用者的密碼(加密後的密碼)
remove No Yes/no 結合state=absent使用, 相當於userdel --remove
seuser 可選,設定seuser型別啟用SELinux
shell     可選,設定使用者的shell
skeleton 可選,設定使用者skel目錄, 需和createhome引數結合使用
ssh_key_bits 2048   可選,設定SSH key的加密位數
ssh_key_comments $HOSTHOME   可選,定義SSH key註釋資訊
ssh_key_file .sha/id_rsa   可選,定義SSH key檔名
ssh_key_passphrase     設定SSH key密碼,若沒有提供,則預設不加密
ssh_key_type Rsa   可選,指定SSH key型別
state Present Present Absent present:新增使用者 absent:刪除使用者
system No Yes/no

相關推薦

004.Ansible Ad-Hoc命令

一 Ad-Hoc使用場景 Ad-Hoc更傾向於解決簡單、臨時性任務。 1.1 Ad-Hoc基礎命令 基本語法: 1 ansible <host-pattern> [options] <host-pattern>:指Inventory中定義的

Ansible Ad-Hoc命令

磁盤容量 模塊 修改 cal release 情況 bits htm nta 目錄 一 Ad-Hoc使用場景 1.1 Ad-Hoc基礎命令 1.2 通過Ad-Hoc查看系統設置 二 Ansible模塊使用 2.1 Ad-Hoc查看模塊介紹 三 Ansible

大話Ansible Ad-Hoc命令

> Ansible是一個系列文章,我會盡量以通俗易懂、詼諧幽默的總結方式給大家呈現這些枯燥的知識點,讓學習變的有趣一些。 > Ansible系列博文直達連結:[Ansible入門系列][1] # 前言 通過前面的文章,大家基本上也都知道了Ansible的基本使用了,但是閱讀的過程中,大家會發現我有使用以下兩

Ansible 文檔】【譯文】Ad-Hoc 命令介紹

力量 services 方式 控制 雙引號 handlers 升級 ges 快的 Introduction To Ad-Hoc Commands Ad-Hoc命令介紹 下面的例子展示了如何使用 /usr/bin/ansible 來運行ad hoc任務。 什麽是ad hoc命

Ansible學習 ad-hoc命令

bsp nconf hang fin 後者 man 實例 mode 支持   Ansible提供兩種方式去執行命令,一種是ad-hoc命令,一種是寫入Ansible playbook。類似於前者在命令行敲shell,後者是寫shell-script腳本,前者解決一些簡單的任

Ansible Ad-Hoc 常用命令

新建 指定版本 文件路徑 oot user ffffff str 是否 ef6 Ansible Ad-Hoc常用命令 Ansible可以通過命令行形式使用它的模塊,Ansible自帶了很多模塊,可以直接使用這些模塊。目前Ansible已經自帶了259個模塊,可以通過ans

Ansible常用Ad-Hoc命令介紹

tex 信息 文件的 包安裝 proc vpd 管道符 如果 present 在自動化運維的過程中,我們常常會通過命令行的形式使用Ansible模塊,ansible自帶了259各模塊,我們可以通過一些命令來查看ansible中所含的模塊,也可以查看單一模塊的信息。下面,我就

java分散式系統部署學習(六)ansible Ad-hoc與commands模組

Ad-Hoc 是指ansible下臨時執行的一條命令,並且不需要儲存的命令,對於複雜的命令後面會說playbook。講到Ad-hoc 就要提到模組,所有的命令執行都要依賴於事先寫好的模組,預設安裝好的ansible 裡面已經自帶了很多模組,如:command、r

Ansible Ad-Hoc與常用模組

  ansible 執行結果資訊–各顏色說明;ansible Ad-Hoc 說明;ansible 如何檢視幫助文件與常用模組詳解 主機規劃   新增使用者賬號 說明: 1、 運維人員使用的登入賬號; 2、 所有的業務都放在 /app/ 下「yun使用者的家目錄」,避免業務資料亂放;

AnsibleAd-Hoc(臨時命令命令配置詳解

簡介: Ad-Hoc簡而言之是“臨時命令”,英文中作為形容詞有“特別的”,“臨時”的含義。 Ansible提供兩種完成任務方式:一種是Ad-Hoc命令集,即命令ansible,另外一種就是Ansible-playbook了,即命令Ansible-playbook。 Ad

ansible 完成一次性的工作(ad-Hoc)工作

checksum nis -c 用戶 一個個 version 完成 ansible apr ansible 真正強大的功能是它的playbook,但是在日常的工作中通過會遇到一些工作,它們只是需要我們偶爾操作一下;比較說重啟一下 操作系統;像這樣的工作就用不著ansible

Ansible 七(ad hoc任務)

常用模塊 ansible Ansible 七(ad hoc任務)ansible任務ad hoc任務就是執行shell命令、或shell腳本。ansible ad-hoc命令 可以執行一些簡單的命令,不需要將這些執行的命令特別保存下來。 適合執行簡單的命令。ansible playbook 可以解

Ansible4:Ad-hoc命令執行模塊

不成功 etc txt -a 表示 sts sync 行修改 for [toc] Ad-Hoc 是指ansible下臨時執行的一條命令,並且不需要保存的命令,對於復雜的命令會使用playbook。Ad-hoc的執行依賴於模塊,ansible官方提供了大量的模塊。 如:com

ansible概述、ansible基礎 、 ad-hoc、批量配置管理

Top 1 案例1:環境準備 1.1 問題 本案例要求準備ansible的基礎環境: 啟動6臺虛擬機器 禁用selinux和firewalld 編輯/etc/hosts 配置yum擴充套件源並在管理節點安裝ansible 1.2 方案 此方案需要準備六臺主機,

SHELL ---》》TEST命令

num 大於 等號 不能 ren 操作 spa 空格 not Shell test 命令 Shell中的 test 命令用於檢查某個條件是否成立,它可以進行數值、字符和文件三個方面的測試。 數值測試 參數說明 -eq 等於則為真 -ne 不等於則為真 -gt

Mysql數據庫實用命令

當前 命令集 create 命令 數據庫 base count mysql數據庫 alter mysql實用命令 (1)、從第0行開始取,取3行select * from student limit 0,3 (2)、查看當前數據庫編碼 show variables like

解決SQL Server 阻止了對組件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的訪問

option eight img 導入 col cnblogs 數據 編輯器 code 根據需要進行asp.net的數據導入導出,結果報以下錯: SQL Server 阻止了對組件 ‘Ad Hoc Distributed Queries‘ 的 STATEMENT ‘Open

oracle中與mysql中的命令 show databases, show tables, desc table類似的命令

copyright 星期六 time 語句 什麽 ora cte 一個 select 1 怎樣執行一個sql腳本文件,這個腳本文件寫了一系列的sql語句集,比如sql.sql 放在D:\MyEclipse 8.6\Workspaces\OASystem\WebRoot\sq

MHA 日常維護命令

故障轉移 show tar manager one less 命令集 efault 決定 MHA 日常維護命令集 1.查看ssh登陸是否成功 masterha_check_ssh --global_conf=/etc/masterha/masterha_default.co

Git代碼行統計命令

dex git log 歷史 命令 史記 增加 insert 提交 這樣的 統計某人的代碼提交量,包括增加,刪除: git log --author="$(git config --get user.name)" --pretty=tformat: --numstat