ansible

安裝

apt-get install ansible

配置

cat /etc/ansible/hosts
[test]
10.10.10.0.2 ansible_ssh_user=root ansible_ssh_pass=361way.com

執(zhí)行

ansible test -a 'uptime'
ansible 10.10.10.0.2 -a 'date'

幫助

參數(shù):
  -a 'Arguments', --args='Arguments' 命令行參數(shù)
  -m NAME, --module-name=NAME 執(zhí)行模塊的名字,默認(rèn)使用 command 模塊,所以如果是只執(zhí)行單一命令可以不用 -m參數(shù)
  -i PATH, --inventory=PATH 指定庫(kù)存主機(jī)文件的路徑,默認(rèn)為/etc/ansible/hosts.
  -u Username, --user=Username 執(zhí)行用戶(hù),使用這個(gè)遠(yuǎn)程用戶(hù)名而不是當(dāng)前用戶(hù)
  -U --sud-user=SUDO_User  sudo到哪個(gè)用戶(hù),默認(rèn)為 root
  -k --ask-pass  登錄密碼,提示輸入SSH密碼而不是假設(shè)基于密鑰的驗(yàn)證
  -K --ask-sudo-pass 提示密碼使用sudo
  -s --sudo sudo運(yùn)行
  -S --su 用 su 命令
  -l  --list 顯示所支持的所有模塊
  -s --snippet 指定模塊顯示劇本片段
  -f  --forks=NUM 并行任務(wù)數(shù)。NUM被指定為一個(gè)整數(shù),默認(rèn)是5。 #ansible testhosts -a "/sbin/reboot" -f 10 重啟testhosts組的所有機(jī)器,每次重啟10臺(tái)
  --private-key=PRIVATE_KEY_FILE 私鑰路徑,使用這個(gè)文件來(lái)驗(yàn)證連接
  -v --verbose 詳細(xì)信息
  all  針對(duì)hosts 定義的所有主機(jī)執(zhí)行
  -M MODULE_PATH, --module-path=MODULE_PATH 要執(zhí)行的模塊的路徑,默認(rèn)為/usr/share/ansible/
  --list-hosts 只打印有哪些主機(jī)會(huì)執(zhí)行這個(gè) playbook 文件,不是實(shí)際執(zhí)行該 playbook 文件
  -o --one-line 壓縮輸出,摘要輸出.嘗試一切都在一行上輸出。
  -t Directory, --tree=Directory 將內(nèi)容保存在該輸出目錄,結(jié)果保存在一個(gè)文件中在每臺(tái)主機(jī)上。
  -B 后臺(tái)運(yùn)行超時(shí)時(shí)間
  -P 調(diào)查后臺(tái)程序時(shí)間
  -T Seconds, --timeout=Seconds 時(shí)間,單位秒s
  -P NUM, --poll=NUM 調(diào)查背景工作每隔數(shù)秒。需要- b
  -c Connection, --connection=Connection  連接類(lèi)型使用??赡艿倪x項(xiàng)是paramiko(SSH),SSH和地方。當(dāng)?shù)刂饕怯糜赾rontab或啟動(dòng)。
  --tags=TAGS 只執(zhí)行指定標(biāo)簽的任務(wù)    例子:ansible-playbook test.yml --tags=copy  只執(zhí)行標(biāo)簽為copy的那個(gè)任務(wù)
  --list-hosts 只打印有哪些主機(jī)會(huì)執(zhí)行這個(gè) playbook 文件,不是實(shí)際執(zhí)行該 playbook 文件
  --list-tasks 列出所有將被執(zhí)行的任務(wù)
  -C, --check 只是測(cè)試一下會(huì)改變什么內(nèi)容,不會(huì)真正去執(zhí)行;相反,試圖預(yù)測(cè)一些可能發(fā)生的變化
  --syntax-check 執(zhí)行語(yǔ)法檢查的劇本,但不執(zhí)行它
  -l SUBSET, --limit=SUBSET 進(jìn)一步限制所選主機(jī)/組模式  --limit=192.168.0.15 只對(duì)這個(gè)ip執(zhí)行
  --skip-tags=SKIP_TAGS 只運(yùn)行戲劇和任務(wù)不匹配這些值的標(biāo)簽  --skip-tags=copy_start
  -e EXTRA_VARS, --extra-vars=EXTRA_VARS  額外的變量設(shè)置為鍵=值或YAML / JSON
        #cat update.yml
        ---
        - hosts: {{ hosts }}
          remote_user: {{ user }}
        ..............
        #ansible-playbook update.yml --extra-vars "hosts=vipers user=admin"   傳遞{{hosts}}、{{user}}變量,hosts可以是 ip或組名
  -l,--limit 對(duì)指定的 主機(jī)/組 執(zhí)行任務(wù)  --limit=192.168.0.10,192.168.0.11 或 -l 192.168.0.10

hosts配置

ansible_ssh_host # 要連接的主機(jī)名
ansible_ssh_port # 端口號(hào)默認(rèn)是22
ansible_ssh_user # ssh連接時(shí)默認(rèn)使用的用戶(hù)名
ansible_ssh_pass # ssh連接時(shí)的密碼
ansible_sudo_pass # 使用sudo連接用戶(hù)是的密碼
ansible_ssh_private_key_file # 秘鑰文件如果不想使用ssh-agent管理時(shí)可以使用此選項(xiàng)
ansible_shell_type # shell的類(lèi)型默認(rèn)sh
ansible_connection # SSH 連接的類(lèi)型: local , ssh , paramiko在 ansible 1.2 之前默認(rèn)是 paramiko ,后來(lái)智能選擇,優(yōu)先使用基于 ControlPersist 的 ssh (支持的前提)
ansible_python _ interpreter #用來(lái)指定 python 解釋器的路徑,同樣可以指定ruby 、perl 的路徑

ansible.cfg 配置

/etc/ansible/ansible.cfg
[defaults]
# some basic default values...
hostfile       = /etc/ansible/hosts   \\指定默認(rèn)hosts配置的位置
# library_path = /usr/share/my_modules/
remote_tmp     = $HOME/.ansible/tmp
pattern        = *
forks          = 5
poll_interval  = 15
sudo_user      = root  \\遠(yuǎn)程sudo用戶(hù)
#ask_sudo_pass = True  \\每次執(zhí)行ansible命令是否詢(xún)問(wèn)ssh密碼
#ask_pass      = True  \\每次執(zhí)行ansible命令時(shí)是否詢(xún)問(wèn)sudo密碼
transport      = smart
remote_port    = 22
module_lang    = C
gathering = implicit
host_key_checking = False    \\關(guān)閉第一次使用ansible連接客戶(hù)端是輸入命令提示
log_path    = /var/log/ansible.log \\需要時(shí)可以自行添加。chown -R root:root ansible.log
system_warnings = False    \\關(guān)閉運(yùn)行ansible時(shí)系統(tǒng)的提示信息,一般為提示升級(jí)
# set plugin path directories here, separate with colons
action_plugins     = /usr/share/ansible_plugins/action_plugins
callback_plugins   = /usr/share/ansible_plugins/callback_plugins
connection_plugins = /usr/share/ansible_plugins/connection_plugins
lookup_plugins     = /usr/share/ansible_plugins/lookup_plugins
vars_plugins       = /usr/share/ansible_plugins/vars_plugins
filter_plugins     = /usr/share/ansible_plugins/filter_plugins
fact_caching = memory
[accelerate]
accelerate_port = 5099
accelerate_timeout = 30
accelerate_connect_timeout = 5.0
# The daemon timeout is measured in minutes. This time is measured
# from the last activity to the accelerate daemon.
accelerate_daemon_timeout = 30
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容