Установка Maven в Unix/Linux
Сейчас я расскажу как можно установить данный инструмент на различные Unix/Linux ОС. Для работы Maven потребуется установить JDK, вот некоторые полезные статьи в помощь:
И так, джаву установили. Идем далее….
Установка Maven в CentOS/RedHat/Fedora
-===Использование готового пакета==-
После установки java, загружаем Apache maven с официального сайта или используйте следующую команду для загрузки Apache Maven 3.3.9 (на момент написания статьи — самая последняя и стабильная версия):
$ cd /usr/local/src && wget http://www-eu.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
Теперь извлекаем скаченный архив, используя следующую команду:
# tar xzf apache-maven-*-bin.tar.gz -C /usr/local
И создаем симлинк:
# ln -s /usr/local/apache-maven-*/ /usr/local/maven
PS: Более подробно о симлинках, можно узнать тут:
Далее, настроим путь Maven:
# vim /etc/profile.d/maven.sh
и прописываем:
#!/bin/bash export M2_HOME=/usr/local/maven export PATH=${M2_HOME}/bin:${PATH}
Для того чтобы настройки вступили в силу, выполняем:
$ source /etc/profile.d/maven.sh
Так же, можно обойтись без создания данного файла, для этого — открываем:
$ sudo vim ~/.bashrc
И вставляем:
export M2_HOME=/usr/local/maven export PATH=${M2_HOME}/bin:${PATH}
Перезагрузим оболочку:
# . ~/.bashrc
-===Использование репозитория и пакетного менеджера==-
Добавляем репозиторий:
$ sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
И выполняем установку:
# yum install apache-maven -y
И так, проверяем версию maven:
$ mvn -version
Вывод:
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T18:41:47+02:00) Maven home: /usr/local/maven Java version: 1.8.0_121, vendor: Oracle Corporation Java home: /usr/java/jdk1.8.0_121/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "2.6.32-573.12.1.el6.x86_64", arch: "amd64", family: "unix"
При желании, если вы используете Maven за прокси-сервером, вы должны сделать следующее. Открываем файл:
$ sudo vim ~/.m2/settings.xml
И прописываем:
<settings> <proxies> <proxy> <active>true</active> <protocol>http</protocol> <host>proxy.host.com</host> <port>port_number</port> <username>proxy_user</username> <password>proxy_user_password</password> <nonProxyHosts>www.google.com|*.somesite.com</nonProxyHosts> </proxy> </proxies> </settings>
Заменяем некоторые параметры и наслаждаемся работой.
Установка Maven в Debian/Ubuntu
-===Использование пакетного менеджера==-
Первое что нужно сделать, — проверить имеется ли пакет в репозитории:
# apt-cache search maven
Устанавливаем сам Maven:
$ apt-get install maven -y
И так, проверяем версию maven:
$ mvn -version
Вывод:
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T18:41:47+02:00) Maven home: /usr/local/maven Java version: 1.8.0_121, vendor: Oracle Corporation Java home: /usr/java/jdk1.8.0_121/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "2.6.32-573.12.1.el6.x86_64", arch: "amd64", family: "unix"
-===Использование готового пакета==-
Данное действие, я описывал в примере выше ( для centOS).
Установка Maven на Mac OS X
Для начала, устанавливаем HomeBrew:
После чего, выполняем команду:
$ brew search maven
Данная команда покажет какие пакеты имеются.
Чтобы установить, выполняем команду:
$ brew install maven
Установка Maven на другие Unix/Linux ОС
Для других Unix/Linux ОС — установка такая же — скачиваем архив, распаковываем его. Прописываем путь к мавену и можно использовать.
На этом, у меня все. Статья «Установка Maven в Unix/Linux» завершена.
Установка smem для проверки RAM/SWAP активности в Unix/Linux
И так, приступим к установке данной утилиты. Я приведу пример установки для некоторых Unix/Linux ОС.
Установка smem для проверки SWAP активности в Debian/Ubuntu/Kali/Mint
Установка очень простая, просто выполните команду:
$ sudo apt-get install smem -y
Очень изи, да?)
PS: Чтобы строить графики, нужно установить:
# apt-get install python-matplotlib
Установка smem для проверки SWAP активности в RHEL/CentOS/Fedora
Для установки, используйте:
# yum install smem -y
Как-то так.
PS: Чтобы строить графики, нужно установить:
# yum install python-matplotlib python-tk -y
Установка smem для проверки SWAP активности в других Unix/Linux ОС
Если не имеется пакета с smem утилитой, то его можно собрать или скомпилировать. Скачиваем исходный код:
$ cd /usr/local/src && wget https://www.selenic.com/smem/download/smem-1.4.tar.gz && tar xvf smem-*tar.gz
Скопируем утилиту:
# cd smem-* && cp smem /usr/local/bin/
Выставляем права:
# chmod +x /usr/local/bin/smem
Перейдем к использованию.
Тестирование filebeat в Unix/Linux
Если установка стека ELK прошла успешно, Filebeat должен собирать логи клиентов и передавать их на сервер ELK. Logstash будет загружать данные Filebeat в Elasticsearchс индексом filebeat-YYYY.MM.DD.
Перейдите на сервер ELK и убедитесь, что Elasticsearch получает данные, запросив индекс Filebeat:
# curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'
Загрузка дашборда Kibana
Elastic предоставляет несколько образцов дашбордов Kibana и шаблонов индексов Beats. Загрузите дашборды, чтобы использовать их с индексом Filebeat.
# cd /usr/local/src && curl -L -O https://artifacts.elastic.co/downloads/beats/beats-dashboards/beats-dashboards-5.4.1.zip
Распаковываем:
$ unzip beats-dashboards-*.zip
Загружаем образец дашборда, визуализацию и шаблоны индексов Beats в Elasticsearch.
$ bash beats-dashboards-*/load.sh
Ну, на этом, у меня все. если появятся дополнения, то обязательно допишу.
Статья «Установка Filebeat в Unix/Linux» завершена.
Удаление Kubernetes кластера в Unix/Linux
Чтобы удалить ноду с кластера, на мастере, выполните:
# kubectl delete node your_node_for_delete
Если же нужно удалить вообще все — то обратное действие — установки.
Для удаления деплоймента, используйте:
# kubectl delete deployment nginx
Теоретически, данный кластер можно поднять минут за 10-15. Но я потратил больше времени, — выплывали всякие косяки. Вывод — данная цтилита, довольно прикольная и юзабельная, но как по мне — нужна доработка. Так же, хотелось отметить, что мой кластер работает, но его нужно оптимизировать/автоматизировать. Нужно больше времени чтобы понять как я могу это сделать.
Вот и все, статья «Установка Kubernetes кластера в Unix/Linux» завершена.
Использование pexpect и python в Unix/Linux
Давайте рассмотрим примеры. Создадим питон-скрипт:
$ cat python_pexpect.py
# This connects to the openbsd ftp site and # downloads the recursive directory listing. import pexpect child = pexpect.spawn ('ftp ftp.linux-notes.org') child.expect ('Name .*: ') child.sendline ('anonymous') child.expect ('Password:') child.sendline ('[email protected]') child.expect ('ftp> ') child.sendline ('cd pub') child.expect('ftp> ') child.sendline ('get some_file.gz') child.expect('ftp> ') child.sendline ('bye')
Простой скрипт, но с использованием pexpect — выглядит внушительно!
Вот еще другой скрипт:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import pexpect switch_ip = "10.0.0.1" switch_un = "user" switch_pw = "s3cr3t" switch_enable_pw = "m0r3s3cr3t" port = "Gi2/0/2" vlan = 300 try: try: child = pexpect.spawn('ssh %s@%s' % (switch_un, switch_ip)) if verbose: child.logfile = sys.stdout child.timeout = 4 child.expect('Password:') except pexpect.TIMEOUT: raise OurException("Couldn't log on to the switch") child.sendline(switch_pw) child.expect('>') child.sendline('terminal length 0') child.expect('>') child.sendline('enable') child.expect('Password:') child.sendline(switch_enable_pw) child.expect('#') child.sendline('conf t') child.expect('\(config\)#') child.sendline('interface %s' % (port)) o = child.expect() if o != 0: raise Exception("Unknown switch port '%s'" % (port)) child.sendline('switchport access vlan %s' % (vlan)) child.expect('\(config-if\)#') child.sendline('no shutdown') child.expect('#') child.sendline('end') child.expect('#') child.sendline('wr mem') child.expect('') child.expect('#') child.sendline('quit') except (pexpect.EOF, pexpect.TIMEOUT), e: error("Error while trying to move the vlan on the switch.") raise
Как-то так.
У меня на этом все, статья «Установка/Использование pexpect и python в Unix/Linux» завершена.
Использование locate и updatedb в Unix/Linux
Обновляем список файлов:
# updatedb
И после чего можно пользоваться, например мне нужно найти расположение файла datedetector.py (для добавление конфигурации fail2ban), то для этого нужно выполнить:
# locate datedetector.py /usr/lib/python2.7/site-packages/fail2ban/server/datedetector.py /usr/lib/python2.7/site-packages/fail2ban/server/datedetector.pyc /usr/lib/python2.7/site-packages/fail2ban/server/datedetector.pyo
updatedb
Данное руководство документирует версию GNU о updatedb, которая обновляет базы данных всех имен для файлов, используемые GNU locate. Базы данных имен всех файлов содержат списки файлов, которые были найдены в ходе сканирования данной утилиты. Имя файла базы данных по умолчанию определяется при установке и настройке locate и updatedb. Частота, с которой выполняется обновление баз и каталогов, для которых они содержат записи зависит от того, как часто updatedb запускается и так же от аргументов которые переданы в конфиге.
В сетевых средах, часто имеет смысл создать базу данных в корне каждой файловой системы, содержащий записи для этой файловой системы. Запустите updatedb для каждой файловой системы на файловом сервере, где это файловая система находится на локальном диске. Пользователи могут выбрать, какие базы данных нужно искать с помощью переменной среды или параметра командной строки. Базы данных не могут быть объединены вместе.
Новый GNU locate можно прочитать и старые, и новые форматы баз данных.
Опции для updatedb.
-uСоздать slocate базу данных, начиная с корневого каталога. Это происходит по умолчанию, если вызывается updatedb.
-U pathСоздать slocate базу данных, начиная с указанного пути.
-e dirsИсключить каталоги разделенными запятыми из базы данных slocate.
-f fstypesИсключить файловые системы, разделенные запятыми из базы данных slocate.
-l <num>Уровень безопасности. -l 0 означает что проверки безопасности выключены, что сделает поиск быстрее. -l 1 означает что проверки безопасности включены. Это по умолчанию.
-qТихий режим; Сообщения об ошибках подавляются.
-vПодробный режим; Показать файлы которые индексируются при создании базы данных.
—helpРаспечатать список опций для slocate и выйти.
—versionВывести номер версии slocate и выйти.
—output=dbfileФайл базы данных, чтобы построить. По умолчанию зависит от системы, но обычно это/usr/local/var/locatedb.
—netuser=userПользователю говорится искать сетевые каталоги, как, используя SU. По умолчанию
—old-formatСоздание базы данных в старом формате вместо нового.
locate project
Показывает все файлы, которые содержат строку «project». Если эта команда не работает, вам нужно будет выполнить команду:
# slocate -u
Эта команда создает slocate базу данных, которая позволит вам использовать команду найти (slocate). Это может занять несколько минут.
Опции для locate.
-uСоздать slocate базу данных, начиная с пути /.
-U dirСоздать slocate базу данных, начиная с пути.
-eИсключить каталоги из базы данных slocate.
-f
Исключить файлы на конкретной файловой системы из базы данных slocate.
-cРазпарсить «/etc/updatedb.conf» при обновлении базы данных slocate.
-l
Уровень безопасности. 0 означает что проверки безопасности выключена. Это сделает Осуществляет поиск быстрее. 1 означает что проверки безопасности включены. Это по умолчанию.
-i
Делает поиск без учета регистра.
-q
Тихий режим. Сообщения об ошибках подавляются.
-n
Ограничьте количество результатов.
-r—regexp=
Поиск по базе данных с помощью базовых регулярных выражений в POSIX.
-o—output=
Указывает базу данных, чтобы создать ее.
-d—database=
Указывает путь базы данных для поиска.
-h
—help вывод помощи.
-v—verbose
Подробный режим. Отображение файлов при создании базы данных.
-V—version
Отображение версии.
На этом, моя тема «Установка locate и updatedb в Unix/Linux» подошла к завершению.
Настройка Redis в Unix/Linux
Откроем конфиг:
# vim /etc/redis/6379.conf
У меня он выглядит следующим образом:
bind 127.0.0.1 protected-mode yes port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize yes supervised no pidfile /var/run/redis_6379.pid loglevel notice logfile /var/log/redis_6379.log databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir /var/lib/redis/6379 slave-serve-stale-data yes slave-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-disable-tcp-nodelay no slave-priority 100 appendonly no appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-size -2 list-compress-depth 0 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes
И так, у меня редис висит на локалхосте ( 127.0.0.1 ), вот строка:
bind 127.0.0.1
Вообще, можно изменить данную строку на «0.0.0.0» или на конкретный IP адрес.
Строка:
protected-mode yes
Говорит что включен мод-защиты. Это означает, что никто из вне, не сможет подключится к данному редис-серверу. Если хотите чтобы клиенты с других хостов подключались к Redis, то установить в «no».
Сервер использует 6379-й порт. Можно повесить на сокет при необходимости.
Это стандартная конфигурация и она не идеальная, т.к она может «сожрать» всю RAM. Для того чтобы этого не произошло, стоит добавить:
maxmemory 2147483648
И так, я для редиса, ограничил использования виртуальной памяти до 2 Гб. Так же, можно защитить редиску-сервис и установить пароль, для этого — находим строку:
# requirepass foobared
И приводим к виду:
requirepass Your_PASSWORD_here
Иногда, бывает полезным — запретить использование команд, находим:
# rename-command CONFIG ""
И прописываем:
rename-command CONFIG ""
Это запретит использования CONFIG команды в редис. Но можно и переименовать некоторую команду, например:
rename-command CONFIG rename_CONFIG
Данное выражение, заменит использование CONFIG на rename_CONFIG.
Чтобы проверить бенчмарк (нагрузку на редис-сервер), используйте команду:
$ redis-benchmark
На этом, у меня все. Статья «Установка Redis в Unix/Linux» завершена. В следующей теме, я расскажу как собрать кластер из редиску — как создать свой огород))))
Установка ZooKeeper в Unix/Linux
Перед тем как перейдем к самой установки zookeeper, нужно установить Java на сервер. Я сейчас приведу несколько полезных инструкций по этой теме:
И после этого действия, переходим к установке утилиты.
Установка ZooKeeper на CentOS/RedHat/Fedora
И так, первое что сделаю — обновлю ОС:
# yum update -y && yum upgrade -y
Можно установить репозиторий и с него установить zookeeper. Но т.к я не особо доверяю сторонним репозиториям, по этому, я установлю по другом ( установка внизу).
Установка ZooKeeper на Debian/Ubuntu
Обновить данные о репозиториях
$ sudo apt-get update -y
И:
$ sudo apt-get upgrade -y
Можно установить zookeeper с репозитория:
# apt-get install zookeeperd -y
PS: Такую настройку не производил.
Установка ZooKeeper для других Unix/Linux
Приведу пример установки на CentOS. И так, перейдем в папку и скачаем последний стабильный релиз утилиты ( на момент написания статьи):
$ cd /usr/local/src && wget http://apache-mirror.rbc.ru/pub/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
После скачивания, распаковываем архив:
$ tar -zxf zookeeper-*.tar.gz -C /usr/local
И переименуем папку ( для удобства использования):
# mv -f /usr/local/zookeeper-* /usr/local/zookeeper
Для проекта, необходимо создать папку ( будет использоваться для сохранения данных):
$ mkdir -p /home/zookeeper/data
Установка завершена, приступим к настройке!
Настройка InfluxDB в Unix/Linux
По умолчанию InfluxDB использует порты 8083, 8086, 8090 и 8099. Можно использовать и другие порты — для этого потребуется внести соответствующие изменения в конфигурационный файл. Рассмотрим особенности конфигурирования InfluxDB более подробно.
Проверим какие слушает, можно:
# netstat -natpl | grep -E "80" tcp 0 0 127.0.0.1:8088 0.0.0.0:* LISTEN 4461/influxd tcp 0 0 :::8086 :::* LISTEN 4461/influxd #
Проверяем что сервис запущен:
# ps aux | grep influxdb | grep -Ev "grep" influxdb 4461 0.2 1.2 285200 12880 ? Sl 23:45 0:00 /usr/bin/influxd -pidfile /var/run/influxdb/influxd.pid -config /etc/influxdb/influxdb.conf #
В конфигурационном файле, открываем его для начала:
# vim /etc/influxdb/influxdb.conf
В нем имеются настройки, которые делятся на группы:
- — Задается некоторые детали для логирования. Можно выставить уровень самого логироваия и указать имя лога;
- — Задаются некоторые настройки веб-интерфейса. Можно задать порт (на нем будет работать внутренний веб-сервер). Так же, можно указать путь к файлам веб-интерфейса;
- — Настройки HTTP API;
- — Задаются некоторые настройки для ввода данных из внешних источников (можно настроить отправку данных в Grafana; Также в этом разделе можно настроить ввод данных по протоколу UDP).
- —Задаются настройки протокола согласования RAFT;
- — Задаются настройки хранения данных;
- —Задаются настройки для работы в кластерном режиме (более подробно они будут описаны ниже;
- — настройки опережающего введения журнала (Write Ahead Logging, WAL).
Открываем конфиг:
# vim /etc/influxdb/influxdb.conf
Приводим к виду:
enabled = true bind-address = ":8086" # change to a specific interface if needed auth-enabled = true # will enforce authentication
Для генерации конфига, используйте:
$ influxd config > /etc/influxdb/influxdb.generated.conf
Подключение и создание БД в influxDB
Чтобы подключится, используем:
# influx
Для создания БД, используем следующую команду:
> CREATE DATABASE its_my_first_DB
Где:
its_my_first_DB — Название БД.
Чтобы подключится, используем:
# influx
Чтобы просмотреть какие БД имеются, используем:
> SHOW DATABASES
Использование базы данных в influxDB
Чтобы подключится, используем:
# influx
Чтобы начать использовать БД:
> USE mydb
Запишем некоторые данные в созданную БД:
> INSERT cpu,host=My_server1,region=us_west value=0.88
Или, вставим еще другие данные:
> INSERT temperature,machine=node_1,type=assembly external=13,internal=66
Не очень сложно.
Просмотр данных в influxDB базе
Чтобы подключится, используем:
# influx
Чтобы просмотреть какие БД имеются, используем:
> SHOW DATABASES
Чтобы начать использовать БД:
> USE mydb
И, выбираем данные:
> SELECT * FROM cpu name: cpu time host region value ---- ---- ------ ----- 1501535158522710659 My_server1 us_west 0.88 >
Или:
> SELECT * FROM temperature name: temperature time external internal machine type ---- -------- -------- ------- ---- 1501535403235325917 13 66 node_1 assembly >
InfluxDB поддерживает сложный язык запросов, позволяющий выполнять много разных типов запросов. Например:
> SELECT * FROM /.*/ LIMIT 1 > SELECT * FROM CPU_loading > SELECT * FROM MEMORY WHERE value > 33243243424
Создание пользователя в influxDB
Создать пользователя можно одним из следующих примерах:
> CREATE USER My_USER WITH PASSWORD 'Your_PW' WITH ALL PRIVILEGES
Или:
> CREATE USER My_USER WITH PASSWORD 'Your_PW'
Выставить права можно:
> GRANT ALL ON My_DB_1 TO My_USER > GRANT READ ON My_DB_2 TO My_USER2
Все гениальное — просто!
А я на этом завершаю свою статью «Установка InfluxDB в Unix/Linux».
Настройка ZooKeeper в Unix/Linux
Настройка zookeeper, очень простая и сейчас вы в этом убедитесь. В папке conf, имеется простой конфигурационный файл, возьмем его и скопируем:
$ cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
Открываем файл с настройками:
# vim /usr/local/zookeeper/conf/zoo.cfg
Приводим его к следующему виду:
tickTime=2000 initLimit=5 syncLimit=2 dataDir=/home/zookeeper/data clientPort=2181
Запускаем сервер:
$ /usr/local/zookeeper/bin/zkServer.sh start ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
И выполняем проверку:
$ /usr/local/zookeeper/bin/zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: standalone
Видим, что все запустилось и работает хорошо. И сейчас, стоит запустить еще один сервис:
$ /usr/local/zookeeper/bin/zkCli.sh
И еще, можно проверить работу самого zookeeper следующим образом:
$ echo ruok | nc 127.0.0.1 2181 imok
Настройка завершена.
PS: Можно для удобства использования, прописать ENV переменные ( местонахождение скриптов для запуска zookeeper). Например, открываем bashrc ( можно zsh, если используете ее):
$ vim ~/.bash_profile
И прописываем:
export ZOOKEEEPER_HOME=/usr/local/zookeeper:$ZOOKEEEPER_HOME/bin
Чтобы изменения вступили в силу, выполняем:
$ . ~/.bash_profile
Или:
$ source ~/.bash_profile
Использование упростилось до:
$ zkServer.sh status
Как по мне, довольно стоящее решение.
Настройка/Использование Spinnaker в Unix/Linux
И так, настройка прошла успешно. Открыли Spinnaker на http://localhost:9000. Домашняя станица Spinnaker-а выглядит следующим образом:
В поле поиска, можно поискать проекты, кластера, ЛБ, секьюрити группы и тд и тп. Например:
Приступим к использованию!
Создание Spinnaker пайплайна
Начну создание приложения под названием MyTestApp:
Нажимаем на кнопку «Create». Созданное приложение выглядит так:
Идем далее, создаем лоад баллансер, для этого клацаем по «Load Balancers» -> «Create Load Balancer»:
Во вкладке с «BASIC SETTINGS», заполняем:
- Account -> local.
- Namespace -> default.
- Stack -> prod.
Далее, во вкладке с «PORTS»:
В данной вкладке стоит прописать:
Target Port -> 80.
Далее, во вкладке с «ADVANCED SETTINGS»:
В данной вкладке, прописываем:
Type -> NodePort.
Нажимаем на «Create». Аналогичными действиями, создаем ЛБ с названием «dev», но только в последней вкладке стоит выбрать «ClusterIP»:
После чего, должно выти что-то типа следующего:
ЛБы готовы и теперь можно создавать pipeline, переходим в данную вкладку и нажимаем на «Create»:
Заполняем:
Pipeline Name -> DeployToProd
Нажимаем на «Create»:
Жмакаем на «Save Changes». Прокручиваем стрцницу вверх и кликаем на «Add stage»:
Заполняем:
Stage name -> Deploy
Затем кликаем по «Add server group»:
Я выбрал:
Copy configuration from -> None. Т.к у меня нет подходящих шаблонов для этого деплоймента.
Нажимаем на «Continue without a template»:
Нажимаем на вкладку «LOAD BALANCERS» и выбираем нужный (в данном случае — mytestapp-prod):
Переходим во «CONTAINER» вкладку и заполняем:
В данной вкладке, стоит открыть «Probes» и добавляем использование Readiness Probe и Liveness Probe:
И так, нажимаем на «Add» чтобы добавить наши ченджи. И потом, кликаем по «Save Changes».
Т.к я деплою nginx, а не приложение с кодом (так бы сработал триггер по коммиту), то запущу «Start manual execution»:
Выбераем параметры:
Нажимаем на «Run».
Получаем сервисы:
Чтобы проверить, работает ли деплоймент, пробросим прокси куба:
ЗАМЕЧАНИЕ: для того чтобы прокси работал в бэкграунде, выполняем:
Т.к я деплоил mytestapp-prod приложение, а оно находится на http://127.0.0.1:30294/ то кликаем по нему и попадаем собственно на задеплоенный nginx!
Стоит выполнить ряд действий для dev стейджа. Клацаем «Pipelines» -> «Create». Название выбираем название «DeployToDev»:
После чего. Нажимаем на «Save Changes». И кликаем «Add Stage»:
Заполняем:
- Type -> Deploy.
- Stage Name -> Deploy.
В поле «Add server group», выбераем «mytestapp-prod-v000»:
Выбираем из списка и нажимаем на «Use this template». Он скопирует темплейт в новый. Немного поправим его:
Далее, в поле «Load Balancers»:
Заменили и идем в «Container»:
Во вкладке «Probes», включаем Readiness Probe и Liveness Probe (как в примерах выше). После всех настроек, клацаем на «Add» -> «Save Changes».
Вернусь в главное меню апликейшина и нажму на только созданный пайплайн:
Скачаем дашборды для куба:
Смотрим токены:
Открываем — http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
С помощью данных бордов можно смотреть инфу.
В завершении, содаем новый пайплайн с названием PromoteToProd:
Жмакаем на «Create». И заполняем поля:
Нажимаем на «Save Changes». После чего, открываем «Add Stage»:
Заполняем и клацаем на «Save Changes». Клацаем на «Add stage» для создания деплоя на ПРОД:
Клацаем на «Add server group» и выбераем «Copy configuration from», а имеено с «None» и кликаем на «Continue without any templates». Заполняем:
Кликаем на «Add» -> «Save Changes».
Нажимаем на билды. Перекидываем с dev -> prod:
Проверяем через ИП деплой! Все должно работать.
Вот и все, статья «Установка Spinnaker в Unix/Linux» завершена.