Amazon ec2 如何使用用户数据脚本在EC2机器上的virtualenv中安装气流?

Amazon ec2 如何使用用户数据脚本在EC2机器上的virtualenv中安装气流?,amazon-ec2,virtualenv,airflow,Amazon Ec2,Virtualenv,Airflow,我正在尝试使用用户数据脚本在EC2实例上安装Apache Airflow,以便它能够自动配置我的环境。气流通常需要virtualenv来运行python3;我如何做到这一点 在激活virtualenv之前,我已经尝试设置了所有需要的基础设施,所有这些似乎都安装得很好。我遇到的麻烦是在virtualenv中安装气流。我不确定这是否是正确的方法,但在以交互方式进行操作时,似乎需要这样做 #!/bin/bash # Path settings export HOME=/home/ec2-user e

我正在尝试使用用户数据脚本在EC2实例上安装Apache Airflow,以便它能够自动配置我的环境。气流通常需要virtualenv来运行python3;我如何做到这一点

在激活virtualenv之前,我已经尝试设置了所有需要的基础设施,所有这些似乎都安装得很好。我遇到的麻烦是在virtualenv中安装气流。我不确定这是否是正确的方法,但在以交互方式进行操作时,似乎需要这样做

#!/bin/bash

# Path settings
export HOME=/home/ec2-user
export AIRFLOW_HOME=$HOME/venv/airflow
export PATH=$PATH:$AIRFLOW_HOME:$HOME/venv/bin

# Updates and install prereqs   
sudo apt update -y
sudo apt install python-pip virtualenv python3-psycopg2 libpq-dev postgresql postgresql-client -y
pip install --upgrade pip
pip install virtualenvwrapper psycopg2 boto3

# Allow these ports through the ufw firewall
ufw allow 8080
ufw allow 5432

# Set up virtualenv and airflow
cd $HOME
virtualenv -p `which python3` venv
mkdir $AIRFLOW_HOME
mkdir $AIRFLOW_HOME/dags/

# Copy dags, run virtualenv, install airflow 
pip install awscli --upgrade
cd $AIRFLOW_HOME/dags/
aws s3 cp s3://mydagbucket/dagbag $AIRFLOW_HOME/dags/ --recursive
unzip *.zip
rm *.zip
source $HOME/venv/bin/activate

# Airflow specific setup
pip install apache-airflow
airflow initdb
sed -i 's/sqlite:\/\/\/\/.*\/airflow.db.*/postgres:\/\/airflow-postgres.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com:5432\/airflow?user=postgres\&password=<PASSWORD>/g' $AIRFLOW_HOME/airflow.cfg
psql postgres://airflow-postgres.xxxxxxxxxxxxx.us-east-1.rds.amazonaws.com:5432/airflow?user=postgres\&password=pass1word -c "CREATE DATABASE airflow"
rm -f $AIRFLOW_HOME/airflow.db
airflow initdb
airflow webserver -p 8080 &
airflow scheduler &
chown ec2-user:ec2-user -R $HOME
sudo apt autoremove -y
#/bin/bash
#路径设置
export HOME=/HOME/ec2用户
导出气流\u HOME=$HOME/venv/气流
导出路径=$PATH:$aiffair\u HOME:$HOME/venv/bin
#更新并安装prereqs
sudo apt更新-y
sudo-apt安装python-pip-virtualenv-python3-psycopg2-libpq-dev-postgresql-postgresql客户端-y
pip安装--升级pip
pip安装虚拟说唱歌手psycopg2 BOT3
#允许这些端口通过ufw防火墙
ufw允许8080
ufw允许5432
#设置virtualenv和airflow
cd$HOME
virtualenv-p`which python3`venv
mkdir$u家
mkdir$U住宅/dags/
#复制DAG,运行virtualenv,安装气流
pip安装awscli--升级
cd$U HOME/dags/
aws s3 cp s3://mydagbucket/dagbag$AIRFLOW\u HOME/dags/--递归
解压*.zip
rm*.zip
来源$HOME/venv/bin/激活
#特定气流设置
安装ApacheAirflow
气流初始数据库
sed-i's/sqlite:\/\/\/\/.\/.\/airflow.db.*/postgres:\/\/airflow postgres.xxxxxxxxxx.us-east-1.rds.amazonaws.com:5432\/airflow?user=postgres\&password=/g'$airflow\u HOME/airflow.cfg
psqlpostgres://airflow-postgres.xxxxxxxxxxxxx.us-east-1.rds.amazonaws.com:5432/airflow?user=postgres\&password=pass1word-c“创建数据库”
rm-f$AIRFLOW\u HOME/AIRFLOW.db
气流初始数据库
气流网络服务器-p8080&
气流调度器&
chown ec2用户:ec2用户-R$HOME
sudo-apt自动记忆-y