簡體   English   中英

嘗試通過遠程 api 調用運行 ansible playbook

[英]Trying to run an ansible playbook through from a remote api call

我構建了一個 API,它將系統配置參數作為 playbook 變量,並動態構建 playbook 並嘗試運行它們。 我可以點擊我的 API 但 Ansible 在通過調用時拋出以下錯誤

Options = namedtuple('Options', ['connection', 'module_path', 'forks', 'become', 'become_method', 'become_user', 'check', 'diff', 'listhosts', 'listtasks', 'listtags', 'syntax'])
loader = DataLoader()
options = Options(connection='local', module_path='%s/' % (ROOT_DIR), forks=100, become=None, become_method=None, become_user=None, check=False,
                diff=False, listhosts=False, listtasks=False, listtags=False, syntax=False)
passwords = dict(vault_pass='secret')

inventory = InventoryManager(loader=loader, sources=[inventory_path])
variable_manager = VariableManager(loader=loader, inventory=inventory)
executor = PlaybookExecutor(  
            playbooks=[playbook_path], inventory=inventory, variable_manager=variable_manager, loader=loader,  
            options=options, passwords=passwords)  
results = executor.run()  

這是錯誤:

致命:[本地主機]:無法訪問! => {"changed": false, "msg": "身份驗證或權限失敗。在某些情況下,您可能已經能夠進行身份驗證,但對目標目錄沒有權限。考慮更改 ansible.cfg 中的遠程 tmp 路徑到以 \\"/tmp\\" 為根的路徑。失敗的命令是:( umask 77 && mkdir -p \\" echo /tmp/ansible/ansible-tmp-1527184628.45-99532072739462 \\" && echo ansible-tmp-1527184672273494627373 \\" echo /tmp/ansible/ansible-tmp-1527184628.45-99532072739462 \\" ),退出結果為 127", "unreachable": true}

該劇本在本地主機上運行,​​我的連接參數也設置為本地,所以我不確定問題是什么。

/tmp/ansible下檢查您的權限。 最好的選擇是將您的ansible.cfg配置為指向:

remote_tmp     = /tmp/.ansible-${USER}/tmp

來自davesnigier.comgithub

這是 Ubuntu 20.04 的問題。

這是一個解決方法

mv /usr/bin/sleep /usr/bin/sleep.dist

ln -s /bin/true /usr/bin/sleep

這將禁用 ubuntu 上的睡眠並將其替換為“true”的符號鏈接。 這允許它總是返回。 當我遇到這個問題時,我發現它的鏈接如下。

https://community.spiceworks.com/topic/2275812-ubuntu-wsl-ansible-permission-error-when-running-localhost-playbook

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM