Концепція, яку ви описуєте, - це управління конфігурацією. Це, як це звучить, спосіб ідентифікувати, записувати, версію / трек та звітувати про середовище. Часто це завдання, яке сильно пов'язане з управлінням версіями та управлінням збіркою, але досить чітке, що часто вимагає окремої стратегії, навіть якщо вона використовує одні і ті ж концепції та ті ж механізми обробки та зберігання.
Управління конфігурацією, крім того, щоб підтримувати робоче середовище під контролем, також допомагає встановити запис про різні робочі середовища, в яких використовується програмне забезпечення (розробка, як згадувалося, плюс тестування / КЯ, розгортання до звичайних клієнтів, розгортання до клієнтів, які потребують особливої уваги або спеціальної конфігурації або будувати властивості тощо).
Як я вже говорив, часто це завдання, яке збігається з контролем версій джерела, і часто дані управління конфігурацією розташовані поруч із джерелом як в документації, так і в сховищі джерела. Це не повинно бути, але часто це стосується зручності.
Автоматизація деяких аспектів управління конфігурацією значно покращилася за останні роки. Деякі відповіді та коментарі пропонують сценарії як спосіб сприяти керуванню конфігурацією, а сценарії - це хороша відповідь, яка допомагає досягти відтворюваних результатів, але часто розроблені вручну сценарії самі по собі є непослідовними та неповними. Один із таких способів покращився завдяки автоматичному забезпеченню. Такі системи, як лялька чи шеф-кухардопомогти визначити компоненти програмного забезпечення та системи для конкретного користувача чи машини або для конкретного профілю завдання та надати «рецепти», які дозволяють відмовитися від створення цілісної машини чи середовища. В основному, це концепція сховища розповсюдження програмного забезпечення та розширює та узагальнює його, надаючи не лише пакети програмного забезпечення, необхідні для системи, а й профілі конфігурації, що стосуються кожного пакету, щоб він був готовий до використання у відповідний для вас спосіб. ситуація.
Vagrant сприймає це в дещо іншому напрямку та забезпечує спосіб швидкого розгортання визначень віртуальної машини, таким чином, що в VM можна автоматично налаштувати своє віртуальне програмне забезпечення та апаратне забезпечення, і це може бути зручним способом відтворення певного представлення обладнання середовище, яке використовує користувач вашого програмного забезпечення.
Кожна система (і її варіанти) потребує трохи налаштування, але має деяке чітке значення, якщо ви вважаєте, що завдання перезавантаження та перенастроювання є загальним завданням.