Каков хороший способ хранения изображений для тестирования загрузки и удаления?

Я хочу предложить еще одно решение:

- name: Create madhead user
  user:
    name: madhead
    password: "{{ 'password' | password_hash('sha512') }}"
    shell: /bin/zsh
    update_password: on_create
  register: madhead
- name: Force madhead to change password
  shell: chage -d 0 madhead
  when: madhead.changed

Почему это лучше? Как уже было отмечено здесь, Ansible пьесы должны быть идемпотентными. Вы должны думать о них не как последовательность действий в императивном стиле, а как желаемое состояние, декларативный стиль. В результате вы сможете запустить его несколько раз и получить тот же результат, то же самое состояние сервера.

Все это звучит здорово, но есть некоторые нюансы. Одним из них является управление пользователями. «Желаемое состояние» означает, что каждый раз, когда вы запускаете игру, которая создает пользователя, он будет обновлен, чтобы точно соответствовать этому состоянию. Под «обновлением» я подразумеваю, что его пароль также будет изменен. Но, скорее всего, это не то, что вам нужно. Как правило, вам нужно создать пользователя, установить и закончить его пароль только один раз, дальнейшие прогоны воспроизведения не должны обновлять его пароль.

К счастью, Ansible имеет атрибут update_password в модуле user , который решает эту проблему. Смешивая это с зарегистрированными переменными , вы также можете истек его пароль только тогда, когда пользователь фактически обновлен.

Обратите внимание, что если вы меняете оболочку пользователя вручную (предположим, вам не нравится оболочка, которую злодейский администратор заставил играть), пользователь будет обновлен, поэтому его пароль будет истек.

Также обратите внимание, как вы можете легко использовать начальные пароли обычного текста в играх. Нет необходимости кодировать их где-то еще и вставлять хэши, вы можете использовать фильтр Jinja2 для этого. Однако это может быть недостатком безопасности, если кто-то случайно заходит в систему, прежде чем вы это сделаете.

0
задан johan 17 January 2019 в 06:37
поделиться

1 ответ

Мой rails_helper пропустил это:

CarrierWave.configure do |config|
  config.root              = Rails.root.join('spec/fixtures')
  config.cache_only        = true
  config.enable_processing = false
  config.base_path         = "/"
end
0
ответ дан johan 17 January 2019 в 06:37
поделиться
Другие вопросы по тегам:

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