02-Ansible命令行工具

Ansible

Ansible version : 2.6.2

ad-hoc命令簡(jiǎn)介

什么是ad-hoc命令醉途?

ad-hoc命令就是想快速的執(zhí)行一些任務(wù)埠居,但是執(zhí)行完成后不想保存。

并行和shell命令

舉個(gè)例子

讓我們使用Ansible的命令行工具重啟亞特蘭大的所有Web服務(wù)器馍驯,一次10個(gè)。首先涉茧,讓我們?cè)O(shè)置SSH代理,以便它能記住我們的憑據(jù)疹娶。

如果您不想使用ssh-agent并希望使用密碼而不是密鑰進(jìn)行SSH伴栓,則可以使用--ask-pass-k),但最好只使用ssh-agent雨饺。

ssh-agent bash
ssh-add ~/.ssh/id_rsa

什么是ssh-agent钳垮?

ssh-agent命令是一種控制用來(lái)保存公鑰身份驗(yàn)證所使用的私鑰的程序。ssh-agent在X會(huì)話或登錄會(huì)話之初啟動(dòng)额港,所有其他窗口或程序則以客戶端程序的身份啟動(dòng)并加入到ssh-agent程序中饺窿。通過(guò)使用環(huán)境變量,可定位代理并在登錄到其他使用ssh機(jī)器上時(shí)使用代理自動(dòng)進(jìn)行身份驗(yàn)證移斩。

其實(shí)ssh-agent就是一個(gè)密鑰管理器肚医,運(yùn)行ssh-agent以后绢馍,使用ssh-add將私鑰交給ssh-agent保管,其他程序需要身份驗(yàn)證的時(shí)候可以將驗(yàn)證申請(qǐng)交給ssh-agent來(lái)完成整個(gè)認(rèn)證過(guò)程肠套。

現(xiàn)在舰涌,在組中的所有服務(wù)器上運(yùn)行該命令,在本例中為 atlanta你稚,以10個(gè)并行分叉運(yùn)行:

ansible atlanta -a "/sbin/reboot" -f 10

/usr/bin/ansible將默認(rèn)從您的用戶帳戶運(yùn)行瓷耙。如果您不喜歡此行為,請(qǐng)傳入-u username刁赖。如果要以不同的用戶身份運(yùn)行命令

ansible atlanta -a "/usr/bin/foo" -u username

通常搁痛,您不希望僅從您的用戶帳戶執(zhí)行操作。如果要通過(guò)權(quán)限提升運(yùn)行命令

ansible atlanta -a“/ usr / bin / foo”-u username --become [--ask-become-pass]

如果您沒(méi)有使用無(wú)密碼權(quán)限提升方法(sudo/su/pfexec/doas/etc)宇弛,請(qǐng)使用--ask-become-pass (-K) 鸡典。這將以交互方式提示您輸入密碼。使用無(wú)密碼設(shè)置可以使事情更容易自動(dòng)化涯肩,但這不是必需的。

使用--become-user也可以成為root之外的用戶

ansible atlanta -a“/ usr / bin / foo”-u username --become --become-user otheruser [--ask-become-pass]

我們還可以選擇要運(yùn)行的Ansible的“module”巢钓。通常命令會(huì)使用-m指定模塊名稱病苗,默認(rèn)模塊名稱是'command',因此我們不需要一直指定症汹。我們將-m在后面的示例中使用它來(lái)運(yùn)行其他一些其他模塊硫朦。

command不支持管道以及重定向操作,盡管shell變量仍然工作背镇。如果你想使用的話咬展,請(qǐng)用shell模塊替代。

使用ad-hoc(非Playbooks)運(yùn)行任何命令時(shí)瞒斩,特別注意shell引用規(guī)則破婆,本地shell在傳遞給Ansible之前不會(huì)使用變量。

命令行模式下單引號(hào)胸囱、與雙引號(hào)執(zhí)行本地變量區(qū)別祷舀,如果使用本地變量時(shí),一定要使用雙引號(hào)烹笔。

PY=12345
ansible localhost -m shell -a 'echo $PY'
localhost | SUCCESS | rc=0 >>

$ ansible localhost -m shell -a "echo $PY"         
localhost | SUCCESS | rc=0 >>
12345

此外裳扯,ansible通過(guò)在開(kāi)始之前檢查當(dāng)前狀態(tài)來(lái)實(shí)現(xiàn)一種冪等形式,并且如果當(dāng)前狀態(tài)與指定的最終狀態(tài)匹配谤职,則什么都不做饰豺。

Ansible命令行工具

ansible命令

范例

ansible <host-pattern> [options]

說(shuō)明

Ansible是一個(gè)非常簡(jiǎn)單的工具/框架/ API,用于做“遠(yuǎn)程事物”允蜈。此命令允許您針對(duì)一組主機(jī)定義和運(yùn)行單個(gè)任務(wù)“playbook”冤吨。

選項(xiàng)

詢問(wèn)su密碼(棄用蒿柳,使用become)

--ask-su-pass

詢問(wèn)sudo密碼(棄用,使用become)

--ask-sudo-pass

詢問(wèn)vault密碼

--ask-vault-pass

使用的提權(quán)方法(默認(rèn)= sudo),有效值 [ sudo | su | pbrun | pfexec | doas | dzdo | ksu | runas | pmrun | enable | machinectl ]

--become-method <BECOME_METHOD>

使用該用戶運(yùn)行锅很,默認(rèn)值為root

--become-user <BECOME_USER>

列出匹配的主機(jī)列表其馏,但不執(zhí)行任何操作。

--list-hosts

由于ansible命令不使用playbooks爆安,因此將其用作替代playbook目錄叛复。這將設(shè)置許多功能的相對(duì)路徑,包括roles/ group_vars/ 等.

--playbook-dir <BASEDIR>

使用文件進(jìn)行連接認(rèn)證

--private-key, --key-file

指定僅傳遞給scp的額外參數(shù)(例如-l)

--scp-extra-args <SCP_EXTRA_ARGS>

指定僅傳遞給sftp的額外參數(shù)(例如-f扔仓,-l)

--sftp-extra-args <SFTP_EXTRA_ARGS>

指定傳遞給sftp / scp / ssh的公共參數(shù)(例如ProxyCommand)

--ssh-common-args <SSH_COMMON_ARGS>

對(duì)playbook語(yǔ)法檢查褐奥,并不執(zhí)行

--syntax-check

使用vault標(biāo)識(shí)

--vault-id

vault密碼文件

--vault-password-file

ansible版本

--version

異步運(yùn)行,X秒后失斍檀亍(默認(rèn)=N/A)

-B <SECONDS>, --background <SECONDS>

不做任何改變; 相反撬码,嘗試預(yù)測(cè)可能發(fā)生的一些變化

-C, --check

更改(小)文件和模板時(shí)版保,顯示這些文件的差異; 與-check配合更好

-D, --diff

詢問(wèn)become密碼

-K, --ask-become-pass

將冒號(hào)分隔的路徑預(yù)先添加到模塊庫(kù) (默認(rèn)值=[u’/home/jenkins/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’])

-M, --module-path

如果使用-B(默認(rèn)值=15)呜笑,則設(shè)置輪詢間隔

-P <POLL_INTERVAL>, --poll <POLL_INTERVAL>

以su作為此用戶運(yùn)行操作(默認(rèn)=None)(棄用,使用become)

-R <SU_USER>, --su-user <SU_USER>

用su運(yùn)行操作(棄用彻犁,使用become)

-S, --su

以秒為單位覆蓋連接超時(shí)(默認(rèn)值=10)

-T <TIMEOUT>, --timeout <TIMEOUT>

期望sudo用戶(默認(rèn)= root)(棄用叫胁,使用become)

-U <SUDO_USER>, --sudo-user <SUDO_USER>

模塊參數(shù)

-a <MODULE_ARGS>, --args <MODULE_ARGS>

使用become操作,并不意味密碼提示

-b, --become

連接類(lèi)型(默認(rèn)值=smart)

-c <CONNECTION>, --connection <CONNECTION>

設(shè)置額外變量為key=value或者json汞幢、yaml驼鹅,如果文件名預(yù)置為@

-e, --extra-vars

指定并行處理數(shù),(默認(rèn)值=5)

-f <FORKS>, --forks <FORKS>

顯示幫助信息

-h, --help

指定inventory主機(jī)路徑或逗號(hào)分隔的主機(jī)列表森篷。--inventory-file已棄用

-i, --inventory, --inventory-file

詢問(wèn)連接密碼

-k, --ask-pass

進(jìn)一步限制所選主機(jī)為額外模式

-l <SUBSET>, --limit <SUBSET>

選擇執(zhí)行模塊名稱(默認(rèn)值=command)

-m <MODULE_NAME>, --module-name <MODULE_NAME>

執(zhí)行結(jié)果顯示為一行

-o, --one-line

使用sudo操作(無(wú)密碼)(已棄用输钩,使用become)

-s, --sudo

日志輸出到指定目錄

-t <TREE>, --tree <TREE>

設(shè)置連接用戶(默認(rèn)值=None)

-u <REMOTE_USER>, --user <REMOTE_USER>

詳細(xì)模式(-vvv表示更多,-vvvv表示啟用連接調(diào)試)

-v, --verbose

環(huán)境

可以指定以下環(huán)境變量仲智。

ANSIBLE_CONFIG-覆蓋默認(rèn)的ansible配置文件

對(duì)于ansible.cfg中的大多數(shù)選項(xiàng)买乃,還有更多選項(xiàng)可用。

配置文件

/etc/ansible/ansible.cfg 配置文件钓辆,如果存在則使用为牍。

~/.ansible.cfg 用戶配置文件,如果存在則覆蓋默認(rèn)配置岩馍。

ansible-config命令

范例

ansible-config [view|dump|list] [--help] [options] [ansible.cfg]

說(shuō)明

命令行配置

選項(xiàng)

顯示版本號(hào)

--version

配置文件的路徑碉咆,默認(rèn)為優(yōu)先級(jí)中找到的第一個(gè)文件。

-c <CONFIG_FILE>, --config <CONFIG_FILE>

顯示幫助文件

-h, --help

詳細(xì)模式(-vvv表示更多蛀恩,-vvvv表示啟用連接調(diào)試)

-v, --verbose

動(dòng)作

list

列出讀取lib/constants.py的所有當(dāng)前配置疫铜,并顯示env和配置文件設(shè)置名稱

dump

顯示當(dāng)前設(shè)置,如果指定双谆,則合并ansible.cfg

僅顯示已從默認(rèn)值更改的配置

--only-changed
view

顯示當(dāng)前配置文件

優(yōu)先級(jí)

ansible將讀取配置文件優(yōu)先級(jí)順序當(dāng)前工作目錄中的ANSIBLE_CONFIG壳咕,ansible.cfg席揽,主目錄中的.ansible.cfg或/etc/ansible/ansible.cfg。

環(huán)境

可以指定以下環(huán)境變量谓厘。

ANSIBLE_CONFIG-覆蓋默認(rèn)的ansible配置文件

對(duì)于ansible.cfg中的大多數(shù)選項(xiàng)幌羞,還有更多選項(xiàng)可用。

配置文件

/etc/ansible/ansible.cfg 配置文件竟稳,如果存在則使用属桦。

~/.ansible.cfg 用戶配置文件,如果存在則覆蓋默認(rèn)配置他爸。

ansible-console命令

范例

ansible-console [<host-pattern>] [options]

描述

交互模式下的ansible

選項(xiàng)

詢問(wèn)su密碼(棄用聂宾,使用become)

--ask-su-pass

詢問(wèn)sudo密碼(棄用,使用become)

--ask-sudo-pass

詢問(wèn)vault密碼

--ask-vault-pass

使用的提權(quán)方法(默認(rèn)= sudo),有效值 [ sudo | su | pbrun | pfexec | doas | dzdo | ksu | runas | pmrun | enable | machinectl ]

--become-method <BECOME_METHOD>

使用該用戶運(yùn)行诊笤,默認(rèn)值為root

--become-user <BECOME_USER>

列出匹配的主機(jī)列表系谐,但不執(zhí)行任何操作。

--list-hosts

由于ansible-console命令不使用playbooks讨跟,因此將其用作替代playbook目錄纪他。這將設(shè)置許多功能的相對(duì)路徑,包括roles/ group_vars/ 等.

--playbook-dir <BASEDIR>

指定文件進(jìn)行連接認(rèn)證

--private-key, --key-file

指定僅傳遞給scp的額外參數(shù)(例如-l)

--scp-extra-args <SCP_EXTRA_ARGS>

指定僅傳遞給sftp的額外參數(shù)(例如-f晾匠,-l)

--sftp-extra-args <SFTP_EXTRA_ARGS>

指定傳遞給sftp / scp / ssh的公共參數(shù)(例如ProxyCommand)

--ssh-common-args <SSH_COMMON_ARGS>

指定僅傳遞給ssh的額外參數(shù)(例如-R)

--ssh-extra-args <SSH_EXTRA_ARGS>

一步步執(zhí)行茶袒,執(zhí)行前確認(rèn)

--step

對(duì)playbook語(yǔ)法檢查,并不執(zhí)行

--syntax-check

使用vault標(biāo)識(shí)

--vault-id

vault密碼文件

--vault-password-file

ansible版本

--version

不做任何改變; 相反混聊,嘗試預(yù)測(cè)可能發(fā)生的一些變化

-C, --check

更改(械)文件和模板時(shí)乾巧,顯示這些文件的差異; 與-check配合更好

-D, --diff

詢問(wèn)become密碼

-K, --ask-become-pass

將冒號(hào)分隔的路徑預(yù)先添加到模塊庫(kù) (默認(rèn)值=[u’/home/jenkins/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’])

-M, --module-path

以su作為此用戶運(yùn)行操作(默認(rèn)=None)(棄用句喜,使用become)

-R <SU_USER>, --su-user <SU_USER>

用su運(yùn)行操作(棄用,使用become)

-S, --su

以秒為單位覆蓋連接超時(shí)(默認(rèn)值=10)

-T <TIMEOUT>, --timeout <TIMEOUT>

期望sudo用戶(默認(rèn)= root)(棄用沟于,使用become)

-U <SUDO_USER>, --sudo-user <SUDO_USER>

使用become操作咳胃,并不意味密碼提示

-b, --become

連接類(lèi)型(默認(rèn)值=smart)

-c <CONNECTION>, --connection <CONNECTION>

設(shè)置額外變量為key=value或者json、yaml旷太,如果文件名預(yù)置為@

-e, --extra-vars

指定并行處理數(shù)展懈,(默認(rèn)值=5)

-f <FORKS>, --forks <FORKS>

顯示幫助信息

-h, --help

指定inventory主機(jī)路徑或逗號(hào)分隔的主機(jī)列表。--inventory-file已棄用

-i, --inventory, --inventory-file

詢問(wèn)連接密碼

-k, --ask-pass

進(jìn)一步限制所選主機(jī)為額外模式

-l <SUBSET>, --limit <SUBSET>

使用sudo操作(無(wú)密碼)(已棄用供璧,使用become)

-s, --sudo

設(shè)置連接用戶(默認(rèn)值=None)

-u <REMOTE_USER>, --user <REMOTE_USER>

詳細(xì)模式(-vvv表示更多存崖,-vvvv表示啟用連接調(diào)試)

-v, --verbose

環(huán)境

可以指定以下環(huán)境變量。

ANSIBLE_CONFIG-覆蓋默認(rèn)的ansible配置文件

對(duì)于ansible.cfg中的大多數(shù)選項(xiàng)睡毒,還有更多選項(xiàng)可用来惧。

配置文件

/etc/ansible/ansible.cfg 配置文件,如果存在則使用演顾。

~/.ansible.cfg 用戶配置文件供搀,如果存在則覆蓋默認(rèn)配置隅居。

ansible-doc命令

范例

ansible-doc [-l|-F|-s] [options] [-t <plugin type> ] [plugin]

描述

顯示Ansible庫(kù)中安裝的模塊的信息。它顯示了一個(gè)簡(jiǎn)潔的插件列表及其簡(jiǎn)短描述葛虐,提供了他們的DOCUMENTATION字符串的打印輸出胎源,它可以創(chuàng)建一個(gè)簡(jiǎn)短的“片段”,可以粘貼到劇本中屿脐。

選項(xiàng)

顯示版本號(hào)

--version

顯示插件名稱及其源文件不包含摘要

-F, --list_files

將冒號(hào)分隔的路徑預(yù)先添加到模塊庫(kù) (默認(rèn)值=[u’/home/jenkins/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’])

-M, --module-path

僅限內(nèi)部測(cè)試顯示所有插件的文檔涕蚤。

-a, --all

顯示幫助信息

-h, --help

僅限內(nèi)部測(cè)試轉(zhuǎn)儲(chǔ)所有插件的json元數(shù)據(jù)

-j, --json

列出可以用的插件

-l, --list

顯示指定插件的playbook片段

-s, --snippet

選擇插件類(lèi)型(默認(rèn)為module)

-t <TYPE>, --type <TYPE>

詳細(xì)模式(-vvv表示更多,-vvvv表示啟用連接調(diào)試)

-v, --verbose

環(huán)境

可以指定以下環(huán)境變量摄悯。

ANSIBLE_CONFIG-覆蓋默認(rèn)的ansible配置文件

對(duì)于ansible.cfg中的大多數(shù)選項(xiàng)赞季,還有更多選項(xiàng)可用。

配置文件

/etc/ansible/ansible.cfg 配置文件奢驯,如果存在則使用申钩。

~/.ansible.cfg 用戶配置文件,如果存在則覆蓋默認(rèn)配置瘪阁。

ansible-galaxy命令

范例

ansible-galaxy [delete|import|info|init|install|list|login|remove|search|setup] [--help] [options] ...

描述

用于管理共享存儲(chǔ)庫(kù)中的Ansible角色的命令撒遣。 默認(rèn)的Ansible Galaxy https://galaxy.ansible.com.

選項(xiàng)

列出所有集成roles,(存疑,未找到該選項(xiàng))

--list

刪除與提供的ID值匹配的集成管跺。使用-list查看ID值义黎。(存疑,未找到該選項(xiàng))

--remove <REMOVE_ID>

顯示版本號(hào)

--version

忽略SSL證書(shū)驗(yàn)證錯(cuò)誤

-c, --ignore-certs

目標(biāo)api server

-s <API_SERVER>, --server <API_SERVER>

詳細(xì)模式(-vvv表示更多豁跑,-vvvv表示啟用連接調(diào)試)

-v, --verbose

動(dòng)作

info

打印出有關(guān)已安裝角色的詳細(xì)信息以及galaxy API提供的信息廉涕。

創(chuàng)建roles不查詢galaxy api

--offline

包含roles的目錄的路徑,默認(rèn)值roles_path配置在ansible.cfg文件里面(沒(méi)有配置,則為/etc/ansible/roles)

-p, --roles-path
search

Ansible Galaxy查找roles

GitHub 用戶名

--author <AUTHOR>

過(guò)濾的galaxy標(biāo)簽

--galaxy-tags <GALAXY_TAGS>

過(guò)濾OS平臺(tái)

--platforms <PLATFORMS>

包含roles的目錄的路徑,默認(rèn)值roles_path配置在ansible.cfg文件里面(沒(méi)有配置艇拍,則為/etc/ansible/roles)

-p, --roles-path
setup

為Ansible Galaxy roles從github或者Travis安裝integration

列出所有自己集成

--list

刪除與提供的ID值匹配的集成狐蜕。使用-list查看ID值

--remove <REMOVE_ID>
list

列出本地系統(tǒng)上安裝的roles或者匹配作為參數(shù)傳遞的單個(gè)role。

包含roles的目錄的路徑,默認(rèn)值roles_path配置在ansible.cfg文件里面(沒(méi)有配置卸夕,則為/etc/ansible/roles)

-p, --roles-path
remove

從本地系統(tǒng)中刪除作為參數(shù)傳遞的roles列表

包含roles的目錄的路徑,默認(rèn)值roles_path配置在ansible.cfg文件里面(沒(méi)有配置层释,則為/etc/ansible/roles)

-p, --roles-path
init

創(chuàng)建一個(gè)符合規(guī)定的role原始框架

指定role創(chuàng)建的目錄,默認(rèn)是當(dāng)前工作目錄

--init-path <INIT_PATH>

創(chuàng)建時(shí)不查詢galaxy api

--offline

新role應(yīng)基于role框架路徑

--role-skeleton <ROLE_SKELETON>

初始化使用備用的role類(lèi)型快集,有效值包含‘container’, ‘a(chǎn)pb’ and ‘network’.

--type <ROLE_TYPE>

強(qiáng)制覆蓋已存在role

-f, --force
install

使用要安裝的args列表贡羔,除去規(guī)定的-f,roles列表可以是一個(gè)名字(將通過(guò)galaxy API and github下載)或者本地的tar.gz文件个初。

強(qiáng)制覆蓋已存在role

-f, --force

打包role時(shí)乖寒,請(qǐng)使用tar而不是scm archive選項(xiàng)

-g, --keep-scm-meta

忽略錯(cuò)誤并繼續(xù)下一個(gè)指定的role

-i, --ignore-errors

不要下載作為依賴項(xiàng)列出的role

-n, --no-deps

包含roles的目錄的路徑,默認(rèn)值roles_path配置在ansible.cfg文件里面(沒(méi)有配置,則為/etc/ansible/roles)

-p, --roles-path

包含要導(dǎo)入的role列表的文件

-r <ROLE_FILE>, --role-file <ROLE_FILE>
import

用于將role導(dǎo)入Ansible Galaxy

要導(dǎo)入的分支的名稱院溺。默認(rèn)為存儲(chǔ)庫(kù)的默認(rèn)分支(通常為master)

--branch <REFERENCE>

無(wú)需等待導(dǎo)入結(jié)果

--no-wait

如果role的名稱與repo名稱不同,則role名稱必須指定

--role-name <ROLE_NAME>

檢查指定github_user/github_repo的最新導(dǎo)入請(qǐng)求的狀態(tài)楣嘁。

--status
login

通過(guò)Github驗(yàn)證用戶的身份,并從Ansible Galaxy中檢索身份驗(yàn)證令牌.

使用github token 而不是用戶名和密碼進(jìn)行驗(yàn)證。

--github-token <TOKEN>
delete

從ansible galaxy刪除role

環(huán)境

可以指定以下環(huán)境變量马澈。

ANSIBLE_CONFIG-覆蓋默認(rèn)的ansible配置文件

對(duì)于ansible.cfg中的大多數(shù)選項(xiàng)瓢省,還有更多選項(xiàng)可用。

配置文件命令

/etc/ansible/ansible.cfg 配置文件痊班,如果存在則使用勤婚。

~/.ansible.cfg 用戶配置文件,如果存在則覆蓋默認(rèn)配置涤伐。

ansible-inventory

范例

ansible-inventory [options] [host|group]

說(shuō)明

用于顯示或者dump inventory配置就像ansible看的那樣

選項(xiàng)

詢問(wèn)vault密碼

--ask-vault-pass

當(dāng)使用--list的時(shí)候馒胆,優(yōu)化后導(dǎo)出的一種方式表現(xiàn),而不是Ansible如何處理它的準(zhǔn)確表示

--export

由于ansible-console命令不使用playbooks凝果,因此將其用作替代playbook目錄祝迂。這將設(shè)置許多功能的相對(duì)路徑,包括roles/ group_vars/ 等.

--playbook-dir <BASEDIR>

將vars添加到圖形顯示中,除非與-graph一起使用否則忽略

--vars

使用vault標(biāo)識(shí)

--vault-id

vault密碼文件

--vault-password-file

版本號(hào)

--version

幫助信息

-h, --help

指定inventory 主機(jī)路徑或者逗號(hào)分隔的主機(jī)列表器净。--inventory-file被棄用

-i, --inventory, --inventory-file

詳細(xì)模式(-vvv表示更多型雳,-vvvv表示啟用連接調(diào)試)

-v, --verbose

使用yaml格式替換默認(rèn)的json,-graph下忽略

-y, --yaml

動(dòng)作

必須在調(diào)用時(shí)使用以下其中一個(gè)山害,只有一個(gè)纠俭!

創(chuàng)建inventory圖模式,如果提供該模式浪慌,則它必須是有效的組名

--graph

輸出特定主機(jī)信息冤荆,作為inventory腳本

--host <HOST>

輸出所有主機(jī)信息,作為inventory腳本

--list

環(huán)境

可以指定以下環(huán)境變量权纤。

ANSIBLE_CONFIG-覆蓋默認(rèn)的ansible配置文件

對(duì)于ansible.cfg中的大多數(shù)選項(xiàng)钓简,還有更多選項(xiàng)可用。

配置文件

/etc/ansible/ansible.cfg 配置文件汹想,如果存在則使用外邓。

~/.ansible.cfg 用戶配置文件,如果存在則覆蓋默認(rèn)配置欧宜。

ansible-playbook命令

范例

ansible-playbook [options] playbook.yml [playbook2 ...]

說(shuō)明

這個(gè)工具用來(lái)運(yùn)行Ansible playbooks坐榆,它是一個(gè)配置和多節(jié)點(diǎn)部署系統(tǒng)

選項(xiàng)

詢問(wèn)su密碼(棄用拴魄,使用become)

--ask-su-pass

詢問(wèn)sudo密碼(棄用冗茸,使用become)

--ask-sudo-pass

詢問(wèn)vault密碼

--ask-vault-pass

使用的提權(quán)方法(默認(rèn)= sudo),有效值 [ sudo | su | pbrun | pfexec | doas | dzdo | ksu | runas | pmrun | enable | machinectl ]

--become-method <BECOME_METHOD>

使用該用戶運(yùn)行,默認(rèn)值為root

--become-user <BECOME_USER>

清除在inventory里面每臺(tái)主機(jī)的真實(shí)緩存

--flush-cache

及時(shí)task失敗仍然執(zhí)行handlers

--force-handlers

輸出匹配的主機(jī)列表匹中,不會(huì)執(zhí)行任何其他操作

--list-hosts

列出所有可用的標(biāo)簽

--list-tags

列出將要執(zhí)行所有tasks

--list-tasks

指定文件進(jìn)行連接認(rèn)證

--private-key, --key-file

指定僅傳遞給scp的額外參數(shù)(例如-l)

--scp-extra-args <SCP_EXTRA_ARGS>

指定僅傳遞給sftp的額外參數(shù)(例如-f夏漱,-l)

--sftp-extra-args <SFTP_EXTRA_ARGS>

指定傳遞給sftp / scp / ssh的公共參數(shù)(例如ProxyCommand)

--ssh-common-args <SSH_COMMON_ARGS>

僅運(yùn)行其標(biāo)簽與這些值不匹配的play和tasks

--skip-tags

指定僅傳遞給ssh的額外參數(shù)(例如-R)

--ssh-extra-args <SSH_EXTRA_ARGS>

在匹配此名稱的任務(wù)中啟動(dòng)playbook

--start-at-task <START_AT_TASK>

一步步執(zhí)行:在運(yùn)行前確認(rèn)每項(xiàng)任務(wù)

--step

語(yǔ)法檢查,但是不會(huì)執(zhí)行

--syntax-check

使用vault標(biāo)識(shí)

--vault-id

指定vault密碼文件

--vault-password-file

顯示版本號(hào)

--version

不做任何改變; 相反顶捷,嘗試預(yù)測(cè)可能發(fā)生的一些變化

-C, --check

更改(泄掖隆)文件和模板時(shí),顯示這些文件的差異; 與-check配合更好

-D, --diff

詢問(wèn)become密碼

-K, --ask-become-pass

將冒號(hào)分隔的路徑預(yù)先添加到模塊庫(kù) (默認(rèn)值=[u’/home/jenkins/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’])

-M, --module-path

以su作為此用戶運(yùn)行操作(默認(rèn)=None)(棄用,使用become)

-R <SU_USER>, --su-user <SU_USER>

用su運(yùn)行操作(棄用葵蒂,使用become)

-S, --su

以秒為單位覆蓋連接超時(shí)(默認(rèn)值=10)

-T <TIMEOUT>, --timeout <TIMEOUT>

期望sudo用戶(默認(rèn)= root)(棄用交播,使用become)

-U <SUDO_USER>, --sudo-user <SUDO_USER>

使用become操作,并不意味密碼提示

-b, --become

連接類(lèi)型(默認(rèn)值=smart)

-c <CONNECTION>, --connection <CONNECTION>

設(shè)置額外變量為key=value或者json践付、yaml秦士,如果文件名預(yù)置為@

-e, --extra-vars

指定并行處理數(shù),(默認(rèn)值=5)

-f <FORKS>, --forks <FORKS>

顯示幫助信息

-h, --help

指定inventory主機(jī)路徑或逗號(hào)分隔的主機(jī)列表永高。--inventory-file已棄用

-i, --inventory, --inventory-file

詢問(wèn)連接密碼

-k, --ask-pass

進(jìn)一步限制所選主機(jī)為額外模式

-l <SUBSET>, --limit <SUBSET>

使用sudo操作(無(wú)密碼)(已棄用隧土,使用become)

-s, --sudo

僅運(yùn)行使用這些值標(biāo)記的play和tasks


以此用戶身份連接(默認(rèn)=None)

-u <REMOTE_USER>, --user <REMOTE_USER>

詳細(xì)模式(-vvv表示更多,-vvvv表示啟用連接調(diào)試)

-v, --verbose

環(huán)境

可以指定以下環(huán)境變量命爬。

ANSIBLE_CONFIG-覆蓋默認(rèn)的ansible配置文件

對(duì)于ansible.cfg中的大多數(shù)選項(xiàng)曹傀,還有更多選項(xiàng)可用。

配置文件

/etc/ansible/ansible.cfg 配置文件饲宛,如果存在則使用皆愉。

~/.ansible.cfg 用戶配置文件,如果存在則覆蓋默認(rèn)配置艇抠。

ansible-pull命令

范例

ansible-pull -U <repository> [options] [<playbook.yml>]

說(shuō)明

ansible-pull用于在每個(gè)受管節(jié)點(diǎn)上啟動(dòng)ansible的遠(yuǎn)程副本亥啦,每個(gè)設(shè)置通過(guò)cron運(yùn)行,并通過(guò)源repository更新playbook源。這將ansible的默認(rèn)推送架構(gòu)反轉(zhuǎn)為拉去架構(gòu)练链,該架構(gòu)具有接近無(wú)限的擴(kuò)展?jié)摿Α?/p>

可以調(diào)整設(shè)置playbook來(lái)改變cron頻率翔脱、記錄位置和參數(shù)更改為ansible-pull。這對(duì)于極端橫向擴(kuò)展和定期修復(fù)都很有用媒鼓。使用'fetch'模塊從ansible-pull運(yùn)行中檢索日志將是從ansible-pull收集和分析遠(yuǎn)程日志的一種很好的方法届吁。

選項(xiàng)

如果尚未添加,則為repo url添加hostkey绿鸣。

--accept-host-key

詢問(wèn)su密碼(棄用疚沐,使用become)

--ask-su-pass

詢問(wèn)sudo密碼(棄用,使用become)

--ask-sudo-pass

詢問(wèn)vault密碼

--ask-vault-pass

不做任何改變; 相反潮模,嘗試預(yù)測(cè)可能發(fā)生的一些變化

--check

工作repository 中的已修改文件將被丟棄

--clean

做一個(gè)完整的克隆亮蛔,而不是淺的克隆。

--full

輸出匹配主機(jī)列表;不會(huì)執(zhí)行任何其他操作

--list-hosts

指定文件進(jìn)行連接認(rèn)證

--private-key, --key-file

playbook完成后清除檢出

--purge

指定僅傳遞給scp的額外參數(shù)(例如-l)

--scp-extra-args <SCP_EXTRA_ARGS>

指定僅傳遞給sftp的額外參數(shù)(例如-f擎厢,-l)

--sftp-extra-args <SFTP_EXTRA_ARGS>

指定傳遞給sftp / scp / ssh的公共參數(shù)(例如ProxyCommand)

--ssh-common-args <SSH_COMMON_ARGS>

僅運(yùn)行其標(biāo)簽與這些值不匹配的play和tasks

--skip-tags

指定僅傳遞給ssh的額外參數(shù)(例如-R)

--ssh-extra-args <SSH_EXTRA_ARGS>

子模塊將跟蹤最新的更改究流。這相當(dāng)于為git子模塊更新指定-remote標(biāo)志

--track-subs

使用vault標(biāo)識(shí)

--vault-id

vault密碼文件

--vault-password-file

驗(yàn)證簽出提交的GPG簽名,如果失敗則中止運(yùn)行playbook动遭。這需要相應(yīng)的VCS模塊來(lái)支持這種操作

--verify-commit

版本號(hào)

--version

指定檢出行為為branch/tag/commit芬探,默認(rèn)為repository 模塊的行為

-C <CHECKOUT>, --checkout <CHECKOUT>

詢問(wèn)become密碼

-K, --ask-become-pass

將冒號(hào)分隔的路徑預(yù)先添加到模塊庫(kù) (默認(rèn)值=[u’/home/jenkins/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’])

-M, --module-path

以秒為單位覆蓋連接超時(shí)(默認(rèn)值=10)

-T <TIMEOUT>, --timeout <TIMEOUT>

playbook repository的url

-U <URL>, --url <URL>

連接類(lèi)型(默認(rèn)值=smart)

-c <CONNECTION>, --connection <CONNECTION>

檢出repository 目標(biāo)目錄

-d <DEST>, --directory <DEST>

設(shè)置額外變量為key=value或者json、yaml厘惦,如果文件名預(yù)置為@

-e, --extra-vars

即使無(wú)法更新存儲(chǔ)庫(kù)偷仿,也要運(yùn)行playbook

-f, --force

顯示幫助信息

-h, --help

指定inventory主機(jī)路徑或逗號(hào)分隔的主機(jī)列表。--inventory-file已棄用

-i, --inventory, --inventory-file

詢問(wèn)連接密碼

-k, --ask-pass

進(jìn)一步限制所選主機(jī)為額外模式

-l <SUBSET>, --limit <SUBSET>

Repository 模塊名稱,ansible將用于檢出存儲(chǔ)庫(kù)酝静。選擇是('git'节榜,'subversion','hg'别智,'bzr')全跨。默認(rèn)是git。

-m <MODULE_NAME>, --module-name <MODULE_NAME>

如果存儲(chǔ)庫(kù)已更新亿遂,則運(yùn)行playbook

-o, --only-if-changed

在開(kāi)始之前以隨機(jī)間隔(在0到n秒之間)休眠浓若。這是分散git請(qǐng)求的有用方法

-s <SLEEP>, --sleep <SLEEP>

僅運(yùn)行使用這些值標(biāo)記的play和tasks

-t, --tags

設(shè)置連接用戶(默認(rèn)值=None)

-u <REMOTE_USER>, --user <REMOTE_USER>

詳細(xì)模式(-vvv表示更多,-vvvv表示啟用連接調(diào)試)

-v, --verbose

環(huán)境

可以指定以下環(huán)境變量蛇数。

ANSIBLE_CONFIG-覆蓋默認(rèn)的ansible配置文件

對(duì)于ansible.cfg中的大多數(shù)選項(xiàng)挪钓,還有更多選項(xiàng)可用。

配置文件

/etc/ansible/ansible.cfg 配置文件耳舅,如果存在則使用碌上。

~/.ansible.cfg 用戶配置文件,如果存在則覆蓋默認(rèn)配置浦徊。

ansible-vault命令

范例

ansible-vault [create|decrypt|edit|encrypt|encrypt_string|rekey|view] [options] [vaultfile.yml]

說(shuō)明

可以加密Ansible使用的任何結(jié)構(gòu)化數(shù)據(jù)文件馏予。這可以包括group_vars/或host_vars/ inventory變量,由include_vars或vars_files加載的變量盔性,或使用-e @file.yml或-e @file.json在ansible-playbook命令行上傳遞的變量文件霞丧。角色變量和默認(rèn)值也包括在內(nèi)。

因?yàn)锳nsible tasks冕香,handlers和其他objects 都是數(shù)據(jù)蛹尝,這些也可以用Vault加密。如果您不想公開(kāi)正在使用的變量悉尾,可以將單個(gè)任務(wù)文件保持為完全加密突那。

當(dāng)前對(duì)所有你想一起使用的采用vault的密碼必須一樣。

選項(xiàng)

詢問(wèn)vault密碼

--ask-vault-pass

用于秘鑰更新采用新的vault標(biāo)識(shí)

--new-vault-id <NEW_VAULT_ID>

用于秘鑰更新的新vault密碼文件

--new-vault-password-file

使用vault標(biāo)識(shí)

--vault-id

vault密碼文件

--vault-password-file

版本號(hào)

--version

幫助信息

-h, --help

詳細(xì)模式(-vvv表示更多构眯,-vvvv表示啟用連接調(diào)試)

-v, --verbose

動(dòng)作

encrypt

使用提供的vault秘密加密指定文件愕难。

用于加密的vault標(biāo)識(shí),(如果提供了更多的vault-id惫霸,則需要)

--encrypt-vault-id <ENCRYPT_VAULT_ID>

加密或解密的輸出文件名,使用 - 用于標(biāo)準(zhǔn)輸出

--output
rekey

使用新密碼重新加密存儲(chǔ)文件猫缭,需要先前的密碼

用于加密的vault ID(如果提供了更多的vault-id,則需要)

--encrypt-vault-id <ENCRYPT_VAULT_ID>
encrypt_string

使用提供的vault加密指定字符串它褪。

用于加密的vault標(biāo)識(shí)饵骨,(如果提供了更多的vault-id翘悉,則需要)

--encrypt-vault-id <ENCRYPT_VAULT_ID>

加密或解密的輸出文件名,使用 - 用于標(biāo)準(zhǔn)輸出

--output

指定stdin的變量名稱

--stdin-name <ENCRYPT_STRING_STDIN_NAME>

指定變量名稱

-n, --name

提示字符串加密

-p, --prompt
edit

在編輯器中打開(kāi)并解密現(xiàn)有的存儲(chǔ)文件茫打,關(guān)閉后將再次加密

用于加密的vault標(biāo)識(shí),(如果提供了更多的vault-id,則需要)

--encrypt-vault-id <ENCRYPT_VAULT_ID>
create

在編輯器中創(chuàng)建并打開(kāi)一個(gè)文件老赤,該文件將在關(guān)閉時(shí)使用提供的vault加密

decrypt

使用提供的vault解密指定字符串轮洋。

加密或解密的輸出文件名,使用 - 用于標(biāo)準(zhǔn)輸出

--output
view

打開(kāi)、解密并查看一個(gè)已存在vault并使用尋呼使用提供vault密碼

環(huán)境

可以指定以下環(huán)境變量抬旺。

ANSIBLE_CONFIG-覆蓋默認(rèn)的ansible配置文件

對(duì)于ansible.cfg中的大多數(shù)選項(xiàng)弊予,還有更多選項(xiàng)可用。

配置文件

/etc/ansible/ansible.cfg 配置文件开财,如果存在則使用汉柒。

~/.ansible.cfg 用戶配置文件,如果存在則覆蓋默認(rèn)配置责鳍。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碾褂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子历葛,更是在濱河造成了極大的恐慌正塌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恤溶,死亡現(xiàn)場(chǎng)離奇詭異乓诽,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)咒程,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)鸠天,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人帐姻,你說(shuō)我怎么就攤上這事粮宛。” “怎么了卖宠?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵巍杈,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我扛伍,道長(zhǎng)筷畦,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任刺洒,我火速辦了婚禮鳖宾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逆航。我一直安慰自己鼎文,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布因俐。 她就那樣靜靜地躺著拇惋,像睡著了一般周偎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上撑帖,一...
    開(kāi)封第一講書(shū)人閱讀 49,031評(píng)論 1 285
  • 那天蓉坎,我揣著相機(jī)與錄音,去河邊找鬼胡嘿。 笑死蛉艾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的衷敌。 我是一名探鬼主播勿侯,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼缴罗!你這毒婦竟也來(lái)了罐监?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瞒爬,失蹤者是張志新(化名)和其女友劉穎弓柱,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體侧但,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡矢空,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了禀横。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屁药。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖柏锄,靈堂內(nèi)的尸體忽然破棺而出酿箭,到底是詐尸還是另有隱情,我是刑警寧澤趾娃,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布缭嫡,位于F島的核電站,受9級(jí)特大地震影響抬闷,放射性物質(zhì)發(fā)生泄漏妇蛀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一笤成、第九天 我趴在偏房一處隱蔽的房頂上張望评架。 院中可真熱鬧,春花似錦炕泳、人聲如沸纵诞。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)浙芙。三九已至登刺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間茁裙,已是汗流浹背塘砸。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工节仿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晤锥,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓廊宪,卻偏偏與公主長(zhǎng)得像矾瘾,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子箭启,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345