Size: a a a

DevOps — русскоговорящее сообщество

2021 March 24

AK

Andrey Kartashov in DevOps — русскоговорящее сообщество
Докер это привилегированная команда, логично её через судо разрешать
источник

DL

Dmitry Lebedev in DevOps — русскоговорящее сообщество
Всем привет. Кто-то сталкивался с задачей создания аудита файлов в Linux системах для просмотра действий привилегированных аккаунтов (админов)? Как решали?
источник

D

Dave in DevOps — русскоговорящее сообщество
Alexey Nakhimov
Привет!
Не подскажите, как решить вот такой кейс с Ансиблом:

1. Добавляем текущего юзера Ансибл в группу docker:
- name: Add current user to docker group
 become: yes
 ansible.builtin.user:
   name: "{{ ansible_user }}"
   groups: docker
   append: yes

2. Удостоверяемся, что сервис docker работает:
- name: Start service docker, if not started
 become: yes
 ansible.builtin.service:
   name: docker
   state: started

3. А теперь, если мы попробуем обратиться к демону docker, например, вот так:
- name: test
 raw: docker ps

то мы поймаем ошибку Permission denied!

4. Проверим, в каких группах у нас находится пользователь:
- name: View user groups
 raw: groups

и увидим кучу групп, но нет группы docker!

Если зайти по SSH под именем этого пользователя, то все без проблем - пользователь находится в группе docker, обращения к демону - без проблем. Но Ансибл упорно не хочет этого видеть!

Пробовал после добавления пользователя в группу docker воткнуть такую таску:
- name: Reset ssh connection
 meta: reset_connection

но это не помогло….

Можно хоть 100 раз запускать плейбук - результат одинаковый.
Перезагружаем виртуалку - и все отлично! Теперь Ансибл показывает, что пользователь есть в группе docker и без проблем общается с демоном.

Можно ли это как-то решить без перезагрузки виртуалки? А то такая себе автоматизация получается….. (((
newgrp
источник

AN

Alexey Nakhimov in DevOps — русскоговорящее сообщество
Andrey Kartashov
Докер это привилегированная команда, логично её через судо разрешать
хорошо, а мне надо под не рутом добавить вход в мой реджистри:
- name: Log into docker registry and force re-authorization
 community.docker.docker_login:
   registry_url: УРЛА
   username: ИМЯ
   password: ПАРОЛЬ
   state: present
   debug: yes

как быть?
источник

M

Maksat in DevOps — русскоговорящее сообщество
всем привет. Как в docker-compose 3 установить timezone?
env "TZ=Europe/Istanbul" не помог
источник

AK

Andrey Kartashov in DevOps — русскоговорящее сообщество
Alexey Nakhimov
хорошо, а мне надо под не рутом добавить вход в мой реджистри:
- name: Log into docker registry and force re-authorization
 community.docker.docker_login:
   registry_url: УРЛА
   username: ИМЯ
   password: ПАРОЛЬ
   state: present
   debug: yes

как быть?
Выше newgrp посоветовали, по идее должно сработать
источник

AN

Alexey Nakhimov in DevOps — русскоговорящее сообщество
Andrey Kartashov
Выше newgrp посоветовали, по идее должно сработать
эээээ, не вижу…..
источник

AK

Andrey Kartashov in DevOps — русскоговорящее сообщество
Ну и ещё вариант, менять права на сокет докера временно
источник

AK

Andrey Kartashov in DevOps — русскоговорящее сообщество
И погуглить можно, проблема распространенная
источник

AN

Alexey Nakhimov in DevOps — русскоговорящее сообщество
Andrey Kartashov
И погуглить можно, проблема распространенная
Ну вот я сегодня обгуглился.... Про мета из гугла взял - не сработало. Про сокет видел - меняют на 666, но мне как-то не понравился этот вариант....
источник

VA

Vasiliy Angapov in DevOps — русскоговорящее сообщество
делай  - meta: reset_connection. Это обновит соединение и подхватится изменение в членстве в группах
источник

VA

Vasiliy Angapov in DevOps — русскоговорящее сообщество
там проблема в том, что ты включаешь юзера в группу, но это не влияет на текущую сессию. Надо либо делать newgrp, либо просто перелогиниться
источник

AN

Alexey Nakhimov in DevOps — русскоговорящее сообщество
Vasiliy Angapov
делай  - meta: reset_connection. Это обновит соединение и подхватится изменение в членстве в группах
В первоначальном вопросе я говорил, что юзал мета и это не помогло.
Просто значит разобью на два плейбука и вызову второй внутри первого
источник

AN

Alexey Nakhimov in DevOps — русскоговорящее сообщество
Или два отдельно. Как получится
источник

VA

Vasiliy Angapov in DevOps — русскоговорящее сообщество
а если сделать newgrp docker?
источник

AN

Alexey Nakhimov in DevOps — русскоговорящее сообщество
Vasiliy Angapov
а если сделать newgrp docker?
А как это правильно сделать в Ансибле? Через модуль shell или raw?
источник

VA

Vasiliy Angapov in DevOps — русскоговорящее сообщество
через shell можно
источник

VA

Vasiliy Angapov in DevOps — русскоговорящее сообщество
raw лучше не юзать ни для чего кроме установки питона
источник

VC

Vladimir Chernyshev in DevOps — русскоговорящее сообщество
Alexey Nakhimov
Привет!
Не подскажите, как решить вот такой кейс с Ансиблом:

1. Добавляем текущего юзера Ансибл в группу docker:
- name: Add current user to docker group
 become: yes
 ansible.builtin.user:
   name: "{{ ansible_user }}"
   groups: docker
   append: yes

2. Удостоверяемся, что сервис docker работает:
- name: Start service docker, if not started
 become: yes
 ansible.builtin.service:
   name: docker
   state: started

3. А теперь, если мы попробуем обратиться к демону docker, например, вот так:
- name: test
 raw: docker ps

то мы поймаем ошибку Permission denied!

4. Проверим, в каких группах у нас находится пользователь:
- name: View user groups
 raw: groups

и увидим кучу групп, но нет группы docker!

Если зайти по SSH под именем этого пользователя, то все без проблем - пользователь находится в группе docker, обращения к демону - без проблем. Но Ансибл упорно не хочет этого видеть!

Пробовал после добавления пользователя в группу docker воткнуть такую таску:
- name: Reset ssh connection
 meta: reset_connection

но это не помогло….

Можно хоть 100 раз запускать плейбук - результат одинаковый.
Перезагружаем виртуалку - и все отлично! Теперь Ансибл показывает, что пользователь есть в группе docker и без проблем общается с демоном.

Можно ли это как-то решить без перезагрузки виртуалки? А то такая себе автоматизация получается….. (((
newgrp docker уже советовали?
источник

VA

Vasiliy Angapov in DevOps — русскоговорящее сообщество
Dmitry Lebedev
Всем привет. Кто-то сталкивался с задачей создания аудита файлов в Linux системах для просмотра действий привилегированных аккаунтов (админов)? Как решали?
я юзал Falco, удобная тулза, мониторит системные вызовы и имеет много предустановленных правил. Шлет алерты в случае найденных нарушенй
источник