Установка и настройка Ansible
В данной статье мы рассмотрим как установить Ansible на Ubuntu server 18.04 и настроить playbook с автоматической установкой обновлений на Windows и Ubuntu хосты.
Также рассмотрим простой пример как поднять веб сервер с nginx,php7,mysql и поднять роли iis, fileserver на Windows хостах с помощью playbook Ansible.
Поехали!
Добавим ключ от репозитория Ansible
1 |
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 |
Добавим сам репозиторий
1 |
apt-add-repository "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" |
Обновим список пакетов и установим Ansible
1 |
apt-get update && apt-get install ansible |
Ansible использует ssh для подключения к Linux серверам.
Поэтому создадим ключ ssh на сервере Ansible
1 |
ssh-keygen -t rsa -b 4096 |
Далее нужно скопировать ключ кодандой ниже, на каждый сервер который мы планируем обслуживать через Ansible
1 |
ssh-copy-id root@test-ubuntu1 |
В данной команде измените root на своего пользователя и test-ubuntu1 на hostname вашего сервера
Ansible использует python для управления linux хостами, поэтому подклюючимся к каждой ноде с Ubuntu и установим на них python командой:
1 |
apt-get update && apt-get install python python-apt |
Теперь вернемся на сервер Ansible и откроем файл /etc/ansible/hosts
В данный файл заносятся хосты которые мы планируем обслуживать через Ansible.
Хосты заносятся по группам.
Например:
1 2 3 |
[servers_ubuntu] test-ubuntu1 test-ubuntu1 |
Теперь проверим можем ли мы подключиться к добавленным хостам
Запустим ping
1 |
ansible -m ping all |
Вывод должен быть таким:
1 2 3 4 5 6 7 8 |
test-ubuntu1 | SUCCESS => { "changed": false, "ping": "pong" } test-ubuntu2 | SUCCESS => { "changed": false, "ping": "pong" } |
Также можно изменить команду ping следующим образом:
1 2 3 |
ansible -m ping servers_ubuntu - в данном случае мы пингуем только сервера из группы servers_ubuntu ansible -m ping test-ubuntu1 - в данном случае мы пингуем только хост test-ubuntu1 |
Теперь проверим связь по ssh
Выполним команду , которая выведет нам кол-во свободной памяти на наших серверах с Ubuntu
1 |
ansible -m shell -a 'free -m' servers_ubuntu |
Вывод должен быть примерно таким:
1 2 3 4 5 6 7 8 9 |
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 командой ниже:
1 |
mkdir /etc/ansible/group_vars |
Далее создаем в ней файл с названием нашей группы серверов
1 |
touch /etc/ansible/group_vars/servers_ubuntu |
и внесем в него следующую переменную, сам файл необходимо создавать в формате YAML.
Содержимое файла будет следующее:
1 2 |
--- ansible_ssh_user: root |
Вместо root укажите своего пользователя.
Теперь перейдем к самому интересному, создадим свой первый Playbook, который будет устанавливать обновления на Ubuntu.
Создадим папку для Playbook
1 |
mkdir -p ~/ansible/playbooks |
Создадим новый Playbook
1 |
touch ~/ansible/playbooks/update_ubuntu.yml |
Открываем файл ~/ansible/playbooks/update_ubuntu.yml и заполняем его следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
--- - 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
1 |
ansible-playbook --check ~/ansible/playbooks/update_ubuntu.yml |
Вывод команды должен быть таким:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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
1 |
ansible-playbook ~/ansible/playbooks/update_ubuntu.yml |
Вывод команды должен быть таким:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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:
1 2 3 4 5 6 7 8 9 10 |
--- - 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
1 |
touch ~/ansible/playbooks/lemp_ubuntu.yml |
Сам Playbook будет выглядеть так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
--- - 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
1 |
ansible-playbook --check ~/ansible/playbooks/lemp_ubuntu.yml |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
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
1 |
ansible-playbook ~/ansible/playbooks/lemp_ubuntu.yml |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
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 можно использовать следующий скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$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
1 2 3 4 5 6 |
$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
1 2 3 |
apt-get install python-pip export PATH="${HOME}/.local/bin:$PATH" pip install pywinrm |
Откроем файл /etc/ansible/hosts и добавим Windows Хосты.
1 2 3 4 5 6 7 8 9 |
[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 хостов командой:
1 |
ansible servers_windows -m win_ping |
Вывод должен быть следующим:
1 2 3 4 5 6 7 8 9 10 |
ansible servers_windows -m win_ping test-ansible-iis | SUCCESS => { "changed": false, "ping": "pong" } test-ansible | SUCCESS => { "changed": false, "ping": "pong" } |
Теперь создадим новый Playbook, который будет устанавливать обновления на Windows хосты.
1 |
touch ~/ansible/playbooks/update_windows.yml |
Сам Playbook будет следующий:
1 2 3 4 5 6 7 8 9 10 |
--- - hosts: servers_windows tasks: - name: Install all security, critical, and rollup updates win_updates: category_names: - SecurityUpdates - CriticalUpdates - UpdateRollups reboot: yes |
Проверим Playbook
1 |
ansible-playbook --check ~/ansible/playbooks/update_windows.yml |
Вывод должен быть таким:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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
1 |
ansible-playbook ~/ansible/playbooks/update_windows.yml |
Вывод должен быть примерно таким:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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
1 |
touch ~/ansible/playbooks/install_iis_windows.yml |
Сам Playbook будет следующего содержания:
1 2 3 4 5 6 7 8 9 |
--- - 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
1 |
ansible-playbook --check ~/ansible/playbooks/install_iis_windows.yml |
Вывод должен быть следующий:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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
1 |
~/ansible/playbooks/install_iis_windows.yml |
Вывод должен быть таким:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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
1 |
touch ~/ansible/playbooks/install_fileserver_iscsi_target_windows.yml |
Сам Playbook будет следующий:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
--- - 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
1 |
ansible-playbook ~/ansible/playbooks/install_fileserver_iscsi_target_windows.yml |
Результат:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 |
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 можно считать законченным)
Удачной установки!
Комментарии