国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

建設(shè)銀行網(wǎng)站是多少錢成都網(wǎng)站優(yōu)化排名

建設(shè)銀行網(wǎng)站是多少錢,成都網(wǎng)站優(yōu)化排名,柳州建設(shè)廳官方網(wǎng)站,臺(tái)式電腦做網(wǎng)站服務(wù)器目錄 一. 本地執(zhí)行 二. 任務(wù)委托 三. 任務(wù)暫停 四. 滾動(dòng)執(zhí)行 五. 只執(zhí)行一次 六. 設(shè)置環(huán)境變量 七. 交互提示 一. 本地執(zhí)行 我們知道ansible的是操作被控端的,所有執(zhí)行的動(dòng)作都是在被控端上完成的,當(dāng)然在某些特定的時(shí)候我們想要有些tas…

目錄

一.? 本地執(zhí)行

二.? 任務(wù)委托?

三.? 任務(wù)暫停

四.? 滾動(dòng)執(zhí)行

五.? 只執(zhí)行一次

六.? 設(shè)置環(huán)境變量

七.? 交互提示?


一.? 本地執(zhí)行

? ? ? ? ?我們知道ansible的是操作被控端的,所有執(zhí)行的動(dòng)作都是在被控端上完成的,當(dāng)然在某些特定的時(shí)候我們想要有些tasks在本地(控制端)執(zhí)行,這時(shí)我們就需要使用local_action語句。

? ? ? ? 前面我們提到過lookup的用法就是在控制端執(zhí)行指令,將返回結(jié)果存儲(chǔ)到變量中。然而我們的本地執(zhí)行(local_action)也可以這樣做,其實(shí)這樣的用法也是最多的。

示例1: 通過local_action語句,獲取控制端的信息,并存儲(chǔ)為變量。

? ? ? ? ?local_action語句的用法是 connection: local 關(guān)鍵字

[root@clinet include]# cat local_action.yml 
- hosts: testgather_facts: no tasks:- name: local action infoshell: cmd: cat /tmp/1.txtregister: system_info connection: local- name: debug info debug:msg: - "{{ system_info.stdout }}"- "{{ inventory_hostname  }}"
[root@clinet include]# 
[root@clinet include]#

?執(zhí)行結(jié)果:

[root@clinet ansible_2]# ansible-playbook yum_file/include/local_action.yml PLAY [test] *********************************************************************************************************************************************************************************************TASK [local action info] ********************************************************************************************************************************************************************************
changed: [192.168.194.129]TASK [debug info] ***************************************************************************************************************************************************************************************
ok: [192.168.194.129] => {"msg": ["client", "192.168.194.129"]
}PLAY RECAP **********************************************************************************************************************************************************************************************
192.168.194.129            : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   [root@clinet ansible_2]# 

二.? 任務(wù)委托?

????????在有些時(shí)候,我們希望運(yùn)行與選定的主機(jī)或主機(jī)組相關(guān)聯(lián)的task,但是這個(gè)task又不需要在選定的主 機(jī)或主機(jī)組上執(zhí)行,而需要在另一臺(tái)服務(wù)器上執(zhí)行。

這種特性適用于以下場景:

·? 在告警系統(tǒng)中啟用基于主機(jī)的告警

·? 向負(fù)載均衡器中添加或移除一臺(tái)主機(jī)

·? 在dns上添加或修改針對(duì)某個(gè)主機(jī)的解析

·? 在存儲(chǔ)節(jié)點(diǎn)上創(chuàng)建一個(gè)存儲(chǔ)以用于主機(jī)掛載

·? 使用一個(gè)外部程序來檢測主機(jī)上的服務(wù)是否正常

使用delegate_to語句來在另一臺(tái)主機(jī)上運(yùn)行task:

‐ name: enable alerts for web servershosts: 192.168.194.129tasks:‐ name: enable alertsnagios: action:enable_alerts service:web host:"{{ inventory_hostname }}"delegate_to: 192.168.194.130

?如果delegate_to: 127.0.0.1的時(shí)候,等價(jià)于local_action

三.? 任務(wù)暫停

????????有些情況下,一些任務(wù)的運(yùn)行需要等待一些狀態(tài)的恢復(fù),比如某一臺(tái)主機(jī)或者應(yīng)用剛剛重啟,我們需 要需要等待它上面的某個(gè)端口開啟,此時(shí)就需要將正在運(yùn)行的任務(wù)暫停,直到其狀態(tài)滿足要求。 Ansible提供了wait_for模塊以實(shí)現(xiàn)任務(wù)暫停的需求。

參數(shù)說明
connect_timeout在下一個(gè)任務(wù)執(zhí)行之前等待連接的超時(shí)時(shí)間
delay等待一個(gè)端口或者文件或者連接到指定的狀態(tài)時(shí),默認(rèn)超時(shí)時(shí)間為300秒,在這等待的 300s的時(shí)間里,wait_for模塊會(huì)一直輪詢指定的對(duì)象是否到達(dá)指定的狀態(tài),delay即為多長時(shí)間 輪詢一次狀態(tài)。
hostwait_for模塊等待的主機(jī)的地址,默認(rèn)為127.0.0.1
portwait_for模塊待待的主機(jī)的端口
path文件路徑,只有當(dāng)這個(gè)文件存在時(shí),下一任務(wù)才開始執(zhí)行,即等待該文件創(chuàng)建完成
state等待的狀態(tài),即等待的文件或端口或者連接狀態(tài)達(dá)到指定的狀態(tài)時(shí),下一個(gè)任務(wù)開始執(zhí) 行。當(dāng)?shù)鹊膶?duì)象為端口時(shí),狀態(tài)有started,stoped,即端口已經(jīng)監(jiān)聽或者端口已經(jīng)關(guān)閉;當(dāng)?shù)?待的對(duì)象為文件時(shí),狀態(tài)有present或者started,absent,即文件已創(chuàng)建或者刪除;當(dāng)?shù)却膶?duì) 象為一個(gè)連接時(shí),狀態(tài)有drained,即連接已建立。默認(rèn)為started
timeoutwait_for的等待的超時(shí)時(shí)間,默認(rèn)為300秒

示例:

#等待8080端口已正常監(jiān)聽,才開始下一個(gè)任務(wù),直到超時(shí),默認(rèn)等待超時(shí)時(shí)間為300s
‐ wait_for:port: 8080state: started#等待8000端口正常監(jiān)聽,每隔10s檢查一次,直至等待超時(shí)
‐ wait_for:port: 8000delay: 10#等待8000端口直至有連接建立
‐ wait_for:host: 0.0.0.0port: 8000delay: 10state: drained#等待8000端口有連接建立,如果連接來自10.2.1.2或者10.2.1.3,則忽略。
‐ wait_for:host: 0.0.0.0port: 8000state: drainedexclude_hosts: 10.2.1.2,10.2.1.3# 等待/tmp/foo文件被創(chuàng)建在繼續(xù)執(zhí)行
- name: Wait until the file /tmp/foo is present before continuingansible.builtin.wait_for:path: /tmp/foo# 等待/tmp/foo文件被創(chuàng)建,且文件中包含completed,在繼續(xù)執(zhí)行
- name: Wait until the string "completed" is in the file /tmp/foo before continuingansible.builtin.wait_for:path: /tmp/foosearch_regex: completed# 等待/tmp/foo文件中能匹配到completed 
- name: Wait until regex pattern matches in the file /tmp/foo and print the matched groupansible.builtin.wait_for:path: /tmp/foosearch_regex: completed (?P<task>\w+)register: waitfor
- ansible.builtin.debug:msg: Completed {{ waitfor['match_groupdict']['task'] }}# 等/var/lock/file.lock被刪除
- name: Wait until the lock file is removedansible.builtin.wait_for:path: /var/lock/file.lockstate: absent# 等進(jìn)程結(jié)束
- name: Wait until the process is finished and pid was destroyedansible.builtin.wait_for:path: /proc/3466/statusstate: absent# 失敗時(shí)輸出自定義的msg信息
- name: Output customized message when failedansible.builtin.wait_for:path: /tmp/foostate: presentmsg: Timeout to find file /tmp/foo#在本地執(zhí)行,等host中的主機(jī)的openssh啟動(dòng),每10s檢查一次,300s超時(shí)
# Do not assume the inventory_hostname is resolvable and delay 10 seconds at start
- name: Wait 300 seconds for port 22 to become open and contain "OpenSSH"ansible.builtin.wait_for:port: 22host: '{{ (ansible_ssh_host|default(ansible_host))|default(inventory_hostname) }}'search_regex: OpenSSHdelay: 10connection: local# Same as above but you normally have ansible_connection set in inventory, which overrides 'connection'
- name: Wait 300 seconds for port 22 to become open and contain "OpenSSH"ansible.builtin.wait_for:port: 22host: '{{ (ansible_ssh_host|default(ansible_host))|default(inventory_hostname) }}'search_regex: OpenSSHdelay: 10vars:ansible_connection: local

四.? 滾動(dòng)執(zhí)行

????????默認(rèn)情況下,ansible會(huì)并行的在所有選定的主機(jī)或主機(jī)組上執(zhí)行每一個(gè)task,但有的時(shí)候,我們會(huì)希 望能夠逐臺(tái)運(yùn)行。最典型的例子就是對(duì)負(fù)載均衡器后面的應(yīng)用服務(wù)器進(jìn)行更新時(shí)。通常來講,我們會(huì) 將應(yīng)用服務(wù)器逐臺(tái)從負(fù)載均衡器上摘除,更新,然后再添加回去。我們可以在play中使用serial語句 來告訴ansible限制并行執(zhí)行play的主機(jī)數(shù)量。

- hosts: allgather_facts: noserial: 1

?在上述示例中,serial的值為1,即表示在某一個(gè)時(shí)間段內(nèi),play只在一臺(tái)主機(jī)上執(zhí)行。如果為2,則 同時(shí)有2臺(tái)主機(jī)運(yùn)行play。

一般來講,當(dāng)task失敗時(shí),ansible會(huì)停止執(zhí)行失敗的那臺(tái)主機(jī)上的任務(wù),但是繼續(xù)對(duì)其他 主機(jī)執(zhí) 行。在負(fù)載均衡的場景中,我們會(huì)更希望ansible在所有主機(jī)執(zhí)行失敗之前就讓play停止,否則很可能 會(huì)面臨所有主機(jī)都從負(fù)載均衡器上摘除并且都執(zhí)行失敗導(dǎo)致服務(wù)不可用的場景。這個(gè)時(shí)候,我們可以 使用serial語句配合max_fail_percentage語句使用。 max_fail_percentage 表示當(dāng)最大失敗主機(jī)的比 例達(dá)到多少時(shí),ansible就讓整個(gè)play失敗。示例如下:

- hosts: allgather_facts: noserial: 1max_fail_percentage: 25

?假如負(fù)載均衡后面有4臺(tái)主機(jī),并且有一臺(tái)主機(jī)執(zhí)行失敗,這時(shí)ansible還會(huì)繼續(xù)運(yùn)行,要讓Play停止 運(yùn)行,則必須超過25%,所以如果想一臺(tái)失敗就停止執(zhí)行,我們可以將max_fail_percentage的值設(shè) 為24。如果我們希望只要有執(zhí)行失敗,就放棄執(zhí)行,我們可以將max_fail_percentage的值設(shè)為0。

五.? 只執(zhí)行一次

某些時(shí)候,我們希望某個(gè)task只執(zhí)行一次,即使它被綁定到了多個(gè)主機(jī)上。例如在一個(gè)負(fù)載均衡器后 面有多臺(tái)應(yīng)用服務(wù)器,我們希望執(zhí)行一個(gè)數(shù)據(jù)庫遷移,只需要在一個(gè)應(yīng)用服務(wù)器上執(zhí)行操作即可。

可以使用run_once語句來處理:

‐ name: run the database migrateionscommand: /opt/run_migrateionsrun_once: true

還可以與local_action配合使用,如下:

‐ name: run the task locally, only oncecommand: /opt/my‐custom‐commandconnection: localrun_once: true

?還可以與delegate_to配合使用,讓這個(gè)只執(zhí)行一次的任務(wù)在指定的機(jī)器上運(yùn)行:

‐ name: run the task locally, only oncecommand: /opt/my‐custom‐commandrun_once: truedelegate_to: app.a1‐61‐105.dev.unp

六.? 設(shè)置環(huán)境變量

????????在命令行下執(zhí)行某些命令的時(shí)候,這些命令可能會(huì)需要依賴環(huán)境變量。比如在安裝某些包的時(shí) 候,可能需要通過代理才能完成完裝。或者某個(gè)腳本可能需要調(diào)用某個(gè)環(huán)境變量才能完成運(yùn)行。 ansible 支持通過 environment 關(guān)鍵字來定義一些環(huán)境變量。

在如下場景中可能需要用到環(huán)境變量:

·? 運(yùn)行shell的時(shí)候,需要設(shè)置path變量

·? 需要加載一些庫,這些庫不在系統(tǒng)的標(biāo)準(zhǔn)庫路徑當(dāng)中

示例:

‐ hosts: testtasks:‐ name: install pipyum:name: python‐pipstate: installed‐ name: install the aws toolspip:name: awsclistate: present‐ name upload file to s3shell: aws s3 put‐object ‐‐bucket=my‐test‐bucket ‐‐key={{ ansible_hostname }}/fstab ‐‐body=/etc/fstab ‐‐region=eu‐west‐1environment:AWS_ACCESS_KEY_ID: xxxxxxAWS_SECRET_ACCESS_KEY: xxxxxx

?事實(shí)上,environment也可以存儲(chǔ)在變量當(dāng)中:

‐ hosts: allremote_user: rootvars:proxy_env:http_proxy: http://proxy.example.com:8080https_proxy: http://proxy.bos.example.com:8080tasks:‐ name:  infoapt: name:cobbler state:installedenvironment: proxy_env

七.? 交互提示?

?在少數(shù)情況下,ansible任務(wù)運(yùn)行的過程中需要用戶輸入一些數(shù)據(jù),這些數(shù)據(jù)要么比較秘密不方便, 或者數(shù)據(jù)是動(dòng)態(tài)的,不同的用戶有不同的需求,比如輸入用戶自己的賬戶和密碼或者輸入不同的版本 號(hào)會(huì)觸發(fā)不同的后續(xù)操作等。ansible的vars_prompt關(guān)鍵字就是用來處理上述這種與用戶交互的情況 的。

- hosts: testvars_prompt:- name: share_userprompt: "what is your network username?"private: yes- name: share_passprompt: "what is your network password"private: yestasks:- name: debug info1debug:var: share_user- name: debug info2debug:var: share_pass

?vars_prompt常用選項(xiàng)說明:

? ? ? ? ·? private: 默認(rèn)為yes,表示用戶輸入的值在命令行不可見

? ? ? ? ·? default:定義默認(rèn)值,當(dāng)用戶未輸入時(shí)則使用默認(rèn)值

? ? ? ? ·? confirm:如果設(shè)置為yes,則會(huì)要求用戶輸入兩次,適合輸入密碼的情況


?

http://aloenet.com.cn/news/46468.html

相關(guān)文章:

  • 游戲類網(wǎng)站怎么做長春模板建站代理
  • 廣州網(wǎng)站制作有什么平臺(tái)可以推廣
  • 一個(gè)網(wǎng)站按鈕怎么做今日頭條號(hào)官網(wǎng)
  • 什么網(wǎng)站可以用視頻做背景域名收錄查詢工具
  • 全國軟件公司排名seo還有用嗎
  • 做一個(gè)b2c網(wǎng)站網(wǎng)址關(guān)鍵詞查詢
  • 電信電信網(wǎng)站備案系統(tǒng)在線網(wǎng)站建設(shè)平臺(tái)
  • 北京產(chǎn)品網(wǎng)站設(shè)計(jì)哪家專業(yè)超級(jí)外鏈工具
  • 做網(wǎng)站的公司風(fēng)險(xiǎn)大不大濟(jì)南seo小黑seo
  • 網(wǎng)站回答問題app怎么做頭條發(fā)布視頻成功顯示404
  • 四川省紀(jì)委網(wǎng)站建設(shè)今日武漢最新消息
  • 西安網(wǎng)站建設(shè)云闊網(wǎng)絡(luò)熊掌號(hào)東莞seo報(bào)價(jià)
  • 便利的響應(yīng)式網(wǎng)站建設(shè)百度競價(jià)什么意思
  • 長治招聘網(wǎng)站建設(shè)百度推廣登錄平臺(tái)網(wǎng)址
  • 網(wǎng)站做記錄訪客百度貼吧網(wǎng)頁版
  • 網(wǎng)站子域名查詢怎么注冊中視頻賬號(hào)
  • 做網(wǎng)站購買備案域名app怎么推廣運(yùn)營
  • 天津公司建設(shè)網(wǎng)站外貿(mào)獨(dú)立站怎么做
  • 東營做網(wǎng)站公司東莞做網(wǎng)站公司首選
  • 網(wǎng)站建設(shè)教程培訓(xùn)做網(wǎng)站用什么軟件
  • 動(dòng)易醫(yī)院網(wǎng)站管理系統(tǒng)市場調(diào)研分析報(bào)告
  • 可以賺錢做任務(wù)的網(wǎng)站怎么投放廣告是最有效的
  • 滄州網(wǎng)站建設(shè)公司百度瀏覽器網(wǎng)頁
  • 網(wǎng)站建設(shè)需求表鏈接網(wǎng)
  • 公司網(wǎng)站建設(shè)費(fèi)用入什么費(fèi)用建設(shè)網(wǎng)站需要多少錢
  • 騰訊云域名價(jià)格seo神器
  • 國外著名購物網(wǎng)站排名關(guān)鍵詞排名零芯互聯(lián)排名
  • 做企業(yè)門戶網(wǎng)站都南寧網(wǎng)站快速排名提升
  • 重慶大渡口網(wǎng)站建設(shè)解決方案正規(guī)seo大概多少錢
  • 公司簡介模板300字安陽seo