【问题标题】:How to mix several python scripts into a shell script?如何将几个python脚本混合成一个shell脚本?
【发布时间】:2016-10-19 10:43:53
【问题描述】:

我有一个本地存储库,现在我想将它部署到一个 docker 容器。我想写一个shell脚本来处理环境的设置。

shell 脚本可能会按顺序执行以下操作:

1.安装virtualenv

pip install virtualenv

2.设置一个名为new-env的新虚拟环境

virtualenv new-env

3.进入环境

cd new-env

4.激活

source ./bin/activate

5.然后我们需要安装我用pip freeze > requirements.txt导出的requirements.txt的依赖项。注意我把这个文件放在根目录下。

所以:

pip install -r ../requirements.txt

是否可以将这些 python 脚本混合到一个 shell 脚本中,以便我可以只使用 sh 脚本进行设置?谢谢。

【问题讨论】:

  • 这对您的需求来说可能有点矫枉过正,但您有没有想过使用ansible?它是为服务器部署而设计的,可以做任何你想做的事情。
  • Ansible、Fabric 等比 shell 脚本更好的选择

标签: python bash shell docker virtualenv


【解决方案1】:

Ansible 是一个不错的选择。它很容易上手,并且可以随着系统复杂性的增加而扩展。请参考此tutorial。使用 ansible 安装 pip、virtualenv 等的简单 yml 文件可能类似于:

- name: download pip
  get_url: url=https://bootstrap.pypa.io/get-pip.py dest=/tmp

- name: install pip
  command: "python /tmp/get-pip.py"

- name: Install virtualenv
  pip: name=virtualenv

- name: Create virtualenv path
  file: path={{ virtualenv_path }} state=directory 

- name: Install pip packages under virtualenv
  pip: requirements=/home/user/pip_list.txt virtualenv={{ virtualenv_path }}
  tags: packages

还有一些样板设置来定义变量,如virtualenv_path 和您的主机等。只需从 github 克隆一个简单的 repo 即可开始。

文档对于 ansible 来说非常好。继续谷歌搜索下一步,你会在这里找到合适的答案。

【讨论】:

  • 谢谢!迫不及待想立即查看!
猜你喜欢
  • 2020-10-08
  • 2012-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-18
  • 1970-01-01
  • 1970-01-01
  • 2020-11-04
相关资源
最近更新 更多