Как считывать записи хостов во время выполнения из файла инвентаризации во время выполнения Ansible Playbook [дублировать]

Добавить почтовый заголовок в функцию почты

$header = "From: noreply@example.com\r\n"; 
$header.= "MIME-Version: 1.0\r\n"; 
$header.= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
$header.= "X-Priority: 1\r\n"; 

$status = mail($to, $subject, $message, $header);

if($status)
{ 
    echo '<p>Your mail has been sent!</p>';
} else { 
    echo '<p>Something went wrong, Please try again!</p>'; 
}
26
задан techraf 12 May 2016 в 00:29
поделиться

2 ответа

Переменная, которую я искал, - это встроенная функция: inventory_hostname

Относительная документация о inventory_hostname и inventory_hostname_short содержится в главе Magic Variables и как получить доступ к информации О других хостах .

Оригинальный вопрос: https://groups.google.com/forum/#!topic/ansible-project/Oa5YXjHecIw

54
ответ дан user272735 22 August 2018 в 06:34
поделиться

Вы можете просто использовать {{ ansible_ssh_host }} Например:

Инвентарь:

[my_hosts]
my_host ansible_ssh_host=127.0.0.1 my_host_alias=my_host

Playbook:

---
- name: My Good playbook
  user: ubuntu
  hosts: all

  tasks:
    - name: My message
      debug: msg="Myhost is {{ ansible_ssh_host }}"

    - name: My message bogus
      debug: msg="My host alias is {{ my_host_alias }}"

Исполнение:

$ ansible-playbook -i inventory play.yml

PLAY [My Good playbook] *******************************************************

GATHERING FACTS ***************************************************************
ok: [my_host]

TASK: [My message] ************************************************************
ok: [my_host] => {
    "msg": "Myhost is 127.0.0.1"
}

TASK: [My message bogus] ******************************************************
ok: [my_host] => {
    "msg": "My host alias is my_host"
}

PLAY RECAP ********************************************************************
my_host                    : ok=3    changed=0    unreachable=0    failed=0
12
ответ дан Rico 22 August 2018 в 06:34
поделиться
  • 1
    Спасибо, но я хочу получить псевдоним (поэтому выход должен быть «my_host»), а не IP-адрес. Предполагается, что я пытаюсь интегрировать существующую инфраструктуру с возможностью доступа, и я получаю только IP-адреса. В некоторых задачах я собираю информацию о серверах (записывая статистику в шаблоны), и поэтому я хотел бы добавить псевдоним в шаблон – ProfHase85 11 April 2014 в 08:30
  • 2
    Проверьте мое редактирование, просто используйте переменную my_host_alias – Rico 11 April 2014 в 15:11
  • 3
    Спасибо, проблема в этом решении заключается в его избыточности: я определяю псевдоним дважды (вот почему я хотел знать, есть ли встроенная переменная для псевдонима, но, похоже, нет такой вещи) – ProfHase85 13 April 2014 в 18:23
Другие вопросы по тегам:

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