Portál AbcLinuxu, 21. prosince 2025 02:29
- name: Create icinga PG user
postgresql_user:
name: icinga
password: "{{ pg_icinga_pass }}"
priv: "public:SELECT"
state: present
Chci vytvořit uživatele jehož práva jsou analogická k těmto sql příkazům:
CREATE ROLE icinga WITH LOGIN ENCRYPTED PASSWORD 'SuperTajnéHeslo'; GRANT SELECT ON ALL TABLES IN SCHEMA public TO icinga;Ovšem modul mi pořád křičí takto: FAILED! => {"changed": false, "failed": true, "msg": "privileges require a database to be specified"} Co mi uniká?
Řešení dotazu:
GRANT SELECT ON ALL TABLES IN SCHEMA public TO icinga; přidělí práva na schéma public v databázi, ve které jsi přihlášený, ne nějaká globální. Bez specifikované databáze to nedává smysl.
- name: Create DB user
sudo: yes
sudo_user: postgres
postgresql_user: name=dbuser password={{ pass }} role_attr_flags=NOCREATEDB,NOSUPERUSER state=present
- name: Create icinga user at {{ pgmaster }}
become: yes
become_user: postgres
postgresql_user:
name: icinga
password: "{{ pg_icinga_pass.stdout }}"
role_attr_flags: "NOCREATEDB,NOSUPERUSER"
state: present
Takhle mi to zafungovalo a vytvořilo uživatele s potřebnými právy. Podotýkám že pro funkci modulu postgresql_user pod uživatelem postgres jsou zapotřebí balíčky libpq-dev, python-psycopg2 a acl
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.