第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Ansible 在遠(yuǎn)程服務(wù)器上找不到自定義 python 模塊

Ansible 在遠(yuǎn)程服務(wù)器上找不到自定義 python 模塊

慕森王 2023-10-31 14:12:22
我試圖從不同目錄中的另一個腳本調(diào)用 python 函數(shù)。有一個劇本來執(zhí)行此操作。這在本地主機(jī)上工作正常,但在遠(yuǎn)程服務(wù)器上失敗,并顯示“ModuleNotFoundError:沒有名為“script2”的模塊”這是我的腳本:[root@server Test]# lshosts  playbook  python1  python2[root@server Test]# cat playbook/playbook.yml - hosts: "{{ host }}"  gather_facts: yes  become: yes  vars:    ansible_python_interpreter: /usr/bin/python3  tasks:    - name: Connect to MongoDB      script: ../python1/script1.py      args:        executable: python3[root@server Test]# cat python1/script1.py #!/usr/bin/pythonimport osimport syssys.path.append("../python2")from script2 import dbServerdef main():    cursor = dbServer()    print(cursor.count())if __name__ == '__main__':    main()[root@server Test]# cat python2/script2.py #! /usr/bin/pythonfrom pymongo import MongoClientdef connectToMongoDB():    global db    try:        conn = MongoClient("myserver.com")        db = conn.CMDB    except Exception as e:        print("\nUnable to fetch details from MongoDB..!!!\n%s\n" % e)        sys.exit()def dbServer():    connectToMongoDB()    collection = db.dbServer    cursor = collection.find()    return cursor
查看完整描述

1 回答

?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗 獲得超8個贊

正如模塊script文檔中所解釋的:path中的本地腳本將被傳輸?shù)竭h(yuǎn)程節(jié)點(diǎn)然后執(zhí)行。


腳本中的任何導(dǎo)入文件都不會,您必須先使用 module 將它們復(fù)制到遠(yuǎn)程copy。


示例(根據(jù)需要調(diào)整訪問模式和路徑):


- hosts: "{{ host }}"

  gather_facts: yes

  become: yes


  vars:

    ansible_python_interpreter: /usr/bin/python3


  tasks:

    - name: Create directory

      copy:

        path: /tmp/python1

        state: directory

        mode: 0755

    - name: Copy scripts

      copy:

        src: ../python1

        dest: /tmp/python1


    - name: Connect to MongoDB

      script: ../python1/script1.py

      args:

        chdir: /tmp/python1

        executable: python3

然而,通常最好編寫 Ansible 模塊而不是推送腳本。


您的腳本在本地運(yùn)行,因為所有需要的導(dǎo)入文件都已存在


查看完整回答
反對 回復(fù) 2023-10-31
  • 1 回答
  • 0 關(guān)注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號