Ответы пользователя по тегу Ansible
  • Как правильно экранировать символы $ и ' при передаче их в ansible shell?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Почитать документацию шелла по кавычкам.

    Вкратце:
    1. Внутри одинарных кавычек ВСЕ символы теряют свое специальное значение. Включая backslash, поэтому
    'STRING1\'STRING2'
    - это не экранированная одинарная кавычка в кавычках, а строка STRING1\ в одинарных кавычках потом STRING2 без кавычек, а потом еще одна открывающая одинарная кавычка, которая незакрыта.
    Можно делать так:
    'STRING1'\''STRING2'

    2. Внутри двойных кавычек, все символы теряют свое специальное значение кроме $, backslash и обратных одинарных кавычек. Примеры:
    "${VARIABLE} \${VARIABLE} $(hostname) `hostname`"
    значение VARIABLE, строка ${VARIABLE} которая раскроется позже, дважды результат команды hostname вызванный разными способами
    Ответ написан
    Комментировать
  • Какой годный курс, а лучше книгу по docker, docker-compose, ansible?

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

    К документации нужно просто добавлять практику на каком-то хобби проекте, или реальном проекте, чтобы стояла конкретная задача. И все.
    Ответ написан
    7 комментариев
  • Как передать контекст, в котором есть двойные кавычки на remote хост?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Сложный пример, лень читать столько текста.
    Но как минимум, вы не экранируете кавычки вообще. Как я понял,шлете ${CONSUL_HCL_FILE_CONTEXT... как есть, без изменений, а внутри лежат обычные кавычки. Естественно echo с ними не подружится в таком виде.
    Разберитесь с экранированием ваших шаблонов.
    На крайняк можно вообще кодировать весь файл в base64, передавать как строку, а там декодировать ее в файл.
    Ответ написан
    Комментировать
  • Насколько сильно я извращаюсь с ansible & jenkins?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Так можно посмотреть что именно делает ansible
    Если весь плейбук это скопировать файлик, запустить Npm, То можно это сделать просто шелл скриптом и выкинуть Ansible.

    Ансибл нужен, чтобы упростить администрирование многими серверами. А для двух серверов можно и однострочный шельник написать.
    Ответ написан
    Комментировать
  • Как добавлять пользователей, чтобы было удобно переносить файлы между серверами?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Штатно - никак. Файлы копируются с правами процесса, и пользователь не может создать файл таким образом, чтобы владелец/группа были другими. Единственное, что root может поменять через chown.

    Если же вы расшарите через NFS, или перенесете диск - в файлах хранятся не имена юзеров и груп а их UID/GID - в этом случае можно на разных компах сделать совпадение юзеров по ID.

    Удобно - создать группу, единую на всех серверах, и добавить в нее всех нужных юзеров.
    Ответ написан
    Комментировать