saltstack學習筆記9-JOB

來源:互聯網
上載者:User

標籤:saltstack

saltstack裡面執行任何一個操作都會在master上產生一個jid號,就像上一節儲存到redis上的資料顯示的一樣


./redis-cli monitor

OK

1461054358.412376 [0 127.0.0.1:58564] "SELECT" "0"

1461054358.412717 [0 127.0.0.1:58564] "SET" "minion1:20160419162558137768" "{\"fun_args\": [\"hostname\"], \"jid\": \"20160419162558137768\", \"return\": \"minion1\", \"retcode\": 0, \"success\": true, \"fun\": \"cmd.run\", \"id\": \"minion1\"}"

1461054358.413143 [0 127.0.0.1:58564] "LPUSH" "minion1:cmd.run" "20160419162558137768"

1461054358.413482 [0 127.0.0.1:58564] "SADD" "minions" "minion1"

1461054358.413791 [0 127.0.0.1:58564] "SADD" "jids" "20160419162558137768"

1461058032.241332 [0 127.0.0.1:58567] "SELECT" "0"

1461058032.241541 [0 127.0.0.1:58567] "SET" "minion1:20160419172712073319" "{\"fun_args\": [\"free -m\"], \"jid\": \"20160419172712073319\", \"return\": \"             total       used       free     shared    buffers     cached\\nMem:           988        826        162          0         41        545\\n-/+ buffers/cache:        239        749\\nSwap:         4095          0       4095\", \"retcode\": 0, \"success\": true, \"fun\": \"cmd.run\", \"id\": \"minion1\"}"

1461058032.242293 [0 127.0.0.1:58567] "LPUSH" "minion1:cmd.run" "20160419172712073319"

1461058032.242815 [0 127.0.0.1:58567] "SADD" "minions" "minion1"

1461058032.243637 [0 127.0.0.1:58567] "SADD" "jids" "20160419172712073319"


minion端會在cache目錄下的proc目錄建立一個以jid為名稱的檔案,這個檔案裡面的內容就是此次操作的記錄,當操作處理完成後該檔案會自動刪除。而master端會記錄每次操作的詳細資料,這個記錄都是存在master端cache目錄下jobs下。下面通過執行個體來瞭解日常job管理。


通過salt-run來管理job


salt-run -d|grep jobs

‘jobs.active:‘

    Return a report on all actively running jobs from a job id centric

        salt-run jobs.active

‘jobs.list_job:‘

        salt-run jobs.list_job 20130916125524463507

‘jobs.list_jobs:‘

    List all detectable jobs and associated functions

        salt-run jobs.list_jobs

‘jobs.lookup_jid:‘

        salt-run jobs.lookup_jid 20130916125524463507

        salt-run jobs.lookup_jid 20130916125524463507 outputter=highstate

‘jobs.print_job:‘

        salt-run jobs.print_job 20130916125524463507


這裡會顯示salt-run關於job操作的所有命令,關於每個參數的解釋大家可以通過salt-run -d jobs來查看


salt ‘minion1‘ cmd.run ‘sleep 100;whoami‘


^CExiting on Ctrl-C

This job‘s jid is:

20160419174043844662

The minions may not have all finished running and any remaining minions will return upon completion. To look up the return data for this job later run:

salt-run jobs.lookup_jid 20160419174043844662


等待時間過長這裡直接ctrl-C了,可以看到jid號

salt-run jobs.lookup_jid 20160419174043844662


查看這個job的詳細記錄

salt-run jobs.list_job 20160419174043844662

Arguments:

    - sleep 100;whoami

Function:

    cmd.run

Minions:

    - minion1

Result:

    ----------

    minion1:

        ----------

        return:

            root

StartTime:

    2016, Apr 19 17:40:43.844662

Target:

    minion1

Target-type:

    glob

User:

    root

jid:

    20160419174043844662


通過saltstack module來管理job

上面已經介紹通過salt-run可以對日常job進行管理,為什麼要用module來管理job呢。salt-run對job管理功能比較局限,上面我們也看到了目前salt-run不支援kill某個job。現在我們就開始介紹使用saltstack內建的module來管理job


查看相關module的用法

salt ‘*‘ sys.doc saltutil|grep job

‘saltutil.find_cached_job:‘

    Return the data for a specific cached job id

        salt ‘*‘ saltutil.find_cached_job <job id>

‘saltutil.find_job:‘

    Return the data for a specific job id

        salt ‘*‘ saltutil.find_job <job id>

‘saltutil.kill_job:‘

    Sends a kill signal (SIGKILL 9) to the named salt job‘s process

        salt ‘*‘ saltutil.kill_job <job id>

        salt ‘*‘ saltutil.runner jobs.list_jobs

‘saltutil.signal_job:‘

    Sends a signal to the named salt job‘s process

        salt ‘*‘ saltutil.signal_job <job id> 15

‘saltutil.term_job:‘

    Sends a termination signal (SIGTERM 15) to the named salt job‘s process

        salt ‘*‘ saltutil.term_job <job id>


我們繼續按照上面的例子來測試

salt ‘minion1‘ cmd.run ‘sleep 100;whoami‘


終止命令獲得jid

20160419175202067782


使用module來管理job

salt ‘minion1‘ saltutil.find_job 20160419175202067782

minion1:

    ----------

    arg:

        - sleep 100;whoami

    fun:

        cmd.run

    jid:

        20160419175202067782

    pid:

        25659

    ret:

    tgt:

        minion1

    tgt_type:

        glob

    user:

        root


我們還可以直接kill掉這個job

salt ‘minion1‘ saltutil.kill_job 20160419175202067782

本文出自 “八英裡” 部落格,謝絕轉載!

saltstack學習筆記9-JOB

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.