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)配置责鳍。