Установка Terraformer в UnixLinux

Установка 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» завершена.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: