Установка и настройка Ansible
В данной статье мы рассмотрим как установить Ansible на Ubuntu server 18.04 и настроить playbook с автоматической установкой обновлений на Windows и Ubuntu хосты.
Также рассмотрим простой пример как поднять веб сервер с nginx,php7,mysql и поднять роли iis, fileserver на Windows хостах с помощью playbook Ansible.
Поехали!
Добавим ключ от репозитория Ansible
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
Добавим сам репозиторий
apt-add-repository "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main"
Обновим список пакетов и установим Ansible
apt-get update && apt-get install ansible
Ansible использует ssh для подключения к Linux серверам.
Поэтому создадим ключ ssh на сервере Ansible
ssh-keygen -t rsa -b 4096
Далее нужно скопировать ключ кодандой ниже, на каждый сервер который мы планируем обслуживать через Ansible
ssh-copy-id root@test-ubuntu1
В данной команде измените root на своего пользователя и test-ubuntu1 на hostname вашего сервера
Ansible использует python для управления linux хостами, поэтому подклюючимся к каждой ноде с Ubuntu и установим на них python командой:
apt-get update && apt-get install python python-apt
Теперь вернемся на сервер Ansible и откроем файл /etc/ansible/hosts
В данный файл заносятся хосты которые мы планируем обслуживать через Ansible.
Хосты заносятся по группам.
Например:
[servers_ubuntu] test-ubuntu1 test-ubuntu1
Теперь проверим можем ли мы подключиться к добавленным хостам
Запустим ping
ansible -m ping all
Вывод должен быть таким:
test-ubuntu1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
test-ubuntu2 | SUCCESS => {
"changed": false,
"ping": "pong"
}
Также можно изменить команду ping следующим образом:
ansible -m ping servers_ubuntu - в данном случае мы пингуем только сервера из группы servers_ubuntu ansible -m ping test-ubuntu1 - в данном случае мы пингуем только хост test-ubuntu1
Теперь проверим связь по ssh
Выполним команду , которая выведет нам кол-во свободной памяти на наших серверах с Ubuntu
ansible -m shell -a 'free -m' servers_ubuntu
Вывод должен быть примерно таким:
test-ubuntu2 | SUCCESS | rc=0 >>
total used free shared buff/cache available
Mem: 1993 99 1454 1 440 1742
Swap: 2047 0 2047
test-ubuntu1 | SUCCESS | rc=0 >>
total used free shared buff/cache available
Mem: 1993 99 1454 1 439 1742
Swap: 2047 0 2047
Если команда выполнилась на серверах значит у нас все ок, и соединение по ssh работает.
По умолчанию Ansible пытается подключиться по ssh под тем пользователем под которым вы в данный момент находитесь в системе.
Если на хосте, к которому вы подключаетесь этого пользователя нет, или нужно подключаться под другим пользователем, нужно добавить переменную в Ansible.
Для этого создаем папку — /etc/ansible/group_vars командой ниже:
mkdir /etc/ansible/group_vars
Далее создаем в ней файл с названием нашей группы серверов
touch /etc/ansible/group_vars/servers_ubuntu
и внесем в него следующую переменную, сам файл необходимо создавать в формате YAML.
Содержимое файла будет следующее:
--- ansible_ssh_user: root
Вместо root укажите своего пользователя.
Теперь перейдем к самому интересному, создадим свой первый Playbook, который будет устанавливать обновления на Ubuntu.
Создадим папку для Playbook
mkdir -p ~/ansible/playbooks
Создадим новый Playbook
touch ~/ansible/playbooks/update_ubuntu.yml
Открываем файл ~/ansible/playbooks/update_ubuntu.yml и заполняем его следующим образом:
---
- hosts: servers_ubuntu
tasks:
- name: updates a server
apt: update_cache=yes
- name: upgrade a server
apt: upgrade=dist
- name: Check if a reboot is required
register: file
stat: path=/var/run/reboot-required get_md5=no
- name: Reboot the server
command: /sbin/reboot
when: file.stat.exists == true
Проверим Playbook
ansible-playbook --check ~/ansible/playbooks/update_ubuntu.yml
Вывод команды должен быть таким:
PLAY [servers_ubuntu] *********************************************************************************************************************************************************************************************************************** TASK [Gathering Facts] ********************************************************************************************************************************************************************************************************************** ok: [test-ubuntu2] ok: [test-ubuntu1] TASK [updates a server] ********************************************************************************************************************************************************************************************************************* changed: [test-ubuntu1] changed: [test-ubuntu2] TASK [upgrade a server] ********************************************************************************************************************************************************************************************************************* ok: [test-ubuntu2] ok: [test-ubuntu1] TASK [Check if a reboot is required] ******************************************************************************************************************************************************************************************************** ok: [test-ubuntu1] ok: [test-ubuntu2] TASK [Reboot the server] ******************************************************************************************************************************************************************************************************************** skipping: [test-ubuntu1] skipping: [test-ubuntu2] PLAY RECAP ********************************************************************************************************************************************************************************************************************************** test-ubuntu1 : ok=4 changed=1 unreachable=0 failed=0 test-ubuntu2 : ok=4 changed=1 unreachable=0 failed=0
Запустим Playbook
ansible-playbook ~/ansible/playbooks/update_ubuntu.yml
Вывод команды должен быть таким:
PLAY [servers_ubuntu] ***********************************************************************************************************************************************************************************************************************
TASK [Gathering Facts] **********************************************************************************************************************************************************************************************************************
ok: [test-ubuntu2]
ok: [test-ubuntu1]
TASK [updates a server] *********************************************************************************************************************************************************************************************************************
changed: [test-ubuntu2]
changed: [test-ubuntu1]
TASK [upgrade a server] *********************************************************************************************************************************************************************************************************************
changed: [test-ubuntu1]
changed: [test-ubuntu2]
TASK [Check if a reboot is required] ********************************************************************************************************************************************************************************************************
ok: [test-ubuntu1]
ok: [test-ubuntu2]
TASK [Reboot the server] ********************************************************************************************************************************************************************************************************************
fatal: [test-ubuntu2]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Shared connection to test-ubuntu2 closed.\r\n", "unreachable": true}
fatal: [test-ubuntu1]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Shared connection to test-ubuntu1 closed.\r\n", "unreachable": true}
to retry, use: --limit @/root/ansible/playbooks/update_ubuntu.retry
PLAY RECAP **********************************************************************************************************************************************************************************************************************************
test-ubuntu1 : ok=4 changed=2 unreachable=1 failed=0
test-ubuntu2 : ok=4 changed=2 unreachable=1 failed=0
Сервера успешно обновились.
Строку fatal: [test-ubuntu2]: UNREACHABLE! мы получили из-за того что Ansible отправил сервера на перезагрузку , т.к. в сценарии Playbook мы указали проверить есть ли хостах файл /var/run/reboot-required
Если перезагрузка серверов не требуется можно использовать следующий Playbook:
---
- hosts: servers_ubuntu
tasks:
- name: Run the equivalent of apt-get update
apt:
update_cache: yes
- name: Update all packages to the latest version
apt:
upgrade: dist
Обратите внимание, тут я использую немного другой синтаксис apt , он тоже корректный.
Более подробно о синтаксисе можно почитать тут — https://docs.ansible.com/ansible/latest/modules/apt_module.html#examples
Теперь создадим Playbook устанавливающий Nginx, PHP и Mysql на наши сервера с Ubuntu
touch ~/ansible/playbooks/lemp_ubuntu.yml
Сам Playbook будет выглядеть так:
---
- hosts: servers_ubuntu
tasks:
- name: Run the equivalent of apt-get update
apt:
update_cache: yes
- name: Install Nginx
apt:
name: nginx
state: latest
- name: Install Mysql
apt:
name: mysql-server-5.7
state: latest
- name: Install PHP-FPM
apt:
name: php-fpm
state: latest
- name: Install PHP-MYSQL
apt:
name: php-mysql
state: latest
Проверим Playbook
ansible-playbook --check ~/ansible/playbooks/lemp_ubuntu.yml
PLAY [servers_ubuntu] *********************************************************************************************************************************************************************************************************************** TASK [Gathering Facts] ********************************************************************************************************************************************************************************************************************** ok: [test-ubuntu2] ok: [test-ubuntu1] TASK [Run the equivalent of apt-get update] ************************************************************************************************************************************************************************************************* changed: [test-ubuntu2] changed: [test-ubuntu1] TASK [Install Nginx] ************************************************************************************************************************************************************************************************************************ changed: [test-ubuntu1] changed: [test-ubuntu2] TASK [Install Mysql] ************************************************************************************************************************************************************************************************************************ changed: [test-ubuntu2] changed: [test-ubuntu1] TASK [Install PHP-FPM] ********************************************************************************************************************************************************************************************************************** changed: [test-ubuntu1] changed: [test-ubuntu2] TASK [Install PHP-MYSQL] ******************************************************************************************************************************************************************************************************************** changed: [test-ubuntu1] changed: [test-ubuntu2] PLAY RECAP ********************************************************************************************************************************************************************************************************************************** test-ubuntu1 : ok=6 changed=5 unreachable=0 failed=0 test-ubuntu2 : ok=6 changed=5 unreachable=0 failed=0
Запустим Playbook
ansible-playbook ~/ansible/playbooks/lemp_ubuntu.yml
PLAY [servers_ubuntu] *********************************************************************************************************************************************************************************************************************** TASK [Gathering Facts] ********************************************************************************************************************************************************************************************************************** ok: [test-ubuntu2] ok: [test-ubuntu1] TASK [Run the equivalent of apt-get update] ************************************************************************************************************************************************************************************************* changed: [test-ubuntu2] changed: [test-ubuntu1] TASK [Install Nginx] ************************************************************************************************************************************************************************************************************************ changed: [test-ubuntu1] changed: [test-ubuntu2] TASK [Install Mysql] ************************************************************************************************************************************************************************************************************************ changed: [test-ubuntu2] changed: [test-ubuntu1] TASK [Install PHP-FPM] ********************************************************************************************************************************************************************************************************************** changed: [test-ubuntu2] changed: [test-ubuntu1] TASK [Install PHP-MYSQL] ******************************************************************************************************************************************************************************************************************** changed: [test-ubuntu2] changed: [test-ubuntu1] PLAY RECAP ********************************************************************************************************************************************************************************************************************************** test-ubuntu1 : ok=6 changed=5 unreachable=0 failed=0 test-ubuntu2 : ok=6 changed=5 unreachable=0 failed=0
Playbook Успешно отработал, если зайти на хосты мы увидим что nginx, php и mysql успешно установились.
На этом этапе базовая настройка Playbook для хостов Ubuntu закончена перейдем к настройке хостов под управлением Windows.
Для работы с Windows хостами Ansible использует Powershell и winrm , версия Powershell требуется не ниже 3.0 , а net framework не ниже 4.
Для обновления Powershell и net framework можно использовать следующий скрипт:
$url = "https://raw.githubusercontent.com/jborean93/ansible-windows/master/scripts/Upgrade-PowerShell.ps1" $file = "$env:temp\Upgrade-PowerShell.ps1" $username = "Administrator" $password = "Password" (New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file) Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force # version can be 3.0, 4.0 or 5.1 &$file -Version 5.1 -Username $username -Password $password -Verbose # this isn't needed but is a good security practice to complete Set-ExecutionPolicy -ExecutionPolicy Restricted -Force $reg_winlogon_path = "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" Set-ItemProperty -Path $reg_winlogon_path -Name AutoAdminLogon -Value 0 Remove-ItemProperty -Path $reg_winlogon_path -Name DefaultUserName -ErrorAction SilentlyContinue Remove-ItemProperty -Path $reg_winlogon_path -Name DefaultPassword -ErrorAction SilentlyContinue
Далее запустите следующий скрипт для активации WINRM
$url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1" $file = "$env:temp\ConfigureRemotingForAnsible.ps1" (New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file) powershell.exe -ExecutionPolicy ByPass -File $file
После того как скрипты успешно отработали на ваших Windows хостах перейдем к настройке самого Ansible.
Переходим в консоль Ansible и запускаем команды для установки поддержки приложений python
apt-get install python-pip
export PATH="${HOME}/.local/bin:$PATH"
pip install pywinrm
Откроем файл /etc/ansible/hosts и добавим Windows Хосты.
[servers_windows] test-ansible test-ansible-iis [servers_windows:vars] ansible_user=YOUR_ADMIN_USER ansible_password=password ansible_connection=winrm ansible_winrm_server_cert_validation=ignore
Обратите внимание что кроме самих хостов были добавлены переменные с логином и паролем для подключения и включено игнорирование проверки ssl сертификата.
Теперь запустим ping до Windows хостов командой:
ansible servers_windows -m win_ping
Вывод должен быть следующим:
ansible servers_windows -m win_ping
test-ansible-iis | SUCCESS => {
"changed": false,
"ping": "pong"
}
test-ansible | SUCCESS => {
"changed": false,
"ping": "pong"
}
Теперь создадим новый Playbook, который будет устанавливать обновления на Windows хосты.
touch ~/ansible/playbooks/update_windows.yml
Сам Playbook будет следующий:
---
- hosts: servers_windows
tasks:
- name: Install all security, critical, and rollup updates
win_updates:
category_names:
- SecurityUpdates
- CriticalUpdates
- UpdateRollups
reboot: yes
Проверим Playbook
ansible-playbook --check ~/ansible/playbooks/update_windows.yml
Вывод должен быть таким:
PLAY [servers_windows] ********************************************************************************************************************************************************************************************************************** TASK [Gathering Facts] ********************************************************************************************************************************************************************************************************************** ok: [test-ansible-iis] ok: [test-ansible] TASK [Install all security, critical, and rollup updates] *********************************************************************************************************************************************************************************** ok: [test-ansible-iis] ok: [test-ansible] PLAY RECAP ********************************************************************************************************************************************************************************************************************************** test-ansible : ok=2 changed=0 unreachable=0 failed=0 test-ansible-iis : ok=2 changed=0 unreachable=0 failed=0
Запустим Playbook
ansible-playbook ~/ansible/playbooks/update_windows.yml
Вывод должен быть примерно таким:
PLAY [servers_windows] ********************************************************************************************************************************************************************************************************************** TASK [Gathering Facts] ********************************************************************************************************************************************************************************************************************** ok: [test-ansible] ok: [test-ansible-iis] TASK [Install all security, critical, and rollup updates] *********************************************************************************************************************************************************************************** ok: [test-ansible] changed: [test-ansible-iis] PLAY RECAP ********************************************************************************************************************************************************************************************************************************** test-ansible : ok=2 changed=0 unreachable=0 failed=0 test-ansible-iis : ok=2 changed=1 unreachable=0 failed=0
Обновления успешно установились на сервер test-ansible-iis , а для сервера test-ansible нет новых обновлений.
Теперь создадим Playbook для установки роли веб сервера IIS.
Создаем Playbook
touch ~/ansible/playbooks/install_iis_windows.yml
Сам Playbook будет следующего содержания:
---
- hosts: servers_windows
tasks:
- name: Install IIS Web-Server with management tools
win_feature:
name: Web-Server
state: present
include_management_tools: True
register: win_feature
Запустим проверку нашего Playbook
ansible-playbook --check ~/ansible/playbooks/install_iis_windows.yml
Вывод должен быть следующий:
PLAY [servers_windows] ********************************************************************************************************************************************************************************************************************** TASK [Gathering Facts] ********************************************************************************************************************************************************************************************************************** ok: [test-ansible] ok: [test-ansible-iis] TASK [Install IIS Web-Server with management tools] ************************************************************************************************************************************************************************ changed: [test-ansible] changed: [test-ansible-iis] PLAY RECAP ********************************************************************************************************************************************************************************************************************************** test-ansible : ok=2 changed=1 unreachable=0 failed=0 test-ansible-iis : ok=2 changed=1 unreachable=0 failed=0
Теперь запустим Playbook
~/ansible/playbooks/install_iis_windows.yml
Вывод должен быть таким:
PLAY [servers_windows] ********************************************************************************************************************************************************************************************************************** TASK [Gathering Facts] ********************************************************************************************************************************************************************************************************************** ok: [test-ansible] ok: [test-ansible-iis] TASK [Install IIS Web-Server with management tools] ************************************************************************************************************************************************************************ ok: [test-ansible] changed: [test-ansible-iis] PLAY RECAP ********************************************************************************************************************************************************************************************************************************** test-ansible : ok=2 changed=0 unreachable=0 failed=0 test-ansible-iis : ok=2 changed=1 unreachable=0 failed=0
На сервере test-ansible IIS уже был установлен, поэтому для него изменения не применились, а вот на сервер test-ansible-iis успешно установилась роль веб сервера IIS.
Более подробно о модуле win_feature можно почитать тут — https://docs.ansible.com/ansible/2.5/modules/win_feature_module.html
Сам список доступных фич можно получить Powershell командой Get-WindowsFeature , которую нужно выполнить на хосте с Windows.
Рассмотрим еще один пример, установим роли файлового сервера и ISCSI Target.
Создаем Playbook
touch ~/ansible/playbooks/install_fileserver_iscsi_target_windows.yml
Сам Playbook будет следующий:
---
- hosts: servers_windows
tasks:
- name: Install File-Server with management tools
win_feature:
name: FS-FileServer
state: present
include_management_tools: True
register: win_feature
- name: Install ISCSI Target-Server with management tools
win_feature:
name: FS-iSCSITarget-Server
state: present
include_management_tools: True
register: win_feature
Теперь запустим Playbook
ansible-playbook ~/ansible/playbooks/install_fileserver_iscsi_target_windows.yml
Результат:
PLAY [servers_windows] ********************************************************************************************************************************************************************************************************************** TASK [Gathering Facts] ********************************************************************************************************************************************************************************************************************** ok: [test-ansible] ok: [test-ansible-iis] TASK [Install File-Server with management tools] ******************************************************************************************************************************************************************************************** changed: [test-ansible-iis] changed: [test-ansible] TASK [Install ISCSI Target-Server with management tools] *********************************************************************************************************************************************************************************** changed: [test-ansible] changed: [test-ansible-iis] PLAY RECAP ********************************************************************************************************************************************************************************************************************************** test-ansible : ok=3 changed=2 unreachable=0 failed=0 test-ansible-iis : ok=3 changed=2 unreachable=0 failed=0
Роли файлового сервера и ISCSI Target успешно установились на сервера.
Обратите внимание что роли в playbook указываются из графы Name, команды Get-WindowsFeature.
Ниже пример вывода команды Get-WindowsFeature и список доступных ролей и фич Windows Server
Display Name Name Install State
------------ ---- -------------
[ ] Active Directory Certificate Services AD-Certificate Available
[ ] Certification Authority ADCS-Cert-Authority Available
[ ] Certificate Enrollment Policy Web Service ADCS-Enroll-Web-Pol Available
[ ] Certificate Enrollment Web Service ADCS-Enroll-Web-Svc Available
[ ] Certification Authority Web Enrollment ADCS-Web-Enrollment Available
[ ] Network Device Enrollment Service ADCS-Device-Enrollment Available
[ ] Online Responder ADCS-Online-Cert Available
[ ] Active Directory Domain Services AD-Domain-Services Available
[ ] Active Directory Federation Services ADFS-Federation Available
[ ] Active Directory Lightweight Directory Services ADLDS Available
[ ] Active Directory Rights Management Services ADRMS Available
[ ] Active Directory Rights Management Server ADRMS-Server Available
[ ] Identity Federation Support ADRMS-Identity Available
[ ] Application Server Application-Server Available
[ ] .NET Framework 4.5 AS-NET-Framework Available
[ ] COM+ Network Access AS-Ent-Services Available
[ ] Distributed Transactions AS-Dist-Transaction Available
[ ] WS-Atomic Transactions AS-WS-Atomic Available
[ ] Incoming Network Transactions AS-Incoming-Trans Available
[ ] Outgoing Network Transactions AS-Outgoing-Trans Available
[ ] TCP Port Sharing AS-TCP-Port-Sharing Available
[ ] Web Server (IIS) Support AS-Web-Support Available
[ ] Windows Process Activation Service Support AS-WAS-Support Available
[ ] HTTP Activation AS-HTTP-Activation Available
[ ] Message Queuing Activation AS-MSMQ-Activation Available
[ ] Named Pipes Activation AS-Named-Pipes Available
[ ] TCP Activation AS-TCP-Activation Available
[ ] DHCP Server DHCP Available
[ ] DNS Server DNS Available
[ ] Fax Server Fax Available
[X] File and Storage Services FileAndStorage-Services Installed
[X] File and iSCSI Services File-Services Installed
[X] File Server FS-FileServer Installed
[ ] BranchCache for Network Files FS-BranchCache Available
[X] Data Deduplication FS-Data-Deduplication Installed
[ ] DFS Namespaces FS-DFS-Namespace Available
[ ] DFS Replication FS-DFS-Replication Available
[ ] File Server Resource Manager FS-Resource-Manager Available
[ ] File Server VSS Agent Service FS-VSS-Agent Available
[ ] iSCSI Target Server FS-iSCSITarget-Server Available
[ ] iSCSI Target Storage Provider (VDS and V... iSCSITarget-VSS-VDS Available
[ ] Server for NFS FS-NFS-Service Available
[ ] Work Folders FS-SyncShareService Available
[X] Storage Services Storage-Services Installed
[ ] Hyper-V Hyper-V Available
[ ] Network Policy and Access Services NPAS Available
[ ] Network Policy Server NPAS-Policy-Server Available
[ ] Health Registration Authority NPAS-Health Available
[ ] Host Credential Authorization Protocol NPAS-Host-Cred Available
[ ] Print and Document Services Print-Services Available
[ ] Print Server Print-Server Available
[ ] Distributed Scan Server Print-Scan-Server Available
[ ] Internet Printing Print-Internet Available
[ ] LPD Service Print-LPD-Service Available
[ ] Remote Access RemoteAccess Available
[ ] DirectAccess and VPN (RAS) DirectAccess-VPN Available
[ ] Routing Routing Available
[ ] Web Application Proxy Web-Application-Proxy Available
[ ] Remote Desktop Services Remote-Desktop-Services Available
[ ] Remote Desktop Connection Broker RDS-Connection-Broker Available
[ ] Remote Desktop Gateway RDS-Gateway Available
[ ] Remote Desktop Licensing RDS-Licensing Available
[ ] Remote Desktop Session Host RDS-RD-Server Available
[ ] Remote Desktop Virtualization Host RDS-Virtualization Available
[ ] Remote Desktop Web Access RDS-Web-Access Available
[ ] Volume Activation Services VolumeActivation Available
[ ] Web Server (IIS) Web-Server Available
[ ] Web Server Web-WebServer Available
[ ] Common HTTP Features Web-Common-Http Available
[ ] Default Document Web-Default-Doc Available
[ ] Directory Browsing Web-Dir-Browsing Available
[ ] HTTP Errors Web-Http-Errors Available
[ ] Static Content Web-Static-Content Available
[ ] HTTP Redirection Web-Http-Redirect Available
[ ] WebDAV Publishing Web-DAV-Publishing Available
[ ] Health and Diagnostics Web-Health Available
[ ] HTTP Logging Web-Http-Logging Available
[ ] Custom Logging Web-Custom-Logging Available
[ ] Logging Tools Web-Log-Libraries Available
[ ] ODBC Logging Web-ODBC-Logging Available
[ ] Request Monitor Web-Request-Monitor Available
[ ] Tracing Web-Http-Tracing Available
[ ] Performance Web-Performance Available
[ ] Static Content Compression Web-Stat-Compression Available
[ ] Dynamic Content Compression Web-Dyn-Compression Available
[ ] Security Web-Security Available
[ ] Request Filtering Web-Filtering Available
[ ] Basic Authentication Web-Basic-Auth Available
[ ] Centralized SSL Certificate Support Web-CertProvider Available
[ ] Client Certificate Mapping Authentic... Web-Client-Auth Available
[ ] Digest Authentication Web-Digest-Auth Available
[ ] IIS Client Certificate Mapping Authe... Web-Cert-Auth Available
[ ] IP and Domain Restrictions Web-IP-Security Available
[ ] URL Authorization Web-Url-Auth Available
[ ] Windows Authentication Web-Windows-Auth Available
[ ] Application Development Web-App-Dev Available
[ ] .NET Extensibility 3.5 Web-Net-Ext Available
[ ] .NET Extensibility 4.5 Web-Net-Ext45 Available
[ ] Application Initialization Web-AppInit Available
[ ] ASP Web-ASP Available
[ ] ASP.NET 3.5 Web-Asp-Net Available
[ ] ASP.NET 4.5 Web-Asp-Net45 Available
[ ] CGI Web-CGI Available
[ ] ISAPI Extensions Web-ISAPI-Ext Available
[ ] ISAPI Filters Web-ISAPI-Filter Available
[ ] Server Side Includes Web-Includes Available
[ ] WebSocket Protocol Web-WebSockets Available
[ ] FTP Server Web-Ftp-Server Available
[ ] FTP Service Web-Ftp-Service Available
[ ] FTP Extensibility Web-Ftp-Ext Available
[ ] Management Tools Web-Mgmt-Tools Available
[ ] IIS Management Console Web-Mgmt-Console Available
[ ] IIS 6 Management Compatibility Web-Mgmt-Compat Available
[ ] IIS 6 Metabase Compatibility Web-Metabase Available
[ ] IIS 6 Management Console Web-Lgcy-Mgmt-Console Available
[ ] IIS 6 Scripting Tools Web-Lgcy-Scripting Available
[ ] IIS 6 WMI Compatibility Web-WMI Available
[ ] IIS Management Scripts and Tools Web-Scripting-Tools Available
[ ] Management Service Web-Mgmt-Service Available
[ ] Windows Deployment Services WDS Available
[ ] Deployment Server WDS-Deployment Available
[ ] Transport Server WDS-Transport Available
[ ] Windows Server Essentials Experience ServerEssentialsRole Available
[ ] Windows Server Update Services UpdateServices Available
[ ] WID Database UpdateServices-WidDB Available
[ ] WSUS Services UpdateServices-Services Available
[ ] Database UpdateServices-DB Available
[X] .NET Framework 3.5 Features NET-Framework-Features Installed
[X] .NET Framework 3.5 (includes .NET 2.0 and 3.0) NET-Framework-Core Installed
[ ] HTTP Activation NET-HTTP-Activation Available
[ ] Non-HTTP Activation NET-Non-HTTP-Activ Available
[X] .NET Framework 4.5 Features NET-Framework-45-Fea... Installed
[X] .NET Framework 4.5 NET-Framework-45-Core Installed
[ ] ASP.NET 4.5 NET-Framework-45-ASPNET Available
[X] WCF Services NET-WCF-Services45 Installed
[ ] HTTP Activation NET-WCF-HTTP-Activat... Available
[ ] Message Queuing (MSMQ) Activation NET-WCF-MSMQ-Activat... Available
[ ] Named Pipe Activation NET-WCF-Pipe-Activat... Available
[ ] TCP Activation NET-WCF-TCP-Activati... Available
[X] TCP Port Sharing NET-WCF-TCP-PortShar... Installed
[ ] Background Intelligent Transfer Service (BITS) BITS Available
[ ] IIS Server Extension BITS-IIS-Ext Available
[ ] Compact Server BITS-Compact-Server Available
[ ] BitLocker Drive Encryption BitLocker Available
[ ] BitLocker Network Unlock BitLocker-NetworkUnlock Available
[ ] BranchCache BranchCache Available
[ ] Client for NFS NFS-Client Available
[ ] Data Center Bridging Data-Center-Bridging Available
[ ] Direct Play Direct-Play Available
[ ] Enhanced Storage EnhancedStorage Available
[ ] Failover Clustering Failover-Clustering Available
[X] Group Policy Management GPMC Installed
[ ] IIS Hostable Web Core Web-WHC Available
[X] Ink and Handwriting Services InkAndHandwritingSer... Installed
[ ] Internet Printing Client Internet-Print-Client Available
[ ] IP Address Management (IPAM) Server IPAM Available
[ ] iSNS Server service ISNS Available
[ ] LPR Port Monitor LPR-Port-Monitor Available
[ ] Management OData IIS Extension ManagementOdata Available
[X] Media Foundation Server-Media-Foundation Installed
[ ] Message Queuing MSMQ Available
[ ] Message Queuing Services MSMQ-Services Available
[ ] Message Queuing Server MSMQ-Server Available
[ ] Directory Service Integration MSMQ-Directory Available
[ ] HTTP Support MSMQ-HTTP-Support Available
[ ] Message Queuing Triggers MSMQ-Triggers Available
[ ] Multicasting Support MSMQ-Multicasting Available
[ ] Routing Service MSMQ-Routing Available
[ ] Message Queuing DCOM Proxy MSMQ-DCOM Available
[ ] Multipath I/O Multipath-IO Available
[ ] Network Load Balancing NLB Available
[ ] Peer Name Resolution Protocol PNRP Available
[ ] Quality Windows Audio Video Experience qWave Available
[ ] RAS Connection Manager Administration Kit (CMAK) CMAK Available
[ ] Remote Assistance Remote-Assistance Available
[ ] Remote Differential Compression RDC Available
[X] Remote Server Administration Tools RSAT Installed
[ ] Feature Administration Tools RSAT-Feature-Tools Available
[ ] SMTP Server Tools RSAT-SMTP Available
[ ] BitLocker Drive Encryption Administratio... RSAT-Feature-Tools-B... Available
[ ] BitLocker Drive Encryption Tools RSAT-Feature-Tools-B... Available
[ ] BitLocker Recovery Password Viewer RSAT-Feature-Tools-B... Available
[ ] BITS Server Extensions Tools RSAT-Bits-Server Available
[ ] Failover Clustering Tools RSAT-Clustering Available
[ ] Failover Cluster Management Tools RSAT-Clustering-Mgmt Available
[ ] Failover Cluster Module for Windows ... RSAT-Clustering-Powe... Available
[ ] Failover Cluster Automation Server RSAT-Clustering-Auto... Available
[ ] Failover Cluster Command Interface RSAT-Clustering-CmdI... Available
[ ] IP Address Management (IPAM) Client IPAM-Client-Feature Available
[ ] Network Load Balancing Tools RSAT-NLB Available
[ ] SNMP Tools RSAT-SNMP Available
[ ] WINS Server Tools RSAT-WINS Available
[X] Role Administration Tools RSAT-Role-Tools Installed
[X] AD DS and AD LDS Tools RSAT-AD-Tools Installed
[X] Active Directory module for Windows ... RSAT-AD-PowerShell Installed
[X] AD DS Tools RSAT-ADDS Installed
[X] Active Directory Administrative ... RSAT-AD-AdminCenter Installed
[X] AD DS Snap-Ins and Command-Line ... RSAT-ADDS-Tools Installed
[ ] Server for NIS Tools [DEPRECATED] RSAT-NIS Available
[X] AD LDS Snap-Ins and Command-Line Tools RSAT-ADLDS Installed
[ ] Hyper-V Management Tools RSAT-Hyper-V-Tools Available
[ ] Hyper-V GUI Management Tools Hyper-V-Tools Available
[ ] Hyper-V Module for Windows PowerShell Hyper-V-PowerShell Available
[ ] Remote Desktop Services Tools RSAT-RDS-Tools Available
[ ] Remote Desktop Gateway Tools RSAT-RDS-Gateway Available
[ ] Remote Desktop Licensing Diagnoser T... RSAT-RDS-Licensing-D... Available
[ ] Remote Desktop Licensing Tools RDS-Licensing-UI Available
[ ] Windows Server Update Services Tools UpdateServices-RSAT Available
[ ] API and PowerShell cmdlets UpdateServices-API Available
[ ] User Interface Management Console UpdateServices-UI Available
[X] Active Directory Certificate Services Tools RSAT-ADCS Installed
[X] Certification Authority Management T... RSAT-ADCS-Mgmt Installed
[ ] Online Responder Tools RSAT-Online-Responder Available
[X] Active Directory Rights Management Servi... RSAT-ADRMS Installed
[X] DHCP Server Tools RSAT-DHCP Installed
[X] DNS Server Tools RSAT-DNS-Server Installed
[ ] Fax Server Tools RSAT-Fax Available
[X] File Services Tools RSAT-File-Services Installed
[X] DFS Management Tools RSAT-DFS-Mgmt-Con Installed
[X] File Server Resource Manager Tools RSAT-FSRM-Mgmt Installed
[X] Services for Network File System Man... RSAT-NFS-Admin Installed
[X] Share and Storage Management Tool RSAT-CoreFile-Mgmt Installed
[ ] Network Policy and Access Services Tools RSAT-NPAS Available
[ ] Print and Document Services Tools RSAT-Print-Services Available
[ ] Remote Access Management Tools RSAT-RemoteAccess Available
[ ] Remote Access GUI and Command-Line T... RSAT-RemoteAccess-Mgmt Available
[ ] Remote Access module for Windows Pow... RSAT-RemoteAccess-Po... Available
[ ] Volume Activation Tools RSAT-VA-Tools Available
[ ] Windows Deployment Services Tools WDS-AdminPack Available
[ ] RPC over HTTP Proxy RPC-over-HTTP-Proxy Available
[ ] Simple TCP/IP Services Simple-TCPIP Available
[X] SMB 1.0/CIFS File Sharing Support FS-SMB1 Installed
[ ] SMB Bandwidth Limit FS-SMBBW Available
[ ] SMTP Server SMTP-Server Available
[ ] SNMP Service SNMP-Service Available
[ ] SNMP WMI Provider SNMP-WMI-Provider Available
[ ] Telnet Client Telnet-Client Available
[ ] Telnet Server Telnet-Server Available
[ ] TFTP Client TFTP-Client Available
[X] User Interfaces and Infrastructure User-Interfaces-Infra Installed
[X] Graphical Management Tools and Infrastructure Server-Gui-Mgmt-Infra Installed
[X] Desktop Experience Desktop-Experience Installed
[X] Server Graphical Shell Server-Gui-Shell Installed
[ ] Windows Biometric Framework Biometric-Framework Available
[ ] Windows Feedback Forwarder WFF Available
[ ] Windows Identity Foundation 3.5 Windows-Identity-Fou... Available
[ ] Windows Internal Database Windows-Internal-Dat... Available
[X] Windows PowerShell PowerShellRoot Installed
[X] Windows PowerShell 4.0 PowerShell Installed
[X] Windows PowerShell 2.0 Engine PowerShell-V2 Installed
[ ] Windows PowerShell Desired State Configurati... DSC-Service Available
[X] Windows PowerShell ISE PowerShell-ISE Installed
[ ] Windows PowerShell Web Access WindowsPowerShellWeb... Available
[ ] Windows Process Activation Service WAS Available
[ ] Process Model WAS-Process-Model Available
[ ] .NET Environment 3.5 WAS-NET-Environment Available
[ ] Configuration APIs WAS-Config-APIs Available
[ ] Windows Search Service Search-Service Available
[ ] Windows Server Backup Windows-Server-Backup Available
[ ] Windows Server Migration Tools Migration Available
[ ] Windows Standards-Based Storage Management WindowsStorageManage... Available
[ ] Windows TIFF IFilter Windows-TIFF-IFilter Available
[ ] WinRM IIS Extension WinRM-IIS-Ext Available
[ ] WINS Server WINS Available
[ ] Wireless LAN Service Wireless-Networking Available
[X] WoW64 Support WoW64-Support Installed
[ ] XPS Viewer XPS-Viewer Available
На этом базовое ознакомление с Ansible можно считать законченным)
Удачной установки!
Комментарии