Использование ansible для запуска веб-сервера nginx: localhost: 8080 не отвечает - PullRequest
0 голосов
/ 01 мая 2018

Я экспериментирую с Ansible, читая великую книгу Ansible Up and Running Лорина Хохштейна.

На машине с Ubuntu 16.04 с Ansible я пытаюсь запустить web-tls playbook.

В качестве примера я создал файл web-notls.yml и поместил в каталог playbook :

    - name: Configure webserver with nginx
hosts: webservers
sudo: True
tasks:
- name: install nginx
apt: name=nginx update_cache=yes
- name: copy nginx config file
copy: src=files/nginx.conf dest=/etc/nginx/sites-available/default
- name: enable configuration
file: >
dest=/etc/nginx/sites-enabled/default
src=/etc/nginx/sites-available/default
state=link
- name: copy index.html
template: src=templates/index.html.j2 dest=/usr/share/nginx/html/index.html
mode=0644
- name: restart nginx
service: name=nginx state=restarted

Я также указал файл nginx.conf и поместил его в каталог playbooks / files / nginx.conf :

   server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
}
}

Я также создал файл hosts для легкого доступа к машине Vagrant и настраиваемую веб-страницу для просмотра сообщения после доступа к веб-странице.

Я изменил Vagrantfile , чтобы он содержал этот код:

VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 443, host: 8443
end

После этого изменения порт 8080 на моем локальном компьютере должен быть перенаправлен на порт 80 компьютера Vagrant, а порт 8443 на моем локальном компьютере должен быть перенаправлен на ort 443 на компьютере vagrant: 8080 Архитектура переадресации портов При попытке запустить playbook по:

$ ansible-playbook web-notls.yml

выход:

luigi@luigi-H87-HD3:~/playbooks$ ansible-playbook web-notls.yml 
[DEPRECATION WARNING]: [defaults]hostfile option, The key is misleading as it can also be a list of 
hosts, a directory or a list of paths , use [defaults] inventory=/path/to/file|dir instead. This 
feature will be removed in version 2.8. Deprecation warnings can be disabled by setting 
deprecation_warnings=False in ansible.cfg.
[DEPRECATION WARNING]: Instead of sudo/sudo_user, use become/become_user and make sure become_method
 is 'sudo' (default). This feature will be removed in version 2.6. Deprecation warnings can be 
disabled by setting deprecation_warnings=False in ansible.cfg.

PLAY [Configure webserver with nginx] ***************************************************************

TASK [Gathering Facts] ******************************************************************************
ok: [testserver]

TASK [install nginx] ********************************************************************************
ok: [testserver]

TASK [copy nginx config file] ***********************************************************************
ok: [testserver]

TASK [enable configuration] *************************************************************************
ok: [testserver]

TASK [copy index.html] ******************************************************************************
ok: [testserver]

TASK [restart nginx] ********************************************************************************
changed: [testserver]

PLAY RECAP ******************************************************************************************
testserver                 : ok=6    changed=1    unreachable=0    failed=0 

Кажется, ошибок пока нет. Сейчас я пытаюсь открыть адрес localhost: 8080 через браузер на моей локальной машине (я также пытался выполнить бродячую ssh и безуспешно попробовать curl localhost: 8080), но я не получил результатов. Что я делаю не так?

Заранее спасибо!

1 Ответ

0 голосов
/ 01 мая 2018

С первого взгляда не было ошибок на выходе anisble, поэтому я думаю, что скрипт справился со своей задачей. Кажется, ошибка в том, что вы должны смотреть на localhost: 80 , а не localhost: 8080 .

...