Настройка и запуск Cassandra с аутентификацией

Настройка и запуск Cassandra в Docker с включённой аутентификацией и авторизацией.

Настройка

1. Создание файла docker-compose.yml

Перейдите в нужную директорию и создайте файл docker-compose.yml (при необходимости используйте sudo -i).

docker-compose.yml

services:
  cassandra:
    image: cassandra:latest
    restart: unless-stopped
    ports:
      - "9042:9042"
    volumes:
      - ./data/cassandra:/var/lib/cassandra
      # - ./conf/cassandra/cassandra.yaml:/etc/cassandra/cassandra.yaml

2. Создание директорий для хранения данных и конфигурации

Создайте необходимые директории для хранения данных и конфигурации Cassandra:

mkdir -p conf/cassandra data/cassandra

Ваша структура должна выглядеть так:

.
├── docker-compose.yml
├── conf
│   └── cassandra
└── data
    └── cassandra

3. Запуск контейнера и копирование конфигурационного файла

Запустите контейнер, немного подождите и скопируйте конфигурационный файл cassandra.yaml из контейнера на сервер для дальнейшей настройки:

docker-compose up -d
docker ps
docker cp <container_id>:/etc/cassandra/cassandra.yaml ./conf/cassandra/cassandra.yaml

4. Настройка аутентификации

Откройте файл cassandra.yaml и измените следующие параметры:

cassandra.yaml

...
authenticator: PasswordAuthenticator
authorizer: CassandraAuthorizer
...

5. Перезапуск контейнера с учётом конфигурации

Вернитесь к файлу docker-compose.yml и раскомментируйте строку с монтированием конфигурационного файла:

docker-compose.yml

volumes:
  - ./data/cassandra:/var/lib/cassandra
  - ./conf/cassandra/cassandra.yaml:/etc/cassandra/cassandra.yaml

После внесения изменений перезапустите контейнер:

docker-compose down
docker-compose up -d --force-recreate

6. Проверка доступности Cassandra

  • Port: 9042
  • Username: cassandra
  • Password: cassandra