Как установить и настроить 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, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *