Переменная IPsible IP-адрес - часть хоста

У меня следующая проблема:

Я пишу книгу для установки IP-адреса в командной строке в Ansible. Скажем 10.10.10.х. Мне нужно получить последнюю часть моего публичного IP-адреса, скажем, x.x.x.15 и назначить его частному: 10.10.10.15. Есть ли переменная для этого? Могу ли я захватить некоторые? Я пытался использовать что-то вроде:

shell: "ip addr show | grep inet ...." 
register: host_ip

Но это не то, что мне нужно. Это работает, но только для ограниченного числа серверов.

Все должно быть так:

"shell: /dir/script --options 10.10.10.{{ var }}"

и {{ var }} должны быть частью общедоступного IP-адреса.

Edit:

Спасибо! Вот мое окончательное решение:

- name: Get the host part of the IP 
  shell: host {{ ansible_fqdn }} | awk '{print $4}' 
  register: host_ip 

и

{{ host_ip.stdout.split('.')[3] }}

Для последующего использования в сборнике.

12 голосов | спросил plamer 20 PM00000090000002431 2014, 21:11:24

2 ответа


0

Вместо использования системной утилиты вы можете использовать ответные факты хотя вы обнаружите, что имена интерфейсов будут отличаться от сервера к серверу.

Вы специально упомянули последнюю часть моего публичного IP-адреса

Если вы действительно имеете в виду свой общедоступный IP-адрес , вам потребуется использовать внешний сервис для его получения, поскольку ваш сервер может работать за NAT. Вот один из вариантов

shell: wget -qO- http://ipecho.net/plain ; echo
register: host_ip

Это даст ваш общедоступный IP-адрес, рядом с последним октетом, который вы могли бы сделать что-то вроде:

{{ host_ip.stdout.split('.')[3] }}
ответил jarv 20 PM000000110000004231 2014, 23:58:42
0

Это аналогичный способ получить его:

- name: Get the local IP
  local_action:
      module: uri
      url: http://checkip.amazonaws.com/
      return_content: yes
  register: ip_lookup
- set_fact:
      local_ip: "{{ ip_lookup.content | regex_replace('\n','') }}"
- debug: var=local_ip
ответил joscas 31 J000000Friday15 2015, 19:24:32

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132