Развертывание артефактов на физическом компьютере с помощью Azure конвейеров - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть проект, построенный с конвейером azure, артефакты отправляются как в общий файловый ресурс, так и в Azure DevOps. Самостоятельно размещенный агент в настоящее время используется для конвейера, который создает мой проект. Теперь я хочу развернуть свои артефакты на физическом компьютере в сети моей компании. Артефакты - это установочные файлы, которые поддерживают «режим установки без вывода сообщений», поэтому я могу установить все, выполнив соответствующие файлы с помощью PowerShell.

Мой вопрос: что я должен сделать для достижения своей цели? Я считал, что просто создаю конвейер выпуска (я использую редактор интерфейсов classi c от Microsoft для конвейеров) и добавляю необходимые задачи. В итоге все будет выглядеть примерно так:

  1. Копирование артефактов с компьютера, на котором был построен продукт (A), на компьютер, на котором должен быть установлен продукт (B).
  2. Выполните установку служб, необходимых для основного приложения.
  3. Выполните установку из основного приложения. Это правильный курс действий или я должен выбрать что-то еще?

Еще один вопрос. Мне не совсем понятно, как я должен разделить этапы развертывания, потому что: Шаг 1 все еще выполняется агентом на компьютере A. В шагах 2 и 3 уже должен быть другой агент. Следовательно, агент также должен присутствовать на компьютере B (всего мне нужно два агента, один для конвейера сборки на компьютере A и один на целевом компьютере B). Это правильно?

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Развертывание артефактов на физической машине с помощью Azure Трубопроводов

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

Мы могли бы добиться этого одним агентом на компьютере A:

В этом случае нам не нужно создавать нового агента на компьютере B, а также не нужно разделять этапы развертывания .

Надеюсь, это поможет.

1 голос
/ 28 апреля 2020

У нас есть веб-приложение, которое предъявляет аналогичные требования, нам нужно включить файлы с указанием местоположения c при развертывании нашего приложения в этом месте.

Я не уверен, что это лучший маршрут, но мы включили использование Ansible в наш конвейер развертывания. Наша Ansible playbook использует файл hosts, который содержит переменные для местоположения и версии jar для развертывания.

Опять же, наша ситуация другая, но то же самое должно работать.

Например, , вы можете получить что-то вроде этого ...

Ваш Ansible файл инвентаря (хостов) может выглядеть следующим образом

[servers]
xxx.xxx.xxx.xxx

[all:vars]
app_name=mfgweb
env=qa
app_version=2020.03.4

*** If your artifact is a jar file
jar_group=com.somegroup
jar_name=some_jar <-- note: no extentsion
jar_version=2019.11.3

Ваша книга воспроизведения может выглядеть примерно так

---
- hosts: localhost
  connection: local

  tasks:
  - name: Find  old working directories
    find:
        paths: /tmp
        patterns: 'ansible.*'
        file_type: directory
        age: 2d
    register: tmp_dirs

  - name: Cleanup old working directories
    file:
        path: "{{ item }}"
        state: absent
    loop: "{{ tmp_dirs.files | map(attribute='path') | list }}"

  - name: Create working directory
    tempfile:
        state: directory
        suffix: work
    register: workdir

  - name: Download artifact
    maven_artifact:
        group_id: "{{ jar_group }}"
        artifact_id: "{{ jar_name }}"
        version: "{{ jar_version }}"
        repository_url: "{{ artifacts_url }}"
        username: "{{ artifacts_user }}"
        password: "{{ artifacts_password }}"
        verify_checksum: never
        dest: "{{ workdir.path }}/{{ app_name }}/"

Это всего лишь пример, но вы сможете установить необходимое программное обеспечение в вашу игровую книгу, используя yum и / или pip.

Документация Ansible очень хорошая и полная. Также вы можете найти много помощи здесь на SO.

Я надеюсь, что это дает вам представление о том, как продолжить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...