Рейтинг:0

Как мне написать файл yaml для использования в недоступной переменной?

флаг us

Я начал разворачивать доступный сервер и пытался создать 5 пользователей на клиентских хостах через playbook (add5userslist.yaml) с циклом, который использует переменные в списке из другого файла (userslist.yaml), но не за работой.

И...это это то, что извлекает ansible, когда я пытаюсь использовать эту книгу с этим списком:

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

код книги:

- хосты: GrupoPrincipal

  задачи:
    - include_vars:
        файл: /etc/ansible/playbooks/userslist.yaml
        имя: список пользователей
    - имя: Добавить 5 пользователей из списка
      доступный.встроенный.пользователь:
       имя: "{{ item.name }}"
       пароль: "{{'abc123.' | пароль_хэш('sha512')}}"
      цикл: "{{ список пользователей }}"

код userlist.yaml - это только это, единственное, что немного сработало:

имя: 'пользователь1'
имя: 'пользователь2'
имя: 'пользователь3'
имя: 'пользователь4'
имя: 'пользователь5'

@Martin помог мне с проблемой, описанной выше, но теперь я пытаюсь использовать более 1 типа элементов, похоже, это работает, вот как у меня есть новый код

- хосты: GrupoPrincipal

  задачи:
    - include_vars:
        файл: /etc/ansible/playbooks/userslist.yaml
        имя: список пользователей

    - имя: Добавить 5 пользователей из списка и поместить их в группы
      доступный.встроенный.пользователь:
       имя: "{{ item.names }}"
       группы: "{{ item.groups }}"
       пароль: "{{'abc123.' | пароль_хэш('sha512')}}"
      петля:
      - { имена: '{{userlist.names }}', группы: '{{userlist.groups }}' }

и новый список yaml:

имена:
  - пользователь1
  - пользователь2
  - пользователь3
  - пользователь4
  - пользователь5
группы:
  - пользователи
  - пользователи
  - пользователи
  - пользователи
  - пользователи
Рейтинг:1
флаг cn

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

Вы должны определить свои var_files, например:

пользователи:
  - пользователь1
  - пользователь2

А затем в вашей основной пьесе удалите «item.name», чтобы просто использовать элемент, и укажите внутри вашего varfile, какую переменную вы используете:

- хосты: GrupoPrincipal

  задачи:
    - include_vars:
        файл: /etc/ansible/playbooks/userslist.yaml
        имя: список пользователей

    - имя: Добавить 5 пользователей из списка
      доступный.встроенный.пользователь:
       имя: "{{ элемент }}"
       пароль: "{{'abc123.' | пароль_хэш('sha512')}}"
      цикл: "{{userlist.users}}"
флаг us
Спасибо! @Martin, это мне очень помогло и теперь работает, но теперь я пытаюсь использовать это с более чем 1 типом элемента в списке, добавляя группы, например, в список пользователей.yaml, но, похоже, это работает, я отредактировал основной пост с как это сейчас, вы можете помочь мне снова?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.