Справка
Справка по ansible
Модуль копирования(copy)
Нужен для копирования файл с хоста ansible на целевой хост.
- name: Copy file with owner and permissions
ansible.builtin.copy:
src: /srv/myfiles/foo.conf
dest: /etc/foo.conf
owner: foo
group: foo
mode: '0644'
Модуль командной строки(cmd)
Выполняет команду shell на удаленном хосте
- name: Run NATS
ansible.builtin.command:
cmd: docker compose up -d --remove-orphans
chdir: "/opt/infra/nats/{{ natsdir |string }}"
Модуль управления папками и файлами (file)
- name: Recursively change ownership of a directory
ansible.builtin.file:
path: /etc/foo
state: directory
- name: Recursively remove directory
ansible.builtin.file:
path: /etc/foo
state: absent
Модуль установки пакетов(apt)
Устанавливает пакет приложения
- name: Install a list of packages
apt:
pkg:
- foo
- foo-tools
Модуль сервис(service)
Для управления сервисами операционной системы
ansible.builtin.service:
name: httpd
state: started
Модуль шаблонов(templates)
Этот модуль является частью базового пакета Ansible (ansible-base) и включен во все установки Ansible. В большинстве случаев вы можете использовать краткое имя модуля template без указания ключевого слова collections:. Тем не менее, мы рекомендуем использовать FQCN (Fully Qualified Collection Name) для удобства ссылок на документацию модуля и во избежание конфликтов с другими коллекциями, которые могут иметь одноименные модули.
Синопсис
Шаблоны обрабатываются с помощью языка шаблонов Jinja2.
Документация по форматированию шаблонов доступна в Template Designer Documentation.
Дополнительные переменные, перечисленные ниже, могут использоваться в шаблонах.
- name: Template a file to /etc/file.conf
ansible.builtin.template:
src: /mytemplates/foo.j2
dest: /etc/file.conf
owner: bin
group: wheel
mode: '0644'
Модуль git
Клонируем git репозитарий, и обновляем
- name: Update repository
ansible.builtin.git:
repo: 'git@mds-gitlab.npobaum.ru:a.shilo/infra.git'
dest: /opt/infra
version: main # или нужная ветка
force: yes
register: repo_updated
Сборка docker образа в gitlab (Kanico)
build:
stage: build
when: manual
image:
name: gcr.io/kaniko-project/executor:v1.14.0-debug
entrypoint: [""]
before_script:
- pwd
- ls -li
- chmod +x ./create.sh
- pwd && ls
- ./create.sh
- cp config.json /kaniko/.docker
- ls /kaniko/.docker
script:
- /kaniko/executor --help
- /kaniko/executor
--context "${CI_PROJECT_DIR}"
--skip-tls-verify
--skip-tls-verify-pull
--dockerfile "${CI_PROJECT_DIR}/Dockerfile"
--destination "registry.robointerativo.org/sandbox/project_name:$CI_COMMIT_REF_SLUG"
#$CI_COMMIT_SHORT_SHA"
- echo $CI_COMMIT_SHORT_SHA
Получение персонального токена доступа
В гитлабе нужно получить персональный токен доступа с правами
read_repository
read_registry
write_registry
Сохранить имя и токен
Настройка доступа к приватному репозитарию docker
Для того что был доступ к приватному репозитарию docker нужно настроить
docker config по умолчанию лежит в папке .docker с именем .config.json
Генерация блока auth
export DOCKER_USER=TOKEN_NAME
export REG_TOKEN=TOKEN
echo "${DOCKER_USER}:${REG_TOKEN}" | tr -d '\n' | base64 -i -w 0
Пример конфигурации
{"auths": {
"registry.gitlab.com": { "auth": "RE9DS0VSTE9HSU46RE9DS0VSUEFTUwo=" }
}}