first commit
This commit is contained in:
79
service/docker/install-docker
Executable file
79
service/docker/install-docker
Executable file
@@ -0,0 +1,79 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use autodie;
|
||||
|
||||
print "Установка Docker...\n";
|
||||
|
||||
# Функция для выполнения системных команд
|
||||
sub run_cmd {
|
||||
my $cmd = shift;
|
||||
print "Выполняется: $cmd\n";
|
||||
system($cmd) == 0 or die "Ошибка выполнения команды: $cmd\n";
|
||||
}
|
||||
|
||||
# Функция для получения версии Ubuntu
|
||||
sub get_ubuntu_codename {
|
||||
my $codename;
|
||||
|
||||
# Читаем файл /etc/os-release
|
||||
if (open my $fh, '<', '/etc/os-release') {
|
||||
while (my $line = <$fh>) {
|
||||
if ($line =~ /^UBUNTU_CODENAME=([^\s]+)/) {
|
||||
$codename = $1;
|
||||
last;
|
||||
} elsif ($line =~ /^VERSION_CODENAME=([^\s]+)/ && !defined $codename) {
|
||||
$codename = $1;
|
||||
}
|
||||
}
|
||||
close $fh;
|
||||
}
|
||||
|
||||
die "Не удалось определить версию Ubuntu\n" unless defined $codename;
|
||||
return $codename;
|
||||
}
|
||||
|
||||
# Обновление пакетов и установка зависимостей
|
||||
run_cmd('sudo apt update');
|
||||
run_cmd('sudo apt install -y ca-certificates curl');
|
||||
|
||||
# Создание директории для ключей
|
||||
run_cmd('sudo install -m 0755 -d /etc/apt/keyrings');
|
||||
|
||||
# Загрузка GPG ключа Docker
|
||||
run_cmd('sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc');
|
||||
run_cmd('sudo chmod a+r /etc/apt/keyrings/docker.asc');
|
||||
|
||||
# Добавление репозитория Docker
|
||||
my $ubuntu_codename = get_ubuntu_codename();
|
||||
print "Определена версия Ubuntu: $ubuntu_codename\n";
|
||||
|
||||
my $sources_content = <<"EOF";
|
||||
Types: deb
|
||||
URIs: https://download.docker.com/linux/ubuntu
|
||||
Suites: $ubuntu_codename
|
||||
Components: stable
|
||||
Signed-By: /etc/apt/keyrings/docker.asc
|
||||
EOF
|
||||
|
||||
# Записываем содержимое в файл
|
||||
open my $fh, '>', '/tmp/docker.sources';
|
||||
print $fh $sources_content;
|
||||
close $fh;
|
||||
|
||||
run_cmd('sudo cp /tmp/docker.sources /etc/apt/sources.list.d/docker.sources');
|
||||
run_cmd('sudo rm -f /tmp/docker.sources');
|
||||
|
||||
# Обновление списка пакетов
|
||||
run_cmd('sudo apt update');
|
||||
|
||||
# Установка Docker
|
||||
run_cmd('sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin');
|
||||
|
||||
print "\nУстановка Docker завершена успешно!\n";
|
||||
print "Проверка версии Docker:\n";
|
||||
system('sudo docker --version');
|
||||
|
||||
print "\nПроверка работы Docker:\n";
|
||||
system('sudo docker run hello-world');
|
||||
22
service/nginx/ins_repo-nginx.sh
Executable file
22
service/nginx/ins_repo-nginx.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
|
||||
function system_update() {
|
||||
apt update
|
||||
apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring -y
|
||||
}
|
||||
|
||||
function add_reponginx() {
|
||||
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
|
||||
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
|
||||
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
|
||||
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
|
||||
| sudo tee /etc/apt/sources.list.d/nginx.list
|
||||
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
|
||||
| sudo tee /etc/apt/preferences.d/99nginx
|
||||
apt update
|
||||
}
|
||||
|
||||
system_update
|
||||
add_reponginx
|
||||
Reference in New Issue
Block a user