@pro_ansible

Страница 541 из 625
Constantin
09.08.2018
07:56:06
Уберите от экрана беременных детей и впечатлительных животных https://github.com/subuk/awx-rpm/blob/master/awx-channels-worker.service
Не все опытные писатели Systemd юнитов. Если не затруднит, объяните таким как я, что тут не так, чтобы не писать в будущем так, что беременных детей и впечатлительных животных будет выворачивать наружу?

Sergey
09.08.2018
07:56:16
Vadim
09.08.2018
07:57:16
для начала - https://github.com/subuk/awx-rpm/blob/master/awx-build.spec#L161 - эти дебиановские привычки сразу запускать сервис после установки нужно остановить на входе

Google
Vadim
09.08.2018
07:58:28
второе что сразу бросилось в глаза - https://github.com/subuk/awx-rpm/blob/master/awx-celery-beat.service - питон в /opt не надо совать, selinux будет орать

ну и всякие мелочи типа версия задается дважды - в Version и Source0

Vadim
09.08.2018
08:00:13
А можно же контексты SELinux проставить просто?....
можно, можно и селинукс отключить конечно

Sergey
09.08.2018
08:00:27
ну нееееее, это моветон

Vadim
09.08.2018
08:00:44
это то же самое что "запускать незнамо что из /opt"

Sergey
09.08.2018
08:02:24
Эмммм. А почему же "незнамо что"? У тебя на билд-машине есть питон, из него ваяешь venv, потом этот venv запускаешь где-то ещё. Что здесь не так? По определению RPM-пакет предусматривает определённый уровень доверия содержимому, разве нет?

Vadim
09.08.2018
08:14:23
>RPM-пакет предусматривает определённый уровень доверия эмммм, нет? Это просто tar.gz + скрипты которые выполняются от рута

Vadim
09.08.2018
08:43:52
вы там наверху оба SRPM себе на машину ставите?

Google
Sergey
09.08.2018
08:45:16
вы там наверху оба SRPM себе на машину ставите?
Лично у меня внутренняя yum-репа (CentOS), туда бинарные пакеты, собранные из исходников, кладутся.

Maxim
09.08.2018
09:05:04
привет всем. подскажите, а как-то можно заюзать переменную в when, чтобы варнинг ниже не появлялся? [WARNING]: when statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: links.stat.path != '/some/path/{{name}}|string')

Dovnar
09.08.2018
09:07:52
Убрать {{}} :)

Maxim
09.08.2018
09:08:20
а че, так можно было ?

Dovnar
09.08.2018
09:08:44
'.../path/' + name

Maxim
09.08.2018
09:09:14
а, понял

Sergey
09.08.2018
09:10:05
'.../path/' + name
'<string>' ~(тильда) name

Dovnar
09.08.2018
09:10:59
Это уже скорей вопрос личных предпочтений:)

Terminator
09.08.2018
09:12:34
@sergey12323 будет жить. Поприветствуем!

Maxim
09.08.2018
09:14:45
всем спасибо! заработало )

Евгений
09.08.2018
09:49:00
Добрый день. Нужно настроить хосты по ролям, 1 сервер и куча клиентов. Клиенты на стороне сервера настраиваются индивидуальными файлами. Инвентори с группами: клиены, сервер. Плейбук по клиентам - копирует по шаблонам с переменными файлы конфикурации на клиентов. Не понятно, как сделать цикл по клиентам для роли сервера. В одном плее можно сделать цикл по группе клиентов, сделать set_fact и вызвать с этими переменными template ? Или еще думал в плейбуке для клиентов делать delegate_to и в нем уже template. Есть идеи как лучше подойти к решению?
Нашел интересное решение своей задачи с циклами. В цикле можно вызывать include и уже внутри другого плейбука использовать эту переменную. test.yml --- - name: Get facts gather_facts: yes hosts: all - hosts: only_one_server tasks: - include: testtest.yml with_items: "{{ groups['clients'] }}" testtest.yml --- - name: SetFact set_fact: ip: hostvars['{{item}}']['ansible_default_ipv4']['address'] - name: DebugIP debug: var={{ip}} # И эту же переменную в template

Zlokot
09.08.2018
09:58:27
камрады, а как правильно запустить ансибл плейбук на только что созданной виртуалке? там ниче нет, ни апдейтов, ни самого ансибла.. есть только юзер-пасс и ip

как это обычно делается?

Fedor
09.08.2018
09:59:02
напрямую запускается

через адхок команды

Zlokot
09.08.2018
09:59:17
да, мне удаленно надо

Fedor
09.08.2018
09:59:19
хотя не, плейбук же

прописывается хост в инвентори

ansible-playbook -i inventory playbook.yml

если просто команды

Google
Fedor
09.08.2018
10:00:20
ANSIBLE_HOST_KEY_CHECKING=False ansible --private-key=terraform -i inv all -b -m group -a "name=ansible_wheel state=present" типа такого

это без плейбуков

Fedor
09.08.2018
10:01:19
первое - чтоб не ругался на неизвестный хост, у меня авторизация по прайваткей, -b это поднятие в судо, -m модуль, потом аргументы к нему

Zlokot
09.08.2018
10:01:35
да надо новую ВМ готовить - заливать софт, заливать композ файл с нужными плейсхолдерами настроенными.. думаю это задача для плейбука но его надо както заранать

Fedor
09.08.2018
10:01:48
за что?)

а, run

Zlokot
09.08.2018
10:01:59
run )

Fedor
09.08.2018
10:02:14
ну ansible-playbook -i invfile play.yml

если есть только роль, но нет плейбука, берётся любой плейбук с hosts и roles и адаптируется

Zlokot
09.08.2018
10:03:00
понял... но для этого похоже надо иметь отдельную linux тачку с "серверной" частью ансибла. или как там она называется а у меня только vsts

впрочеv там есть вроде плагин для ансибла

Fedor
09.08.2018
10:04:36
любую юниксовую

Banschikov
09.08.2018
10:08:18
да надо новую ВМ готовить - заливать софт, заливать композ файл с нужными плейсхолдерами настроенными.. думаю это задача для плейбука но его надо както заранать
Если правильно тебя понял. Ну у к примере если у тебя centos , то запускай плейбук, так как python.2.7 там предустановлен, а плейбуке ты апдейтишь, апргейдишь и т.д. Если вопрос откуда запускать, то я обычно это делаю со своей лоальной тачки

Michail
09.08.2018
11:25:58
ребят, как сделать что бы nvm устанавливался в папку пользователя от которого запускается плейбук? плейбук запускается с sudo, и установка по видимому идет в рут директорию..

Maksim
09.08.2018
11:26:34
что за nvm ?

может mvn ?

ааа, типа несколько версий нода ?

Michail
09.08.2018
11:28:18
угу

node version manager

Google
Michail
09.08.2018
11:28:52
без судо не запускается плейбук, а с судо инсталит в папку рут

Maksim
09.08.2018
11:29:14
ну так укажи для nvm полный путь

а как ты его устанавливаешь тО?

Michail
09.08.2018
11:30:20
сек

- name: Install nvm shell: > curl https://raw.githubusercontent.com/creationix/nvm/v0.7.0/install.sh | sh creates=/home/{{ ansible_user_id }}/.nvm/nvm.sh - name: Install node and set version shell: > /bin/bash -c "source ~/.nvm/nvm.sh && nvm install 0.10 && nvm alias default 0.10" creates=/home/{{ ansible_user_id }}/.nvm/alias

Maksim
09.08.2018
11:32:04
дык эта, минутку

Admin
ERROR: S client not available

Michail
09.08.2018
11:33:46
:)

Sergey
09.08.2018
11:34:15
кстати, как и вытягивание баш-скриптов курлом и их запуск

Michail
09.08.2018
11:35:38
а есть другое решение?)

Michail
09.08.2018
11:37:35
а сам плейбук через sudo?

Maksim
09.08.2018
11:37:42
- name: Install nvm shell: {{item.command}} args: chdir: /home/{{ ansible_user_id }} creates: {{item.creates}} with_items: - {command: "curl https://raw.githubusercontent.com/creationix/nvm/v0.7.0/install.sh | sh", creates: "/home/{{ ansible_user_id }}/.nvm/nvm.sh"} - {command: '/bin/bash -c "source ~/.nvm/nvm.sh && nvm install 0.10 && nvm alias default 0.10"', creates: "/home/{{ ansible_user_id }}/.nvm/alias"}

Michail
09.08.2018
11:37:54
тогда пойдет установка в папку пользователя?

Maksim
09.08.2018
11:37:54
вообще через chdir

Michail
09.08.2018
11:38:28
спасибо я попробую

Vadim
09.08.2018
11:38:28
а сам плейбук через sudo?
я так понимаю у тебя ansible_user: foo ansible_become: true ?

тогда become: false скинет обратно на юзера, к которому коннектишься

Michail
09.08.2018
11:40:13
ну типа того да,вот смотрите, есть пользователь appuser, мне нужно всю эту хрень установить ему в папку /home/appuser, но идет все руту в папку... при этом я запускаю так sudo play.yml

Google
Maksim
09.08.2018
11:40:30
на код хрен ты делаешь судо ?

Michail
09.08.2018
11:41:00
так без судо фейлится на первом же таске

Maksim
09.08.2018
11:41:06
- name: Install nvm shell: > {{item.command}} args: chdir: /home/{{ ansible_user_id }} creates: {{item.creates}} with_items: - {command: "curl https://raw.githubusercontent.com/creationix/nvm/v0.7.0/install.sh | sh", creates: "/home/{{ ansible_user_id }}/.nvm/nvm.sh"} - {command: '/bin/bash -c "source ~/.nvm/nvm.sh && nvm install 0.10 && nvm alias default 0.10"', creates: "/home/{{ ansible_user_id }}/.nvm/alias"} become: true become_user: {{ ansible_user_id }}

последние две строки смотри

Michail
09.08.2018
11:42:03
ansible_user_id - это будет appuser?

Maksim
09.08.2018
11:42:11
в твоём случае да

вообще не понимаю почему утебя роль не отрабатывает, не надо её запускать через sudo

что за дичь ?

Michail
09.08.2018
11:44:23
хороший вопрос

я же не из под рута запускаю плейбук

bebebe
09.08.2018
11:50:57
у вас волчанка

Michail
09.08.2018
11:58:00
become_user: {{ ansible_user_id }}

сюда матерится

Страница 541 из 625