Этот скрипт выводит текущую дату и время каждые N секунд, а также переданное сообщение.
Перед тем как приступать к проверке этапов, необходимо склонировать репозиторий с помощью следующей команды:
git clone https://github.com/gekt0rr/echoline.git
Чтобы использовать скрипт echoline.sh
, выполните следующую команду:
bash echoline.sh [опции]
-t <секунды>
: Задает временной интервал в секундах (по умолчанию: 5).-m <сообщение>
: Задает выводимое сообщение (по умолчанию: 'HELLO WORLD').-h
: Показать подсказку с описанием опций.
bash echoline.sh -t 2 -m "Vagrant or Terraform"
В этом примере скрипт будет выводить текущую дату и время каждые 2 секуды с сообщением "Vagrant or Terraform".
Dockerfile для контейнера echoline, который запускает скрипт echoline.
TIMER_SECONDS
: Интервал вывода даты и времени в секундах (по умолчанию: 1).MESSAGE
: Сообщение, которое будет выводиться с датой и временем (по умолчанию: "ON AIR").
Для сборки и запуска контейнера с параметрами по умолчанию, выполните следующие команды:
docker build -t echoline .
docker run --name echoline-container echoline
Чтобы параметризовать значения по умолчанию для скрипта echoline, можно использовать переменные окружения при запуске контейнера. Например:
docker run --name echoline-container -e TIMER_SECONDS=10 -e MESSAGE="Привет, мир!" echoline
Чтобы проверить что контейнер запустился согласно наших параметров, выполним команду
sudo docker logs echoline-container
Note
Далее будет подразумеваться, что для проверки корректности работы контейнера будет использоваться данная команда.
Ansible-роль для развёртывания контейнера echoline.
- Убедитесь, что имидж контейнера echoline доступен.
- Убедитесь, что установлена коллекция community.docker для Ansible. Если что, установить можно командой:
ansible-galaxy collection install community.docker
timer_seconds
: Интервал вывода даты и времени в секундах (по умолчанию: 3).message
: Сообщение, которое будет выводиться с датой и временем (по умолчанию: "HELLO AAAAAKAFAZAM!").
Необходимо перейти в каталог ansible текущего репозитория и создать в нем тестовый плейбук. nano echoline2.yaml
- name: тестовый плейбук, чисто роль показать.
hosts: all
roles:
- role: echoline
vars:
timer_seconds: "2"
message: "Привет, мир2222222!"
Warning
Перед запуском плейбука настройте подключение к хостам из файла inventory и установите docker. Вообще ставить докер сейчас и проверять роль плейбуком не обязательно, т.к это все будет сделано в следующих пунктах. Так что сами решайте ...
Далее запускаем плейбук командой:
ansible-playbook echoline2.yaml
В этом примере роль echoline
будет развёртывать контейнер echoline с интервалом вывода даты и времени в 2 секунды и сообщением "Привет, мир2222222!".
Ansible-плейбук для развёртывания роли echoline и установки Docker на хосте.
В этом примере плейбук устанавливает Docker, копирует Dockerfile для контейнера echoline, собирает контейнер и разворачивает роль echoline со стандартными интервалом вывода даты/времени и сообщением.
Warning
Перед запуском плейбука настройте подключение к хостам из файла inventory
Для запуска плейбука перейдите в каталог ansible текущего репозитория введите команду:
ansible-playbook echoline.yaml
Vagrant-файл для создания виртуальной машины с использованием провайдера Virtualbox и ОС Ubuntu 22.04.
- Установлен и настроен Virtualbox
- Установлен и настроен Vagrant
Необходимо перейти в каталог vagrant текущего репозитория и выполнить команду:
vagrant up
После загрузки, установки и настройки виртуальной машины у нас будет возможность подключиться к ней и посмотреть лог контейнера, чтобы убедиться что все работает так как должно.
Сначала подключимся к VM по ssh используя vagrant:
vagrant ssh
затем посмотрим лог контейнера
sudo docker logs echoline
После проверки, рекомендуется удалить VN так же используя vagrant:
vagrant destroy
база по dockerfile Шпаргалка по Dockerfile Шпаргалка с командами Docker
установка и базовое использование на debian12
Для планирования задач и ведения разработки использовался https://app.plane.so. Если интересно внести вклад в проект - Добро пожаловать