如何将多个python脚本混合到shell脚本中?

时间:2016-06-17 14:31:51

标签: python bash shell docker virtualenv

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

shell脚本可以按顺序执行这样的操作:

1.安装virtualenv

pip install virtualenv

2.设置一个名为new-env

的新虚拟环境
virtualenv new-env

3.进入环境

cd new-env

4.activate

source ./bin/activate

5.然后我们需要使用requirements.txt导出pip freeze > requirements.txt的依赖项。请注意,我将此文件放在根目录中。

所以:

pip install -r ../requirements.txt

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

1 个答案:

答案 0 :(得分: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。只需继续谷歌搜索下一步,你就会在这里找到合适的答案。