# Смена паролей технических сервисов

# Смена паролей в Мониторинге

## Описание

Смена паролей внутренних сервисов Мониторинга. По умолчанию используется
случайный пароль из 16 символов, включая спецсимволы.

---

## Допустимые символы в пароле

Цифры, строчные и прописные латинские буквы, спецсимволы: `+` `-` `_` `!` `^` `(` `)`

---

## Общий порядок

Смена паролей происходит в файле /opt/printum/.env. Обязательно сделайте копию данного файла перед его редактированием. Далее внесите изменения указанные в конкретном разделе ниже. В конце, для вступления изменений в силу выполните перезапуск системы Мониторинга:

    cd /opt/printum/
    sudo docker-compose down
	sudo docker-compose up -d


---

## ClickHouse

Измените значение переменной `CLICKHOUSE_PASSWORD="NEW-PASSWORD"` 

Где `NEW-PASSWORD` — новый пароль


---

## Redis

Измените значение переменных:

    REDIS_URL="redis://:NEW-PASSWORD@redis:6379/0"
    REDIS_PASSWORD="NEW-PASSWORD"
    CACHEOPS_REDIS="redis://:NEW-PASSWORD@redis:6379/1"
где `NEW-PASSWORD` — новый пароль

---

## PostgreSQL (версия Мониторинга 4.0+)

Измените значение переменной:

    POSTGRESQL_PASSWORD="NEW-PASSWORD"
После чего выполните команды:

	sudo docker-compose down
	sudo docker-compose up -d postgres
	sudo docker-compose exec -T postgres bash -c 'PGPASSWORD="OLD-PASSWORD" psql -U printum -c "ALTER USER printum PASSWORD '\''NEW-PASSWORD'\'';"'
	sudo docker-compose up -d
Где: 

`NEW-PASSWORD` - новый пароль
`OLD-PASSWORD` - текущей пароль

Обратите внимание, в данной команде необходимо указать старый пароль `OLD-PASSWORD` и новый пароль `NEW-PASSWORD`. Между аргументом -p и старым паролем нет пробела.

При корректном вводе в терминале будет выведено сообщение:
>mysql: [Warning] Using a password on the command line interface can be insecure.
>
В случае ошибки ввода старого пароля в терминале будет сообщение вида:
>ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

# Смена паролей в ПринтМенеджере

## Описание

Смена паролей внутренних сервисов ПринтМенеджера.

## Общий порядок

Смена паролей происходит в файле /opt/printmanager/.env. Обязательно сделайте копию данного файла перед его редактированием. Далее внесите изменения указанные в конкретном разделе ниже. В конце, для вступления изменений в силу выполните перезапуск системы:

```
cd /opt/printmanager/
sudo docker-compose down
sudo docker-compose up -d
```

**При балансировке нагрузки:** повторите шаги на каждом сервере ПМ.

### PostgreSQL (базовая схема, без балансировки)

Измените значение переменных:

```
DATABASE_URL="postgres://postgres:NEW-PASSWORD@db:5432/printmanager"
DATABASE_PASSWORD="NEW-PASSWORD"
```

После чего выполните команды:

```
sudo docker-compose down
sudo docker-compose up -d db
sudo docker-compose exec -T db bash -c "psql -U postgres -c \"ALTER USER postgres PASSWORD '\$POSTGRES_PASSWORD';\""
sudo docker-compose up -d
```
Где `NEW-PASSWORD` - новый пароль

### PostgreSQL (схема с балансировкой нагрузки)

Измените значение переменных в файле конфигурации **.env** на всех нодах ПМ:

```
DATABASE_URL="postgres://postgres:NEW-PASSWORD@db:5432/printmanager"
```
Где `NEW-PASSWORD`- новый пароль.

Выполните команду остановки контейнеров на всех нодах ПМ:

```
sudo docker-compose down
```

Измените пароль штатными средствами во внешней базе данных.
Далее по очереди запустите контейнеры на всех нодах ПМ, с первой по последнюю.

```
sudo docker-compose up -d
```

**Важно:** При схеме с балансировкой все изменения паролей в ПринтМенеджере должны быть отражены в конфигурационных файлах балансировщика.

### Redis, Redis-sentinel

Пароль общий, поэтому меняется в обоих компонентах системы. Redis-sentinel работает только в схеме балансировки нагрузки.

Измените значение переменных:

```
REDIS_URL="redis://:NEW-PASSWORD@redis:6379/0"
REDIS_PASSWORD="NEW-PASSWORD"
```
Где `NEW-PASSWORD`- новый пароль.

После чего выполните команду остановки работы контейнеров:

```
sudo docker-compose down
```

Если используется схема с балансировкой нагрузки, то также выполните следующую команду:

```
sudo docker volume rm -f printmanager_sentinel-conf
```

Для применения изменений запустите контейнеры:
```
sudo docker-compose up -d
```

### CUPS

Измените значение переменных:
```
CUPS_PASSWORD="NEW-PASSWORD"
```
Где `NEW-PASSWORD`- новый пароль.

Для применения изменений перезапустите контейнеры:
```
sudo docker-compose down
sudo docker-compose up -d
```

### FTP

Измените значение переменных:

```
FTP_SCAN_PASSWORD="NEW-PASSWORD"
```
Где `NEW-PASSWORD`- новый пароль.

Для применения изменений перезапустите контейнеры:
```
sudo docker-compose down
sudo docker-compose up -d
```

## Связанные страницы

- [Шифрование конфигурационного файла .env](https://wiki.printum.io/books/6-obnovlenie-i-obsluzivanie/page/sifrovanie-konfiguracionnogo-faila-env)