首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Ansible将数据从Google Compute Engine发送到Google Pub/Sub

使用Ansible将数据从Google Compute Engine发送到Google Pub/Sub
EN

Stack Overflow用户
提问于 2020-04-15 02:29:24
回答 1查看 66关注 0票数 0

我想使用Ansible将数据从Google vm实例发送到Google Pub/Sub。

看似合理的行动手册

代码语言:javascript
复制
---
- hosts: localhost
  tasks:

  - name: Write into log file
    local_action:
      shell echo "Hello" >> /etc/ansible/log.txt

  - name: Send message through pubsub
    shell: python pub.py project-344421 topic_test
    args:
      chdir: /home/pubsub 

错误

代码语言:javascript
复制
    "msg": "non-zero return code", 
    "rc": 1, 
    "start": "2020-04-14 18:20:00.723265", 
    "stderr": "Traceback (most recent call last):\n  File \"pub.py\", line 22, in <module>\n    from google.cloud import pubsub_v1\nImportError: No module named google.cloud", 
    "stderr_lines": [
        "Traceback (most recent call last):", 
        "  File \"pub.py\", line 22, in <module>", 
        "    from google.cloud import pubsub_v1", 
        "ImportError: No module named google.cloud"
    ], 
    "stdout": "", 
    "stdout_lines": []

手动使用python pub.py project-344421 topic_test可正常运行script pub.py

输出

代码语言:javascript
复制
der_topic
Published message Hello
 now has message ID 874436722336138
Published 1 message(s).

已安装模块google.cloud、google-cloud-pubsub和google-auth

代码语言:javascript
复制
pip install --upgrade google-cloud
pip install --upgrade google-cloud-pubsub
pip install --upgrade google-auth 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-15 02:46:16

Ansible使用的python可执行文件可能与您在命令行中使用的不同。

使用以下命令找出它工作的可执行文件的路径...

代码语言:javascript
复制
$ which python

...then将可执行文件的路径复制/粘贴到shell命令中。

代码语言:javascript
复制
  - name: Send message through pubsub
    shell: /<FULL>/<PATH>/python pub.py project-344421 topic_test
    args:
      chdir: /home/pubsub 

如果这不起作用,那么您还可以尝试检查您的PYTHONPATH环境变量,看看它在终端和Ansible上下文中是否相同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61214698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档