Vladimir
Всем привет. Коллеги, подскажите пжлст норм способ рулить локалями через ансибл? "locale_gen" у меня как-то не очень взлетает...
Desdichado
Если локалей немного, можно башсиблом - name: get all avialable locales shell: cmd: "ls /usr/share/i18n/locales/ | grep _ " register: locales - name: compile all avialable locales shell: "localedef --quiet -i {{ item }} -f UTF-8 {{ item }}.UTF-8" loop: "{{ locales.stdout_lines }}" ignore_errors: yes
Sergei
Всем доброго дня. А кто-нибудь пробовал настраивать сетевое железо через консольный сервер? При использовании типа соединения network_cli - просто отвал по таймауту. Если использовать просто ssh - нельзя использовать всякие модули ios_config. Попробовал на питоне написать скрипт (в меру сил), чтобы просто подключиться через парамико - такая же ситуация, логин проходит нормально, а дальше тишина. Скрипт с netmiko при этом работает, но там можно явно указать типа устройства terminal_server.
Vlad
Всем привет. Коллеги, подскажите пжлст норм способ рулить локалями через ансибл? "locale_gen" у меня как-то не очень взлетает...
- name: Add russian locales       command:  localedef --no-archive -i {{ item.locale }} -f {{ item.codepage }} {{ item.locale }}.{{ item.codepage }}       args:         creates: /usr/lib/locale/{{ item.locale }}.{{ item.codepage | lower }}       with_items:         - locale: ru_RU           codepage: UTF-8         - locale: ru_RU           codepage: CP1251
Vlad
для centos/rhel
Vladimir
Понял. @vadikgo , @Alexander_Rus , спасибо за советы.
Vladimir
Пошел пробовать
Desdichado
Если локалей много, времени очень много требуется для компиляции. В таком случае проще заранее скомпилировать и заливать готовый файл
Artem
доброе утро всем! подскажите пожалуйста. судя по доке, file должен проверять есть ли папка или нет. я пишу так - name: create a www directory if it does not exist file: path: '/var/www/{{ fqdn }}/{{ item }}' state: directory recurse: yes mode: '0755' loop: - cgi-bin - html но при повторном запуске, получаю это:
Artem
Artem
разве статус не должен быть ок?
Vladislav 👻
mode без кавычек должен быть
Vladislav 👻
Но не уверен, что в этом проблема
Artem
оф. дока:
Vladislav 👻
там тоже касяки бывают
Vladislav 👻
так это строка, а вам надо передать восьмибитное значение
Artem
я тоже так думал. но права вроде норм. выставляет. drwxr-xr-x. 5 apache apache
Vladislav 👻
это базовые права
Artem
вот другой файл который. ятоже задал как '0600' и он норм -rw-------. 1 root root
Artem
т.е видимо они конвертят сами
Artem
в общем как я понял. полагаться на их механизм при использовании 'file' не надо. лучше делать классическую проверку через 'stat'
Artem
А зачем стоит recurse?
потому что /var/www/{{ fqdn }}/ нет
Artem
создает сразу её и затем 2 папки внутри
Artem
для этого рекурс
Lamobot
потому что /var/www/{{ fqdn }}/ нет
Офф дока: recurse - Recursively set the specified file attributes on directory contents. This applies only when state is set to directory. State - If directory, all intermediate subdirectories will be created if they do not exist. Since Ansible 1.7 they will be created with the supplied permissions.
Artem
ага. тогда не нужен. надо будет попробовать
Lamobot
Как предположение. Вот вы создаете директорию, выставляете mode для неё и файлов (которых пока там нет). Потом ваш плейбук туда пишет файлы какие-то? Возможно с другим mode. Вы запускаете плейбук ещё раз, и он с recurse меняет права на файлы в уже созданной директории. И правильно пишет, что что-то поменялось :)
Artem
у меня дальше да. распаковка файлов в эти папки. а вишенка на торте, это смена прав всей папки
Artem
я потом делаю так: - name: recursively change ownership of a www directory file: path: '/var/www/{{ fqdn }}' state: directory recurse: yes owner: apache group: apache
Artem
при создании тогда не нужно. но я уже понял что мне в любом случае не хватает здесь проверки. так-как 2 раз нет смыслы распаковывать и перезаписывать файлы. пошел доделывать... спс. за разъяснение
Lamobot
я потом делаю так: - name: recursively change ownership of a www directory file: path: '/var/www/{{ fqdn }}' state: directory recurse: yes owner: apache group: apache
Добавьте сюда ещё и mode, возможно тогда он не будет перезаписывать права на файлы
Lamobot
Или уберите recurse
Artem
де. без рекурс статус ок
Artem
но проверка всё равно нужна. нет смысла второй раз туда распаковывать файлы и менять права
Sergey
при создании тогда не нужно. но я уже понял что мне в любом случае не хватает здесь проверки. так-как 2 раз нет смыслы распаковывать и перезаписывать файлы. пошел доделывать... спс. за разъяснение
Я рекомендую не переписывать Ansible на Ansible, а привести в порядок процесс. Если changed - значит, что-то менялось. Сделай правильные права по умолчанию через ACL.
Artem
Я рекомендую не переписывать Ansible на Ansible, а привести в порядок процесс. Если changed - значит, что-то менялось. Сделай правильные права по умолчанию через ACL.
с этим уже разобрались. а не подскажешь пожалуйста в чем разница между import_tasks и include_tasks ? делают одно и тоже. второе Dynamically include a task list. но импорт же тоже динамически добавляет
Artem
вынес в отдельные файлы. а то block конечно удобно. но читаемость теряется когда больше 3 тасков внутри.
Sergey
@firemdkfighter говносайты не в почёте
Fire
@firemdkfighter говносайты не в почёте
https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_includes.html
Sergey
https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_includes.html
Да я не против Stackoverflow, просто его клон с убогим машинным переводом на русский нинужен.
Sergey
Первая ссылка из выдачи гугла)
Ты не хочешь кидаться ссылкой, не посмотрев, что там такое 🤷‍♂️
Ivan
Подскажите, как предавать vault переменную в awx ?
Sergey
Удалил лицензионный флейм.
Wadik
kerberos: HTTPSConnectionPool(host='rnd-ld1-it-01', port=5986): Max retries exceeded with url: /wsman (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)')))", Добрый день. Подскажите, что эта ошибка значит ?
Wadik
Хочу сделать что бы все работало через пользователя AD. kerberos вроде настроил . Klist - отрабатывает нормально.
Boris Golynski
Добрый день. Только начинаю разбираться с Ансибл, поэтому прошу сильно не пинать. Задача: сделать плейбук, который устанавливает на сервера Питон версии 3.8. Смотрю вариант: https://docs.ansible.com/ansible/latest/modules/package_module.html Но не совсем понимаю, откуда взять синтаксис задания версии: "Syntax varies with package manager. For example name-1.0 or name=1.0." Подскажите куда копать.
Boris Golynski
на сервере какой линукс установлен?
Убунта. Но идея в том, чтобы и на центрами работало.
Div
Убунта. Но идея в том, чтобы и на центрами работало.
для мультиплатформенной инсталяции вам нужно будет делать для разных списка пакетов
Div
для примера в centos 8 питон это python36 в ubuntu 18 - python3.6
Anastasia
Мнения разошлись. А где-то в доке это узнать можно?
по конкретно чему мнения разошлись? вот дока, где написано, как указывать версии в ансибле https://docs.ansible.com/ansible/latest/modules/package_module.html
Div
потом в момент вызова модуля вызывать через переменную ansible_distribution
Boris Golynski
по конкретно чему мнения разошлись? вот дока, где написано, как указывать версии в ансибле https://docs.ansible.com/ansible/latest/modules/package_module.html
Эту ссылку я и нашел. Но из нее непонятно с - или с = надо задавать для питона. Или это только перебором решается?
Div
еще можете попробовать управлять версиями питона через pyenv. тут вам будет и универсальность и мультиплатформенность в одном флаконе.
Anastasia
Эту ссылку я и нашел. Но из нее непонятно с - или с = надо задавать для питона. Или это только перебором решается?
это решается пакетным менеджером. Не нашла официальную документацию, но вот: yum: https://unix.stackexchange.com/questions/151689/how-can-i-instruct-yum-to-install-a-specific-version-of-package-x apt: https://askubuntu.com/questions/428772/how-to-install-specific-version-of-some-package
Boris Golynski
Получается нужно добавить проверку на систему и сделать 2 варианта.
Anastasia
Получается нужно добавить проверку на систему и сделать 2 варианта.
да. также учтите, что в разных системах по-разному могут называться пакеты
Aleksey
Господа, а как можно накостылить ignore-handlers. Хочу переиспользовать роли в packer. Части данных для ролей не будут. К примеру ssl сертификатов. роль nginx грустит если ей указали на серты но их не предоставили.
Aleksey
при выполнении хендлера соответственно роль хочет сделать рестарт nginx но у неё не получится. ибо у nginx не будет сертов.
Aleksey
хочется накостылить так что бы роль не менять
Aleksey
ха. впрочем тут предусмотрели https://github.com/nginxinc/ansible-role-nginx/blob/master/handlers/main.yml#L17
Aleksey
других вариантов не больно то да ?
Anatolii
Здравствуйте. Подскажите кто сталкивался с ребитом. Как через ансибл создавать юзеров и очереди в ребите через ансибл?
Combot
Total messages: 145615
Anatolii
странный вопрос. берешь и создаешь
А нету какого-то примера? А то не понятно что именно создавать
Sebor▂▅▇█▓▒░
А нету какого-то примера? А то не понятно что именно создавать
примера чего? в смысле, что именно создавать? ты же сам пишешь, что очереди и пользователей
Anatolii
примера чего? в смысле, что именно создавать? ты же сам пишешь, что очереди и пользователей
Да, очереди и пользователей. Для этого нужно писать отдельный ямл или как?
Anatolii
Вот так как тут https://github.com/IronCore864/ansible-rabbitmq-cluster/blob/master/tasks/create_users.yml