ansible之Playbook中tags使用

示例:httpd.yml
– hosts: websrvs
remote_user: root
tasks:
– name: Install httpd
yum: name=httpd state=present

– name: Install configure file
copy: src=files/httpd.conf dest=/etc/httpd/conf/
tags: conf

– name: start httpd service
tags: service
service: name=httpd state=started enabled=yes

ansible-playbook –t conf httpd.yml

如果想單獨的執行某一個動作,例如只是復制配置文件但是不重啟服務
tags就是給任務打個標簽,將來只運行標簽就可以,不要加空格
長格式 -tags 標簽名
短格式 -t 標簽名

[root@ansible ~]# vim httpd.conf
#Listen 12.34.56.78:80
Listen 82

修改httpd.yml
[root@ansible ~/ansible]# cat httpd.yml

– hosts: db
remote_user: root

tasks:
– name: install httpd
yum: name=httpd
– name: copy config file
copy: src=/root/httpd.conf dest=/etc/httpd/conf/ backup=yes
notify: restart httpd
tags: copyconf
– name: start httpd
service: name=httpd state=started enabled=yes
handlers:
– name: restart httpd
service: name=httpd state=restarted
[root@ansible ~/ansible]#

測試
[root@ansible ~/ansible]# ansible-playbook -t copyfile httpd.yml -C

[root@ansible ~/ansible]# ansible-playbook –tags copyconf -C httpd.yml

PLAY [db] **********************************************************************

TASK [Gathering Facts] *********************************************************
ok: [172.18.103.28]
ok: [172.18.103.29]

TASK [copy config file] ********************************************************
changed: [172.18.103.29]
ok: [172.18.103.28]

RUNNING HANDLER [restart httpd] ************************************************
changed: [172.18.103.29]

PLAY RECAP *********************************************************************
172.18.103.28 : ok=2 changed=0 unreachable=0 failed=0
172.18.103.29 : ok=3 changed=2 unreachable=0 failed=0

[root@ansible ~/ansible]#

執行
[root@ansible ~/ansible]# ansible-playbook –tags copyconf httpd.yml
PLAY RECAP *********************************************************************
172.18.103.28 : ok=2 changed=0 unreachable=0 failed=0
172.18.103.29 : ok=3 changed=2 unreachable=0 failed=0

查看執行結果
[root@ansible ~/ansible]# ansible 172.18.103.29 -m shell -a “cat /etc/httpd/conf/httpd.conf | grep ‘Listen 8′”
172.18.103.29 | SUCCESS | rc=0 >>
Listen 82

為方便使用可以添加多個標簽,支持下劃線
[root@ansible ~/ansible]# cat httpd.yml

– hosts: db
remote_user: root

tasks:
– name: install httpd
yum: name=httpd
tags: install
– name: copy config file
copy: src=/root/httpd.conf dest=/etc/httpd/conf/ backup=yes
tags: copyconf
notify: restart httpd
– name: start httpd
tags: start_httpd
service: name=httpd state=started enabled=yes
handlers:
– name: restart httpd
service: name=httpd state=restarted
[root@ansible ~/ansible]#

停止服務,使用tags測試
[root@ansible ~/ansible]# ansible db -m shell -a “systemctl stop httpd”
172.18.103.28 | SUCCESS | rc=0 >>
172.18.103.29 | SUCCESS | rc=0 >>

測試
[root@ansible ~/ansible]# ansible-playbook -t start_httpd httpd.yml

PLAY [db] ************************************************************************

TASK [Gathering Facts] **********************************************************
ok: [172.18.103.29]
ok: [172.18.103.28]

TASK [start httpd] ***************************************************************
ok: [172.18.103.29]
changed: [172.18.103.28]

PLAY RECAP *********************************************************************
172.18.103.28 : ok=2 changed=1 unreachable=0 failed=0
172.18.103.29 : ok=2 changed=0 unreachable=0 failed=0

[root@ansible ~/ansible]#

查看端口
[root@ansible ~/ansible]# ansible db -m shell -a “ss -ntl | grep 82”
172.18.103.29 | SUCCESS | rc=0 >>
LISTEN 0 128 :::82 :::*

172.18.103.28 | SUCCESS | rc=0 >>
LISTEN 0 128 :::82 :::*

停止服務
[root@ansible ~/ansible]# ansible db -m service -a ‘name=httpd state=stopped’

修改端口
[root@ansible ~]# vim httpd.conf
Listen 83

執行多個標簽,復制文件,啟動服務,順序不重要,在httpd.yml已經寫好了順序
[root@ansible ~/ansible]# ansible-playbook -t start_httpd,copyconf httpd.yml

查看端口
[root@ansible ~/ansible]# ansible db -m shell -a “ss -ntl | grep 83”
172.18.103.29 | SUCCESS | rc=0 >>
LISTEN 0 128 :::83 :::*

172.18.103.28 | SUCCESS | rc=0 >>
LISTEN 0 128 :::83 :::*

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/91106

(6)
無言勝千言無言勝千言
上一篇 2018-01-14 11:42
下一篇 2018-01-14 14:33

相關推薦

  • LInux基本常識和幾個基本命令的用法

    1.默認系統管理員root 1)在Linux中,創建系統的同時,會創建一個超級用戶,對系統擁有絕對權限。 2)每個賬戶的文件都被放在各自的家目錄中,管理員家目錄:/root 3)每個帳號會有一個uid號對應,管理員uid=0   cengOS7之前的版本一般用戶uid從500開始   centOS7之后的版本一般用戶uid從1000開始 …

    Linux干貨 2016-07-23
  • LVM邏輯卷管理

    前言     通常情況下,在操作系統上新建了一個分區并在此分區創建文件系統后,該文件系統的大小就固定了。假如要增加此文件系統的大小,我們不得不添加一塊硬盤并重新分區,創建文件系統,然后把原文件系統的數據完整復制過來。如果第二次分區時分配的空間太大,用不完又浪費該怎么辦呢?重復此前的流程又將花費大量的時間,有沒有更便捷的…

    Linux干貨 2015-05-04
  • 馬哥教育網絡班21期+第10周課程練習

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) POST:加電自檢,主板檢測系統硬件。 BOOT sequence:依次查找引導設備(裝有引導程序) MBR:找到引導設備的主引導扇區引導記錄(446k bootloader 64k DPT 2k 結束標志) GRUB: 引導程序的一種,提供一個菜單,允許用戶選擇要啟動系統或不同的內…

    Linux干貨 2016-08-15
  • Linux進程管理

    Linux進程及作業管理      內核的功用:          進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能          Process: 運行中的程序的一個副本;      …

    Linux干貨 2017-01-05
  • LINUX初次見面

    LINUX的文件系統 在Linux的眼睛中,一切都為文件,這也是Linux的中心哲學思想。正因如此造就了一個性能穩定,功能強大,效率高的操作系統。Linux有自己的層級標準,它定義了每個系統分區的用途,和所需要的最小構成文件目錄。由不同的文件來完成不同的功能造就了一個Linux的完整生態。 linux的文件系統格式比較豐富,它的核心系統能支持十多種文件系統類…

    2017-05-18
  • 第一周:Linux基礎之系統入門知識(一)

    一、計算機的組成及功能 現代計算機的基本結構是由匈牙利-美國科學家馮· 諾依曼于1946年提出的。迄今為止所有進入實用的電子計算機  都是按馮· 諾依曼提出的結構體系和工作原理設計制造的故又統稱為“馮·諾依曼型計算機"。 根據馮.諾依曼原理:計算機由運算器、控制器、存儲器、輸入設備、輸出設備所組成 運算器: 進行算術與邏輯運算 控制器:&…

    Linux干貨 2016-09-18
欧美性久久久久