Как установить и настроить PowerShell 7 с помощью Ansible — CloudSavvy IT
Если вы не знакомы с Ansible, это язык развертывания, на котором можно написать сборники пьес, чтобы отправить серию команд системам и указать им, что делать. В отличие от многих других систем конфигурации, он не требует агента в целевой системе. Это облегчает использование и настройку.
В этой статье мы рассмотрим, как создать простую книгу игр Ansible для установки PowerShell 7 на несколько систем.
Установка Ansible в Windows и Linux
Установить Ansible в системе Linux очень просто. Большинство пакетных систем для дистрибутивов Linux имеют эту встроенную функцию. Несколько общие способы установки Возможны следующие:
Windows — это уникальный случай, так как Ansible не доступен в виде пакета Windows. Самый простой способ установить Ansible для использования в Windows — это использовать подсистему Windows для Linux (WSL). Это виртуализированный экземпляр Linux, который работает параллельно с Windows. После установки вы можете использовать те же команды установки в WSL для установки Ansible.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Настроить Ansible
Есть несколько ключевых компонентов, которые нужно установить, чтобы установить PowerShell 7. В частности, нам нужен файл hosts, чтобы определить наши целевые местоположения. Есть много способов настроить это, но обычно, структура папок, такая как ниже, работает хорошо.
В пределах inventories
каталог, мы бы создали hosts
файл, содержащий все системы, на которые мы хотим ориентироваться с помощью нашей книги воспроизведения. Простой файл hosts, который создает группу хостов под production
тег обрисован в общих чертах ниже. Комментарии полезны, чтобы сказать вам, каково фактическое имя хоста систем.
[production]
#test-system-01
100.100.10.10
#test-system-02
100.100.10.11
#test-system-03
100.100.10.12
#test-system-04
100.100.10.13
Вы можете создать несколько групп хостов, и один и тот же хост может существовать в нескольких группах. Это упрощает группирование и «маркировку» этих хостов для последующего управления ими для более сложных ролей.
Создание нашей Playbook
Теперь, когда у нас есть файл hosts, мы можем приступить к созданию нашей playbook. Для этого сначала создадим новую папку под playbooks
папка для хранения нашей пьесы. В этом случае мы будем называть это deploy-powershell
, В этой папке мы создадим следующий файл, main.yml
, main.yml
файл является нашей основной точкой входа для playbook. Это не обязательно должно быть названо main.yml
но это общее соглашение.
---
- name: Install PowerShell 7
hosts: all
tasks:
- name: Download and Add Powershell Key to Apt-Get Keyring
apt_key:
url: "https://packages.microsoft.com/keys/microsoft.asc"
state: present
- name: Add Powershell Repository into /etc/apt/sources.list - Bionic
apt_repository:
repo: 'deb [arch=amd64] https://packages.microsoft.com/ubuntu/18.04/prod bionic main'
state: present
- name: Install Powershell
apt:
pkg: powershell
state: latest
force: yes
Расширение нашей Playbook для других хостов
Прямо сейчас наша книга игр работает только с системами Ubuntu Linux. Чтобы обновить это, мы можем использовать условные выражения Ansible, чтобы сделать его немного более устойчивым. Давайте расширим это для поддержки систем Redhat Linux и Fedora.
Чтобы разрешить поддержку других систем установки пакетов, мы используем when
условная оговорка. Читая ansible_distribution
Значение, мы можем сказать Ansible, чтобы предназначаться только для определенных распределений для определенных команд.
---
- name: Install PowerShell 7
hosts: all
tasks:
- name: Download and Add Powershell Key to Apt-Get Keyring
apt_key:
url: "https://packages.microsoft.com/keys/microsoft.asc"
state: present
- name: Add Powershell Repository into /etc/apt/sources.list - Ubuntu
apt_repository:
repo: 'deb [arch=amd64] https://packages.microsoft.com/ubuntu/18.04/prod bionic main'
state: present
when: ansible_distribution == 'Ubuntu'
- name: Add repository - Fedora
yum_repository:
name: microsoft
description: Microsoft Repository
baseurl: "https://packages.microsoft.com/config/rhel/7/prod.repo"
when: ansible_distribution == 'Fedora'
- name: Add repository - RedHat
yum_repository:
name: microsoft
description: Microsoft Repository
baseurl: "https://packages.microsoft.com/config/rhel/7/prod.repo"
when: ansible_distribution == 'RedHat'
- name: Install Powershell Package
apt:
pkg: powershell
state: latest
force: yes
when: ansible_distribution == 'Ubuntu'
- name: Install the PowerShell Package
yum:
name: powershell
state: latest
when: ansible_distribution == 'RedHat'
- name: Install the PowerShell Package
dnf:
name: powershell
state: latest
when: ansible_distribution == 'Fedora'
Запуск нашей Playbook
Наша игровая книга настроена, так что давайте продолжим и установим ее на те системы, которые нам нужны. Для этого мы запустим следующую командную строку.
ansible-playbook /path/to/main.yml -i /path/to/hosts
При выполнении этого мы получим результаты каждого шага для каждого хоста, с которым запускается playbook, и их успешность. Каждая команда будет выполняться в каждой системе при запуске playbook, это означает, что перед выполнением следующей команды необходимо выполнить каждую команду. Кроме того, условный when
покажет как пропустить в результатах.
Заключение
Ansible позволяет легко устанавливать PowerShell на несколько систем одновременно. После установки PowerShell 7 в этих системах вы можете в дальнейшем использовать Ansible, чтобы затем настроить оболочку для ведения журналов, удаленного доступа и других возможностей, чтобы упростить переход с Windows PowerShell или PowerShell Core на новый унифицированный PowerShell 7.
Ansible в сочетании с PowerShell позволяет быстро и легко распространять PowerShell на множество различных систем гибким и удобным способом.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)