Стандартные права (suid, sgid, sticky bit) в unix/linux

Настройка 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».

Запустить команду от другого пользователя в Unix/Linux

Иногда, просто необходимо запустить команду от другого пользователя. И существует несколько способов, как это можно сделать. Я расскажу о них в своей статья «Запустить команду от другого пользователя в Unix/Linux».

Запустить команду от другого пользователя в Unix/Linux — способ 1

И так, можно использовать утилиту SUDO. Рассмотрим пример:

$ sudo -H -u Your_another_user -c 'ping linux-notes.org'

Пояснения:

  • -H YOUR_HOME: Задает HOME (Переменное окружение для хома конкретного юзера) и по умолчанию — это root.
  • -u YOUR_USER: Задаем пользователя от которого будет выполнена команда.
  • -c YOUR_COMMAND: Служит опцией для ввода команды.

Как-то так.

Запустить команду от другого пользователя в Unix/Linux — способ 2

Можно использовать утилиту SU. И сейчас приведу несколько примеров.

Логин в root юзера

Чтобы получить рута, выполните:

$ su -

Или:

$ su - root

Запустить команду как root юзер

Вот пример команды:

# su - root -c "YOUR_COMMAND_HERE"

Или

su - -c "YOUR_COMMAND_HERE arg1"

Идем дальше….

Выполнить команду от другого пользователя с помощью su

И так, вот пример:

# su -c "/opt/solr/bin/solr create -c test_solr_core -n solrconfig.xml" -s /bin/sh solr

Created new core 'test_solr_core'

Рассмотрим другой пример:

$ su another_user -c 'ping linux-notes.org'

Или:

$ su - YOUR_USER -c "YOUR_COMMAND_HERE"

Где:

  • — — Будет имитировать логин указанного пользователя.
  • -c — Служит для указания команды для выполнения (для указанного юзверя).

Как-то так.

Запустить команду от другого пользователя в Unix/Linux — способ 3

И так, можно использовать утилиту runuser. Команда runuser запускает оболочку с заменяющими идентификаторами пользователей и групп. Эта команда полезна только когда вы залогинены как пользователь root. Синтаксис выглядит следующим образом:

# runuser -l YOUR_USER -c 'YOUR_COMMAND_HERE'

Как пример, я покажу следующую строку:

# runuser -l nginx -c 'service nginx start'

PS: Для использования команды runuser пароль не требуется, и он должен запускаться только пользователем root.

Основные опции:

  • -l: Создаст оболочку для входа в систему, используя файл runuser-l PAM вместо стандартного.
  • -g: Указывает на основную группу.
  • -G: Указывает на дополнительную группу.
  • -c: Собственно, служит для указания команды.
  • –session-command=COMMAND: Передает одну команду в оболочку с  опцией «-c» и не создает новый сеанс.
  • -m: Не сбрасывайте переменные среды (ENV).

Вот и все, тема «Запустить команду от другого пользователя в Unix/Linux» завершена.

Деплой манифестов. Модель Pull

Взглянем на изображение ниже.

На скрине схематично показан процесс выката приложения

Разработчик пушит изменения в Git-репозиторий, в данном случае это GitLab, но может быть Bitbucket или GitHub, это неважно. В этом репозитории также хранится ваше описание Kubernetes, это могут быть Helm-чарты или просто манифесты YAML — решать вам в зависимости от ваших предпочтений

Вы можете хранить файлы описания в отдельном репозитории. Но тогда в случае, например, с GitLab, нужно будет воспользоваться хуками для активации выкладки с изменёнными параметрами после сборки образа.

Продолжим. Изменения в коде триггерят активацию пайплайна сборки

Как вы будете собирать изменения тоже неважно — Jenkins, GitLab CI/CD или любой другой механизм. Главное — понять концепцию

Активация пайплайна заставляет сборщик собрать новый образ приложения и опубликовать его в реестре контейнеров. Используйте теги или переменные окружения для версионирования образов.

Далее наш собранный образ проходит автоматические тесты. Затем мы разворачиваем наш релиз — в примере с помощью Helm — в наш кластер Kubernetes. Не забываем про встроенную возможность сделать rollback. В общем, так выглядит стандартная схема деплоя приложения в кластер. Обязательно продумайте, как у вас будет выполняться миграция, как эффективно убрать даунтайм приложения или то, как и куда будут попадать пользователи во время деплоя.

Оглавление

Дисклеймер: Данная статья не несёт в себе практических описаний того, как реализовать выкладку вашего приложения в Kubernetes. Какую конечную версию решения и какие инструменты будете использовать — решать только вам.

Контейнеризированные приложения продолжают захватывать мир. Та революция, которую начал Docker, будет приобретать всё большие масштабы. После Docker к нам в 2014 году, а если брать версию 1.0 — в 2015, пришёл Kubernetes, и, давайте скажем честно, он классный. Он позволяет решать кучу задач в автоматическом режиме, из-за которых вы, скорее всего, как OPS-инженер могли плохо спать по ночам. Kubernetes принёс нам новый уровень абстракций над контейнеризированными приложениями. И сейчас большинство компаний стремятся перетащить в него свою рабочую нагрузку и управлять через него своими приложениями. А там, где есть приложения, нам надо продумать, как мы будем их выкатывать. Об этом сегодня и поговорим.

Установка Lsyncd в Unix/Linux

Процесс установки очень прост и не требует очень больших усилий. Я приведу несколько примеров по установки данной утилиты на различные Unix/Linux ОС.

Установка Lsyncd в Debian/Ubuntu

# apt-get update -y && apt-get update -y

Выполним установку:

# apt-get install lsyncd -y

После установки, переходим к настройке.

Установка Lsyncd в CentOS/RedHat/Fedora

# yum -y update

Выполним установку:

# yum install lsyncd -y

И, установим дополнительные пакеты:

# yum install lua lua-devel pkgconfig gcc asciidoc -y

После установки, переходим к настройке.

Установка Lsyncd в Mac OS X

Ставим себе на машину homebrew:

И выполняем установку:

$ brew install lsyncd

После установки, переходим к настройке.

GitOps подход. Модель Push

Давайте взглянем на схему реализации push-модели.

Данный подход предполагает использование двух репозиториев. В первом репозитории мы храним код нашего приложения. Там же мы храним Docker-файлы для сборки, но не храним Helm-чарты или описания желаемого состояния кластера в простых манифестах или с применением kustomize. Триггер сборки активирует пайплайн, который собирает и тестирует новый образ приложения, а также пушит его в registry.

Затем вносятся изменения в репозиторий с манифестами, которые описывают желаемое состояние кластера. Далее оператор синхронизации — в данном случае представлен Argo CD, однако вы можете использовать Flux2 — определяет, что текущее состояние не соответствует описанному состоянию в репозитории, и приводит кластер к этому состоянию. Оператор синхронизации является приложением, предварительно задеплоенным в кластер. Хранение манифестов в отдельном репозитории с их синхронизацией упрощает ваш CI-пайплайн, избавляя его от задач выката приложения.

Сегодня мы рассмотрели две основные модели CI/CD-доставки кода в кластер Kubernetes. Надеюсь, после этой статьи стало немного понятнее, как реализовать выкладку вашего приложения. По какой модели лучше работать — решать вам. Всё будет зависеть от тех задач, которые выполняет приложение, и от того, из каких компонентов оно состоит

Важно использовать Kubernetes с умом и не забывать, что мы используем инструменты для достижения цели, а не ставим цели, чтобы для них подходили конкретные инструменты.

Инструменты GitOps

Ниже приведены несколько популярных инструментов GitOps, которые вы должны попробовать, работая над рабочими процессами GitOps. Я не буду перечислять Git и Kubernetes, потому что это очевидно!

1. Flux

Flux был создан в 2016 году компанией Weaveworks.

Это оператор GitOps для вашего кластера Kubernetes. Он периодически извлекает удаленный репозиторий Git и ищет новые изменения в файлах манифеста. В случае изменения в репозитории, он применяет изменения к кластеру.

2. ArgoCD

ArgoCD также является оператором GitOps, но с пользовательским веб-интерфейсом. Он смоделирует ваш конвейер GitOps с помощью визуальных элементов и диаграмм. Вы также можете визуализировать свою среду и конфигурации приложений с помощью этого инструмента.

3. Jenkins X

Jenkins X — это решение CICD для кластеров Kubernetes, но отличается от классического Jenkins.

Он используется в качестве инструмента GitOps для создания кластера, развертывания контейнера, автоматического отката и т.д. Когда изменение помещается в репозиторий git, Jenkin X считывает и обновляет свои конфигурации после запуска сборки.

4. WKSctl

WKSctl — это инструмент GitOps, который использует коммиты Git для управления кластером Kubernetes. В режиме работы GitOps кластер настраивается на основе сведений, содержащихся в файлах cluster.yml и machines.yml, сохраненных в Git.

5. Gitkube

Gitkube идеально подходит для разработки. Он использует Git push для создания и развертывания образов докеров в кластере Kubernetes.

Он очень прост в настройке и требует простой аутентификации на основе открытого ключа.

6. Helm Operator

Helm Operator — это оператор Kubernetes с открытым исходным кодом, предназначенный для декларативного управления выпусками диаграммы управления. В сочетании с flux он становится подходящим решением GitOps для автоматизации релизов.

7. Quay

Quay управляется Red-Hat и используется для управления образами / реестра образов. Он обеспечивает безопасность и надежность для управления изображениями. Это не зависит от GitHub; скорее, он работает с локальным реестром образов.

Подготовка к работе

Вам нужен Kubernetes кластер и инструмент командной строки kubectl должен быть настроен
на связь с вашим кластером. Если у вас ещё нет кластера,
вы можете создать, его используя
Minikube,
или вы можете использовать одну из песочниц Kubernetes:

  • Katacoda
  • Play with Kubernetes

На кластере должен быть хотя бы 1 доступный для работы CPU, чтобы запускать учебные примеры.

Для некоторых шагов с этой страницы понадобится запущенный
сервер метрик
на вашем кластере. Если сервер метрик уже запущен, следующие шаги можно пропустить.

Если вы используете Minikube, выполните следующую команду,
чтобы запустить сервер метрик:

Проверим, работает ли сервер метрик (или другой провайдер API ресурсов метрик,
), выполните команду:

Если API ресурсов метрик доступно, в выводе будет присутствовать
ссылка на .

Запрос ресурсов CPU больше доступного на ноде

Запросы и лимиты CPU устанавливаются для контейнеров, но также полезно рассматривать и Pod
имеющим эти характеристики. Запросом CPU для Pod’а является сумма запросов CPU всех его контейнеров.
Аналогично и лимит CPU для Pod’а — сумма всех ограничений CPU у его контейнеров.

Планирование Pod’а основано на запросах. Pod попадает в расписание запуска на ноде лишь в случае
достаточного количества доступных ресурсов CPU на ноде, чтобы удовлетворить запрос CPU Pod’а.

В этом упражнении мы создадим Pod с запросом CPU, превышающим мощности любой ноды в вашем кластере.
Ниже представлен конфигурационный файл для Pod’а с одним контейнером. Контейнер запрашивает 100 CPU,
что почти наверняка превышет имеющиеся мощности любой ноды в кластере.

Создадим Pod:

Проверим статус Pod’а:

Вывод показывает Pending статус у Pod’а. То есть Pod не запланирован к запуску
ни на одной ноде и будет оставаться в статусе Pending постоянно:

Посмотрим подробную информацию о Pod’е, включающую в себя события:

В выводе отражено, что контейнер не может быть запланирован из-за нехватки ресурсов
CPU на нодах:

Удалим Pod:

Единицы измерения CPU

Ресурсы CPU измеряются в CPU единицах. Один CPU, в Kubernetes, соответствует:

  • 1 AWS vCPU
  • 1 GCP Core
  • 1 Azure vCore
  • 1 гипертрединговое ядро на физическом процессоре Intel с Гипертредингом

Дробные значения возможны. Контейнер, запрашивающий 0.5 CPU, получит вполовину меньше ресурсов,
чем контейнер, запрашивающий 1 CPU. Можно использовать окончание m для обозначения милли. Например,
100m CPU, 100 milliCPU и 0.1 CPU обозначают одно и то же. Точность выше 1m не поддерживается.

CPU всегда запрашивается в абсолютных величинах, не в относительных; 0.1 будет одинаковой частью от CPU
для одноядерного, двухъядерного или 48-ядерного процессора.

Что такое GitOps?

GitOps — это процесс, который используется для непрерывного развертывания облачного приложения. Этот процесс ориентирован на разработчиков, и для управления инфраструктурой используется удобный для разработчиков инструмент, такой как Git. Git — это единственный источник истины для всей автоматизации развертывания инфраструктуры и приложений.

Это операционная среда, в которой используются лучшие практики DevOps, используемые для разработки приложений. Это контроль версий, совместная работа, соответствие требованиям, CI / CD, и он применяет их для автоматизации инфраструктуры. В двух словах, GitOps состоит из трех основных компонентов.

Это комбинация инфраструктуры как кода ( IaC ), запросов на слияние и автоматизации CI/CD.

Настройка и использование Lsyncd в Unix/Linux

Чтобы все хорошо работало, нужно сгенерировать RSA ключ и положить его на удаленный сервер. Я пропущу данный шаг, т.к я это уже сделал, а если не знаете как это сделать вот статья:

Настройка и использование Lsyncd на Mac OS X

И так, я у себя на mac OS X хотел бы настроить lsyncd таким образом, чтобы он синхронизировал все изменения.

И так, я установил данную утилиту и следующим действием, я создам папку где будет хранится лог-файлы:

$ mkdir /usr/local/var/log/lsyncd

И создаю нужные файлы:

$ touch /usr/local/var/log/lsyncd/lsyncd.{log,status}

PS: В ОС Linux они могут лежать в /var/log/lsyncd. Если не имеется такой папки, то создаем.

Далее, я создаю каталог lsyncd в /etc/ для настройки конфига:

$ sudo mkdir /etc/lsyncd

После создания данной папки, я создаю конфигурационный файл:

# vim /etc/lsyncd/linux_notes.conf.lua

Содержание следующее:

settings  {
    logfile = "/usr/local/var/log/lsyncd/lsyncd.log",
    statusFile = "/usr/local/var/log/lsyncd/lsyncd.status",
    statusInterval = 1,
    nodaemon = off
}
sync {
    default.rsyncssh,
    source = "/Users/captain/tmp",
    host = "captain@31.187.70.238",
    targetdir = "/home/captain/",
    excludeFrom="/etc/lsyncd/linux_notes.exclude",
    delay=3,
    rsync = {
        sparse = true,
        update = true,
        links = true,
        times = true,
        protect_args = false,
        archive = true,
        compress = true,
        whole_file = false,
        acls = true,
        verbose = true
    },
    ssh = {
        port = 22,
        _extra = {"/usr/bin/ssh -l captain -p 22 -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no"}
    }     

}

Иногда нужно исключать некоторые каталоги. Вы можете создать файлe и добавить исключения в строке как в этом примере:

# vim /etc/lsyncd/linux_notes.exclude
.git/*
.*

Теперь мы можем запустить службу lsyncd, выполнив следующую команду:

$ sudo lsyncd /etc/lsyncd/linux_notes.conf.lua -delay 0

Настройка и использование Lsyncd на CentOS

Вот еще пример (проверялось на CentOS 7):

# vim  /etc/lsyncd.conf

И прописываем:

settings  {
    logfile = "/var/log/lsyncd/lsyncd.log",
    statusFile = "/var/log/lsyncd/lsyncd.status",
    statusInterval = 1
}
sync {
    default.rsyncssh,
    source = "/var/www/html",
    host = "31.187.70.238",
    targetdir = "/home/backups/",
    rsync = {
        sparse = true,
        update = true,
        temp_dir="/tmp/",
        links = true,
        times = true,
        protect_args = false,
        archive = true,
        compress = true,
        whole_file = false,
        acls = true,
        verbose = true
     },
     ssh = {
        port = 22,
        _extra = {"/usr/bin/ssh -l captain -p 22 -i /home/captain/.ssh/id_rsa -o StrictHostKeyChecking=no"}
    }     

}

ИЛИ, если использовать RSYNC:

settings = {
 logfile = "/var/log/lsyncd/lsyncd.log",
 statusFile = "/var/log/lsyncd/lsyncd.stat",
 statusInterval = 2,
},
sync{
 default.rsync,
 source="/var/www/html",
 target="31.187.70.238:/home/captain/", 
 rsync={rsh ="/usr/bin/ssh -l captain -i /home/captain/.ssh/id_rsa",}
}

Запускаем демон:

# service lsyncd restart

Добавляем в автозагрузку ОС:

# chkconfig lsyncd on

Если используете CentOS 7:

# systemctl restart lsyncd

И

# systemctl enable lsyncd

Подключаемся к серверу и проверяем папки. Так же, можно посмотреть логи.

Репликация в 2 стороны

Чтобы работала репликация и в обратную сторону — на сервере в другом регионе проведите такие же настройки, но в файле конфигурации lsyncd укажите адрес первого сервера. Проверьте, что данные реплицируются и в обратном направлении. В конфигурации lsyncd уже указана временная директория temp_dir, использование которой необходимо для двусторонней синхронизации.

Репликация на несколько серверов

Вот пример конфиругации:

settings = {
   delay        = 1,
   maxProcesses = 3,
   logfile = "/var/log/lsyncd/lsyncd.log",
   statusFile = "/var/log/lsyncd/lsyncd.stat",
}

targetlist = {
 "66.66.66.10:/var/www/html", 
 "66.66.66.20:/var/www/html"
}

for _, server in ipairs(targetlist) do
  sync{ default.rsync,
    source="/var/www/html",
	rsyncOps="-rltvupgo"
    target=server
  }
end

На этом, у меня все, статья  «Установка Lsyncd в Unix/Linux» завершена.

Установка запроса CPU и лимита CPU

Чтобы установить запрос CPU для контейнера, подключите поле
в манифест ресурсов контейнера. Для установки ограничения по CPU подключите .

В этом упражнении мы создадим Pod, имеющий один контейнер. Зададим для контейнера запрос в
0.5 CPU и лимит в 1 CPU. Конфигурационный файл для такого Pod’а:

Раздел конфигурационного файла содержит аргументы для контейнера в момент старта.
Аргумент говорит контейнеру попытаться использовать 2 CPU.

Создадим Pod:

Удостоверимся, что Pod запущен:

Посмотрим детальную информацию о Pod’е:

В выводе видно, что Pod имеет один контейнер с запросом в 500 милли-CPU и с ограничением в 1 CPU.

Запустим , чтобы получить метрики Pod’a:

В этом варианте вывода Pod’ом использовано 974 милли-CPU, что лишь чуть меньше
заданного в конфигурации Pod’a ограничения в 1 CPU.

Напомним, что установкой параметра для контейнера было задано попытаться использовать 2 CPU,
однако в конфигурации присутствует ограничение всего в 1 CPU. Использование контейнером CPU было отрегулировано,
поскольку он попытался занять больше ресурсов, чем ему позволено.

Заметка: Другое возможное объяснение для выделения менее 1.0 CPU в отсутствии на ноде достаточного количества
свободных CPU ресурсов. Напомним, что в начальных условиях для этого упражнения было наличие у кластера
хотя бы 1 CPU, доступного для использования. Если контейнер запущен на ноде, имеющей в своём распоряжении всего 1 CPU,
контейнер не сможет использовать более 1 CPU независимо от заданных для него ограничений.

Удалим Pod:

Установка Nessus на Debian/Ubuntu/Mint

Nessus является проприетарным сканером уязвимостей в Unix\Linux, который разрабатывается в Tenable Network Security. Его можно бесплатно использовать для личного пользования.

По данным опросов, проведенных sectools.org, Nessus является самым популярным в мире сканером уязвимостей, заняв первое место в 2000, 2003 и 2006 на улучшение безопасности. По оценкам Tenable Network Security, известно что он используется более чем 75 000 организаций по всему миру.

Установка Nessus на Debian/Ubuntu/Mint не займет много времени и не очень сложная. В своей теме «Установка Nessus на Debian/Ubuntu/Mint» я это сейчас покажу как можно сделать (на примере ОС — Debian).

1. Проверяем версию и релиз ОС:

# uname -a
# lsb_release -a

У меня это Debian 7 (32 бит), по этому я скачаю для свой операционной системы данную утилиту.

Перейдем в нужную директорию, я всегда использую:

# cd /usr/local/src

Если у Вас Debian 6 или 7 а так же Kali Linux (32 бит):

# wget  "http://downloads.nessus.org/nessus3dl.php?file=Nessus-5.2.7-debian6_i386.deb&licence_accept=yes&t=054bf0d5344189e8b3ad3a09bcb642bd" -O nessus_32.deb

Если у Вас Debian 6 или 7 а так же Kali Linux (64 бит):

# wget "http://downloads.nessus.org/nessus3dl.php?file=Nessus-5.2.7-debian6_amd64.deb&licence_accept=yes&t=054bf0d5344189e8b3ad3a09bcb642bd" -O nessus_64.deb

Если у Вас Ubuntu 12/13 (32 бит):

# wget "http://downloads.nessus.org/nessus3dl.php?file=Nessus-5.2.7-ubuntu1110_i386.deb&licence_accept=yes&t=054bf0d5344189e8b3ad3a09bcb642bd" -O nessus_32.deb

Если у Вас Ubuntu 12/13 (64 бит):

# wget "http://downloads.nessus.org/nessus3dl.php?file=Nessus-5.2.7-ubuntu1110_amd64.deb&licence_accept=yes&t=054bf0d5344189e8b3ad3a09bcb642bd" -O nessus_64.deb

Если не получится скачать и Вы не знаете почему, то попробуйте выполнить это с правами администратора.

3. Установка Nessus. 

Чтобы произвести установку нужно выполнить:

# dpkg -i имя_пакета

В моем случае я выполняю:

# sudo dpkg -i nessus_32.deb

Начнется установка, пройдет некоторое время, пока установится все нужным образом ( не более пару минут).

4. Запуск программы Nessus. 

Когда у нас уже установлена программа, то ее нужно запустить, для этого выполним команду:

# /etc/init.d/nessusd start

5. Создаем пользователя для работы в Nessus

# /opt/nessus/sbin/nessus-adduser

6. Открываем ваш браузер и переходим в меню утилиты Nessus.https://your_ip_domain:8834

Попадаем на следующий слайд и нажимаем на кнопку «Download plagin», я так понимаю он нужен для работы самой программы. Он устанавливается минуты 3-4. После окончания, вводим логин и пароль которые мы создавали в пункте 5и начинаем проверять систему.

А на этом данная установка Nessus на Debian/Ubuntu/Mint завершена, программа установлена и можно ею пользоваться, надеюсь понятно все было как я описал на своем сайте http://linux-notes.org

Модели доставки кода в кластер

И вот тут я должен сделать первое и главное для нас уточняющее разъяснение. На мой взгляд, существует две модели доставки кода в кластер — условные Pull и Push. В модели Pull мы передаём новое желаемое состояние кластера путём применения манифестов через kubectl, Helm, Kustomize или любым другим методом. В модели Push реализован подход GitOps.

В кластере Kubernetes есть механизм, который следит за Git-репозиторием, и в случае изменения в нём кода, этот механизм приводит кластер в состояние, чётко описанное этим кодом. Почему это хорошо? Потому что у вас есть один источник правды — SST (Single Source of Truth). Допустим, ручное изменение количества ReplicaSet c двух до трёх не будет сохранено на долгое время, так как механизм согласования вернёт кластер в состояние, описанное в Git-репозитории.

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

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