-
Notifications
You must be signed in to change notification settings - Fork 1
/
src-centos.sh
133 lines (97 loc) · 4.89 KB
/
src-centos.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#! /bin/bash
set -e
#Переменный цвета
GREEN='\033[0;32m' #Зеленый
RED='\033[0;31m' #Красный
NC='\033[0m' #Нет цвета
echo -e "${GREEN}Обновим пакеты системы, установим Docker, Docker compose и Airflow${NC}"
sleep 5
echo -e "${GREEN}Приступим${NC}"
sleep 2
echo -e "${GREEN}Начинаю обновлять пакеты...${NC}"
sleep 3
sudo yum -y update && sudo yum -y upgrade
echo -e "${GREEN}(1/3) Пакеты успешно обновлены!${NC}"
sleep 3
echo -e "${GREEN}Начинаю устанавливать Docker...${NC}"
sleep 3
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
sudo systemctl start docker
sudo yum -y update
sudo usermod -aG docker $USER
var=`sudo systemctl status docker | grep Active | grep running | wc -l`
if [[ "$var" = 1 ]]; then
echo -e "${GREEN}(2/3) Docker успешно установлен!${NC}"
sleep 3
else
echo -e "${RED}Возникла ошибка во время установки Docker${NC}"
sleep 3
sudo systemctl status docker
exit 1
fi
echo -e "${GREEN}Начинаю устанавливать Airflow...${NC}"
sleep 3
mkdir ~/Docker-compose-Airflow
cd ~/Docker-compose-Airflow
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.4.3/docker-compose.yaml'
mkdir -p ./dags ./logs ./plugins
echo -e "AIRFLOW_UID=$(id -u)" > .env
sudo systemctl enable docker.service --now
sudo systemctl enable containerd.service --now
if [ $? -eq 0 ]; then
echo -e "${GREEN}(3/3) Airflow успешно установлен!${NC}"
sleep 3
else
echo -e "${RED}Возникла ошибка во время установки Airflow${NC}"
sleep 3
exit 1
fi
hostname=`hostname`
echo -e "${GREEN}Итого:${NC}"
sleep 2
echo "- успешно обновлены пакеты;"
sleep 2
echo "- установлен Docker;"
sleep 2
echo "- установлен Docker compose;"
sleep 2
echo "- установлен Airflow."
sleep 3
printf "Осталось перезайти в консоль ${GREEN}$hostname${NC}.\nДля этого необходимо выполнить в ручную команду ${GREEN}exit${NC} и занаво залогиниться в системе.\n\n"
sleep 12
echo -e "${GREEN}Ознакомьтесь с инструкцией.${NC}"
sleep 3
touch README.txt
printf "Для того чтобы запустить AirFlow после перелогина в систему:\n- войдите в директорию ${GREEN}~/Docker-compose-Airflow${NC};\n- введите команду ${GREEN}docker compose up airflow-init${NC};\n- далее ${GREEN}docker compose up${NC}.\n\n"
printf "Для того чтобы запустить AirFlow после перелогина в систему:\n- войдите в директорию ${GREEN}~/Docker-compose-Airflow${NC};\n- введите команду ${GREEN}docker compose up airflow-init${NC};\n- далее ${GREEN}docker compose up${NC}.\n\n" > README.txt
sleep 10
printf "После запуска команды ${GREEN}docker compose up${NC}, будут подняты контейнеры, проверить можно командой ${GREEN}docker ps${NC}.\n"
printf "После запуска команды ${GREEN}docker compose up${NC}, будут подняты контейнеры, проверить можно командой ${GREEN}docker ps${NC}.\n" >> README.txt
sleep 6
printf "Остановить контейнеры можно командой ${GREEN}docker compose stop${NC}.\n"
printf "Остановить контейнеры можно командой ${GREEN}docker compose stop${NC}.\n" >> README.txt
sleep 6
printf "А остановить полностью и удалить контейнеры можно командой ${GREEN}docker compose down${NC}.\n\n"
printf "А остановить полностью и удалить контейнеры можно командой ${GREEN}docker compose down${NC}.\n\n" >> README.txt
sleep 6
printf "Airflow будет доступен по адресу: ${GREEN}http://localhost:8080${NC}\n"
printf "Airflow будет доступен по адресу: ${GREEN}http://localhost:8080${NC}\n" >> README.txt
sleep 6
printf "Пароль ${GREEN}airflow${NC} и логин ${GREEN}airflow${NC}.\n\n"
printf "Пароль ${GREEN}airflow${NC} и логин ${GREEN}airflow${NC}.\n\n" >> README.txt
sleep 6
pwd=`pwd`
echo -e "Вся эта информация будет в файле ${GREEN}README.txt${NC}, который будет находиться в ${GREEN}$pwd${NC}."
sleep 8
echo -e "${GREEN}Выходим из скрипта через...${NC}"
sleep 3
for i in {5..1}
do
echo -e "${GREEN}$i...${NC}"
sleep 1
done
exit 0