Ansible 開發(fā)調(diào)試 之【模塊調(diào)試】

本地調(diào)試


需要安裝jinja2 庫

yum -y install python-jinja2

使用官方提供的測(cè)試腳本調(diào)試

git clone git://github.com/ansible/ansible.git
source ansible/hacking/env-setup
cd ansible/hacking/

使下列命令調(diào)試modules

python test-module -m /usr/lib/python2.6/site-packages/ansible/modules/system/ping.py
image.png

test-module使用參數(shù)


image.png

遠(yuǎn)程調(diào)試


在前面的介紹中苇瓣,我們知道modules是在遠(yuǎn)程主機(jī)上執(zhí)行的缨称,調(diào)試模塊那就需要在遠(yuǎn)程主機(jī)上執(zhí)行笛匙,ansible默認(rèn)在執(zhí)行完modules豺鼻,會(huì)自動(dòng)清理在遠(yuǎn)程主機(jī)上的臨時(shí)文件。
使用ANSIBLE_KEEP_REMOTE_FILES=1環(huán)境變量 郭怪,可以保留ansible在遠(yuǎn)程主機(jī)的執(zhí)行文件,從而在遠(yuǎn)程主機(jī)上調(diào)試模塊士飒。

$ ANSIBLE_KEEP_REMOTE_FILES=1 ansible localhost -m ping -a 'data=debugging_session' -vvv
sing module file /usr/lib/python2.6/site-packages/ansible/modules/core/system/ping.py
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: root
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo ~/.ansible/tmp/ansible-tmp-1489477306.61-275734926719932 `" && echo ansible-tmp-1489477306.61-275734926719932="` echo ~/.ansible/tmp/ansible-tmp-1489477306.61-275734926719932 `" ) && sleep 0'
<localhost> PUT /tmp/tmpv4EenK TO /root/.ansible/tmp/ansible-tmp-1489477306.61-275734926719932/ping.py
<localhost> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1489477306.61-275734926719932/ /root/.ansible/tmp/ansible-tmp-1489477306.61-275734926719932/ping.py && sleep 0'
<localhost> EXEC /bin/sh -c '/usr/bin/python /root/.ansible/tmp/ansible-tmp-1489477306.61-275734926719932/ping.py && sleep 0'
localhost | SUCCESS => {
    "changed": false, 
    "invocation": {
        "module_args": {
            "data": "debugging_session"
        }, 
        "module_name": "ping"
    }, 
    "ping": "debugging_session"
}

模塊文件是由base64編碼的字符串文件,可使用explode將字符串轉(zhuǎn)換成可執(zhí)行的python文件

 $ python /root/.ansible/tmp/ansible-tmp-1489477306.61-275734926719932/ping.py explode
Module expanded into:
/root/.ansible/tmp/ansible-tmp-1489477306.61-275734926719932/debug_dir

查看debug_dir目錄

 $ tree  /root/.ansible/tmp/ansible-tmp-1489477306.61-275734926719932/debug_dir/
/root/.ansible/tmp/ansible-tmp-1489477306.61-275734926719932/debug_dir/
├── ansible
│   ├── __init__.py
│   └── module_utils
│       ├── basic.py
│       ├── __init__.py
│       ├── pycompat24.py
│       ├── six.py
│       └── _text.py
├── ansible_module_ping.py
└── args
  • ansible_module_ping.py 是模塊本身的代碼蔗崎。
  • args 文件包含一個(gè)JSON字符串酵幕。 該字符串是一個(gè)包含模塊參數(shù)和其他變量的字典。
  • ansible目錄包含由ansible_module_ping模塊使用的ansible.module_utils的代碼文件缓苛。

修改了debug_dir文件中的代碼之后芳撒,需要使用execute執(zhí)行代碼

$ python /root/.ansible/tmp/ansible-tmp-1489477306.61-275734926719932/ping.py execute
{"invocation": {"module_args": {"data": "debugging_session"}}, "changed": false, "ping": "debugging_session"}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末未桥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子冬耿,更是在濱河造成了極大的恐慌,老刑警劉巖亦镶,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件日月,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡缤骨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門台颠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人勒庄,你說我怎么就攤上這事串前。” “怎么了实蔽?”我有些...
    開封第一講書人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長局装。 經(jīng)常有香客問我,道長拨脉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任玫膀,我火速辦了婚禮爹脾,結(jié)果婚禮上箕昭,老公的妹妹穿的比我還像新娘。我一直安慰自己落竹,他們只是感情好货抄,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著桨武,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凉蜂,一...
    開封第一講書人閱讀 49,785評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音茎杂,去河邊找鬼纫雁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛轧邪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播忌愚,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼硕糊,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼院水!你這毒婦竟也來了简十?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤恢恼,失蹤者是張志新(化名)和其女友劉穎胶逢,沒想到半個(gè)月后饰潜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡彭雾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年锁保,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吴菠。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡浩村,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出心墅,到底是詐尸還是另有隱情,我是刑警寧澤怎燥,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站策肝,受9級(jí)特大地震影響隐绵,放射性物質(zhì)發(fā)生泄漏之众。R本人自食惡果不足惜氢橙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望帘睦。 院中可真熱鬧坦康,春花似錦竣付、人聲如沸滞欠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至棺牧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間颊乘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工浙值, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留檩小,地道東北人开呐。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓负蚊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鸵荠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 在開發(fā)模塊之前蛹找,現(xiàn)問下自己幾個(gè)問題姨伤? 官方是否有提供的類似功能模塊庸疾?可從下面兩個(gè)連接確定官方提供的模塊,以免重復(fù)造...
    lework閱讀 2,241評(píng)論 0 0
  • 作為背鍋俠運(yùn)維工作的基本流程 運(yùn)維工具的分類 : ansible的模塊化: ansible密鑰登陸 ansible...
    二郎5閱讀 4,146評(píng)論 0 10
  • ###### Ansible總結(jié) ##### 運(yùn)維工作: 系統(tǒng)安裝(物理機(jī)徒溪、虛擬機(jī))-->程序包安裝金顿、配置、服務(wù)啟...
    二郎5閱讀 2,021評(píng)論 0 4
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理渠概,服務(wù)發(fā)現(xiàn),斷路器播揪,智...
    卡卡羅2017閱讀 134,629評(píng)論 18 139
  • 今天給大家分享最新的干貨,剛好碰上這段時(shí)間設(shè)計(jì)市場(chǎng)截圖猪狈,所以給各位設(shè)計(jì)新人,分享本人整合的尺寸大全罪裹,希望對(duì)你們的設(shè)...
    毒梟J哥閱讀 18,944評(píng)論 2 20