Skip to content

Instantly share code, notes, and snippets.

@svmihar
Last active February 11, 2021 09:48
Show Gist options
  • Save svmihar/8a4200ba1aab1536ed26822d6b06cdae to your computer and use it in GitHub Desktop.
Save svmihar/8a4200ba1aab1536ed26822d6b06cdae to your computer and use it in GitHub Desktop.
hentikan penderitaan ini
#!/bin/bash
USUARIO_SO="$(whoami)"
ANACONDA_URL="https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh"
_DB_PASSWORD="la contraseña"
_IP=$(hostname -I | cut -d' ' -f1)
while getopts "a:p:h" opt; do
case $opt in
a) ANACONDA_URL="$OPTARG";;
p) _DB_PASSWORD="$OPTARG";;
h) cat <<EOF
All arguments are optional
-a anaconda url
-p password for airflow postgres user
-h this help
EOF
exit 0;
;;
\?) echo "Invalid option -$OPTARG" >&2
;;
esac
done
echo "Installation will be performed as $USUARIO_SO"
if [[ $(id -u) -eq 0 ]] ; then echo "This script must not be excecuted as root or using sudo(althougth the user must be sudoer and password will be asked in some steps)" ; exit 1 ; fi
#Prerequisites installation:
while sudo fuser /var/{lib/{dpkg,apt/lists},cache/apt/archives}/lock >/dev/null 2>&1; do
echo "Waiting while other process ends installs (dpkg/lock is locked)"
sleep 1
done
sudo apt update && sudo apt upgrade -y
sudo apt install -y openssh-server git wget htop postgresql postgresql-client postgresql-contrib
if ! hash conda &> /dev/null; then
mkdir -p ~/instaladores && wget -c -P "$HOME/instaladores" "$ANACONDA_URL"
bash "$HOME/instaladores/${ANACONDA_URL##*/}" -b -p "$HOME/anaconda2"
export PATH="$HOME/anaconda2/bin:$PATH"
echo "export PATH='$HOME/anaconda2/bin:$PATH'">>"$HOME/.bashrc"
fi
conda install -y psycopg2
conda install -y -c conda-forge airflow "celery<4"
if [[ -z "${AIRFLOW_HOME}" ]]; then
export AIRFLOW_HOME="$HOME/airflow"
echo "export AIRFLOW_HOME='$HOME/airflow'" >>"$HOME/.bashrc"
fi
airflow initdb
sudo -u postgres createdb airflow
sudo -u postgres createuser airflow
sudo -u postgres psql airflow -c "alter user airflow with encrypted password '$_DB_PASSWORD';"
sudo -u postgres psql airflow -c "grant all privileges on database airflow to airflow;"
#Configurar postgresql para que admita conexiones remotas
_HBA=$(sudo -u postgres psql -t -P format=unaligned -c 'show hba_file')
_CONFIG=$(sudo -u postgres psql -t -P format=unaligned -c 'show config_file')
mkdir -p "$HOME/pg_backup"
sudo cp "$_HBA" "$HOME/pg_backup"
cp "$_CONFIG" "$HOME/pg_backup"
sudo su -c "echo 'host all all 0.0.0.0/0 md5' >>$_HBA"
sudo sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" "$_CONFIG"
sudo systemctl restart postgresql.service
sed -i "s%sql_alchemy_conn.*%sql_alchemy_conn = postgresql+psycopg2://airflow:$_DB_PASSWORD@$_IP:5432/airflow%" "$AIRFLOW_HOME/airflow.cfg"
sed -i "s%executor =.*%executor = LocalExecutor%" "$AIRFLOW_HOME/airflow.cfg"
mkdir -p "$AIRFLOW_HOME/dags"
cat <<EOF >"$AIRFLOW_HOME/dags/dummy.py"
import airflow
from airflow.models import DAG
from airflow.operators.dummy_operator import DummyOperator
from datetime import timedelta
args = {
'owner': 'airflow',
'start_date': airflow.utils.dates.days_ago(2)
}
dag = DAG(
dag_id='example_dummy', default_args=args,
schedule_interval=None,
dagrun_timeout=timedelta(minutes=1))
run_this_last = DummyOperator(task_id='DOES_NOTHING', dag=dag)
EOF
airflow initdb
airflow scheduler -D
airflow webserver -p 8080 -D

Keybase proof

I hereby claim:

  • I am svmihar on github.
  • I am svmihar (https://keybase.io/svmihar) on keybase.
  • I have a public key whose fingerprint is 6372 289A 2E34 8349 62B9 9C22 CB7D 5EA3 356D D4BC

To claim this, I am signing this object:

{
  "body": {
    "key": {
      "eldest_kid": "012068257bb95d93e08dbcde92af09a7e0d869f75d74807111284e5b48f3197bbe600a",
      "fingerprint": "6372289a2e34834962b99c22cb7d5ea3356dd4bc",
      "host": "keybase.io",
      "key_id": "cb7d5ea3356dd4bc",
      "kid": "0101809ed3b3260f0ec3c5f425c4f985c5e4d5b6563e6876321f45c824d37774673a0a",
      "uid": "0345b3530ff3da8d976fdef992af5e19",
      "username": "svmihar"
    },
    "service": {
      "name": "github",
      "username": "svmihar"
    },
    "type": "web_service_binding",
    "version": 1
  },
  "ctime": 1600958049,
  "expire_in": 157680000,
  "prev": "d8d5edb51896f0b0f1c6850fbf20d9bfdd318ce663d0dfcefc208de1e0a0ff3a",
  "seqno": 26,
  "tag": "signature"
}

with the key 6372 289A 2E34 8349 62B9 9C22 CB7D 5EA3 356D D4BC, yielding the signature:

-----BEGIN PGP MESSAGE-----
Version: Keybase OpenPGP v2.1.13
Comment: https://keybase.io/crypto

yMNdAnicdZJ9UFRVGMZ3IRogGDZSm7AmuTi5Q4D33nM/zl2EGiQBJylNZUptufee
c5eLsAv7AUsrJOPQx6iYoQiB7ZAig8mmzQATQgIyGSECwwZqw6dj40xfU1MOYWR3
Sf+r88+Z857n985znvMORAbrwvVD5W+eYgv93fqhvmqXzlzgEz2EZENlhMlD7MXL
Gy5A2OE071URYSJIiiY5SLO8JAksEgAmIZJkhAVaVEhB5DGJICcoPIt4BpI8RVE0
ZDArMVABlKBRmCNJkUggFNVqwfYiu2p1am05wNM0FEQaAwYCRuBoSRBkmpYlHrFY
BIDlEGIkWQPzbI4AoZmTRAdOUm1aTTuYl+39h/6hb5KCpIARkADNkQqJZSCzCkOz
MqMIkJVZzCBW4lgOYA7yHKAphWFlSDMI8DzPcDwQl327/m0HGFYCLCAVBSARIoHn
FIQVIRADiykhIHRgu1UsxJraUVKo5ol2ojyB0IolqowDuT64tKjOPJf0v4CzrChQ
KcWS+QFrllQr0tLTkBJsd6g2K2GiNKXsVAMwpQUssJBkhAQCu4tUOzarAQXLc5DU
VgJRZMclWksEtaiQxFJQ4BRSIhVK5iBLKpJCk0iQFIQABWXMcQCRSJGxItPaZ2MK
k2Lg2YEwHLjYaiNMNKf5FC0B46rFKjpddkyU9/ftfkSnD9c9GhIUGCtdeJjh4bCd
GTTo+jfUtYa50xP/unHzy674+8EhTcaXd45Hns4o6oD5M00plRk+M7L8PtGWtrFr
0XXmNLUH8CdzfsxIrFgXk+y95VkFhqojrlAtMOteNvBbH2/Ju/A0X2+vfT/b23Bc
f96/3TnyTGRGX6UPN6+/+9O3h2qMoTG1tiNPtfGpuOzsaNXOs+D6H9tmD+b/XFbB
LqitA8eqR+ebkvOuv3elo2XuG2VNUuPxCEfw1w0TSQuhnVm/NsRd+yLo0qYIXYrJ
cyJjfV1NWPtHxVHCRMKwewX1Q+vtuKiewQ3d1U98OkuvuWeqmGquaypd0ZmVc9Pw
eszdDnluumFT7Ad19YNL/LXGVcPtC8Db9ZqhdSa3aqVu/px/cvNY+tFXU9K7H4vb
0Xr/lflfjl5tuzqt7zzsT/Qoz7u7fPuTyJeo0ZpMPurWoV1vHPBm3jKYR3s3e85P
5hamvnhi5Ddcn7zS//Zs9MKxBfOdVM/JkD2ZaU+uHvkcro3dNXNxcYcrMnxyW6rX
EzEQf2PcmOydTh5/p//OlsW3GLRle/5kvCWHKdja67bv5+eWZr/75GPgfjfFeO72
s739cSNBi904hKvdd3F3UttSQ8Xl4hdWb00be+7Dy83GjZZT33ccTGwfM4ZOJcU1
ju3709jty19XBdeCkSOlanS2sUU/PBVddenv4c8O9HyVe8HQE+qLVdor/wHizLyA
=JKyf
-----END PGP MESSAGE-----

And finally, I am proving ownership of the github account by posting this as a gist.

My publicly-auditable identity:

https://keybase.io/svmihar

From the command line:

Consider the keybase command line program.

# look me up
keybase id svmihar
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment