Wpis z mikrobloga

@mmichal: @mmichal:
w hosts mam tylko:

[test-srv]
192.168.1.233

[all:children]
test-srv

[all:vars]
ansibleconnection=ssh
ansible
sshuser=pi
ansible
sshpass=raspberry

w ansible.cfg
host
key_checking = false
pipelining = True

nie ma problemu jak wszystko robie na root to caly skrypt przejdzie az do postawienia gunicorna i nginxa

jak chce juz zrobic bezpieczniej to nic nie trybi ;/
@mmichal: chce zeby to user odpalil. Czyli normalnie zrobilbym tak
Sufo su - hello
Jestem jako hello
Virtualenv .

Sprawfzam ls- lash i jest jako hello i dziala.

W ansiblu dziala wsio jako root jak juz walcze z becomeuser tocsie wysypuje
przetestowalem oba rozwiazania z ansiblebecome: true i false nic nie trybi.


@Strzalka: Właśnie chodziło mi o to byś nie używał zmiennych ansible_become*. Nigdzie. Ani w host_vars, ani w group_vars, ani nigdzie. Nie używaj bo nadpisują to co sobie ustawiasz w roli, czy site.yml więc używaj tylko w roli lub site.yml. Rola ma wyższy priorytet niż site.yml
@Strzalka: patrz:

---

- name: test user
hosts: rasberypi

tasks:

- name: test shell
shell: whoami
become: true
become_user: zabbix
register: foo

- debug: var=foo

ansible-playbook test.yml

PLAY [test user] *******************************************************************************************

TASK [Gathering Facts] *************************************************************************************
ok: [rasberypi]

TASK [test shell] ******************************************************************************************
changed: [rasberypi]

TASK [debug] ***********************************************************************************************
ok: [rasberypi] => {
"foo": {
"changed": true,
"cmd": "whoami",
"delta": "0:00:00.005249",
"end": "2018-04-25 22:06:43.107613",
"failed": false,
"rc": 0,
"start": "2018-04-25 22:06:43.102364",
"stderr": "",
"stderr_lines":
@Strzalka:

Po kolei. Jeśli chcesz aby Ansible się łączył przez ssh z usera "hello" to **remoteuser: hello

Jeśli jednak chcesz aby ansible łączył się przez ssh userem
pi to remote
user: pi. Jednak wtedy aby playbook był wykonywany z konta usera hello** to musisz powiedzieć ansiblowi, aby tak zrobił (tu detale: https://docs.ansible.com/ansible/latest/user_guide/become.html). Czyli w twoim przypadku:

remote_user: hello
become: yes
become_method: sudo
become_user: hello

Oczywiście upewniając się, że user
@mmichal: @maniac777: @Maciek-z-Krakowa: ok Panowie blad banalny... wczoraj od 17 walczylem eh...

Otóż myslalem ze jak zrobie:
- name: Create virtualenv
become: true
becomeuser: hello
shell: virtualenv .

to wszystko sie wykona w homedirectory (/var/www/) uzytkownika ale niestety nie

trzeba zrobic to tak:
- name: Create virtualenv
become: true
become
user: hello
shell: cd /var/www/ && virtualenv .

Teraz juz dziala wystarczy ze dokoncze playbooka z nginxem i
@Strzalka: Polecam używanie pełnych ścieżek bez żadnego "cd", w Twoim wypadku shell: /var/www/virtualenv /var/www/. Po drugie -vvvvv daje wiele informacji na temat tego co się dzieje i dlaczego.