.
This commit is contained in:
parent
0a1dbb5971
commit
6638cda6fb
@ -69,3 +69,69 @@ def user(name, host, password):
|
||||
ret["changes"].update({"Created user": f"{name}@{host}"})
|
||||
ret["result"]=True
|
||||
return ret
|
||||
|
||||
def database(name, users=[]):
|
||||
"""
|
||||
Creates database
|
||||
|
||||
name
|
||||
name of the database
|
||||
users
|
||||
list of user dict
|
||||
name: username@localhost
|
||||
grant: [ALL]
|
||||
|
||||
or
|
||||
name: user2@%
|
||||
grant: [CREATE, DELETE, DROP]
|
||||
"""
|
||||
ret = {
|
||||
"name": name,
|
||||
"changes": {},
|
||||
"result": False,
|
||||
"comment": ""
|
||||
}
|
||||
#check if db exists
|
||||
result = __salt__["mysql.execute"]("root", __pillar__['mysql']['root_password'],f'USE {name};')
|
||||
if not result["result"]:
|
||||
result = __salt__["mysql.execute"]("root", __pillar__['mysql']['root_password'],f'CREATE DATABASE {name};')
|
||||
if not result["result"]:
|
||||
ret["comment"] = result["err"]
|
||||
return ret
|
||||
ret["changes"].update({"Database created": name})
|
||||
|
||||
for user in users:
|
||||
result = __salt__["mysql.execute"]("root", __pillar__['mysql']['root_password'],f'SHOW GRANTS FOR {user};')
|
||||
if not result["result"]:
|
||||
ret["comment"] = result["err"]
|
||||
return ret
|
||||
have_grants = False
|
||||
for row in result["out"].decode("utf-8").split("\n"):
|
||||
if f" `{name}`.* " in row:
|
||||
have_grants = True
|
||||
break
|
||||
if not have_grants:
|
||||
result = __salt__["mysql.execute"]("root", __pillar__['mysql']['root_password'],f'GRANT ALL PRIVILEGES ON {name}.* to {user};')
|
||||
if not result["result"]:
|
||||
ret["comment"] = result["err"]
|
||||
return ret
|
||||
ret["changes"].update({user: "grantad ALL privileges"})
|
||||
|
||||
if len(ret["changes"]):
|
||||
ret["comment"] = "Changed"
|
||||
else:
|
||||
ret["comment"] = "Database is in desired state"
|
||||
|
||||
ret["result"] = True
|
||||
return ret
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
ret["comment"] = "Database exists"
|
||||
ret["result"] = True
|
||||
return ret
|
||||
|
||||
|
||||
|
||||
|
@ -1,2 +1,10 @@
|
||||
rmt:
|
||||
ca_passphrase: linux
|
||||
db_password: linux
|
||||
scc:
|
||||
username:
|
||||
password:
|
||||
stopped_services:
|
||||
- rmt-server-mirror.timer
|
||||
- rmt-server-sync.timer
|
||||
- rmt-server-systems-scc-sync.timer
|
||||
|
32
salt/states/rmt/files/rmt.conf.jinja
Normal file
32
salt/states/rmt/files/rmt.conf.jinja
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
database:
|
||||
host: localhost
|
||||
database: rmt
|
||||
username: rmt
|
||||
password: {{ pillar['rmt']['db_password'] }}
|
||||
adapter: mysql2
|
||||
encoding: utf8
|
||||
timeout: 5000
|
||||
pool: 5
|
||||
scc:
|
||||
username: {{ pillar['rmt']['scc']['username'] }}
|
||||
password: {{ pillar['rmt']['scc']['password'] }}
|
||||
sync_systems: true
|
||||
mirroring:
|
||||
mirror_src: false
|
||||
verify_rpm_checksums: false
|
||||
dedup_method: hardlink
|
||||
http_client:
|
||||
verbose: false
|
||||
proxy:
|
||||
proxy_auth:
|
||||
proxy_user:
|
||||
proxy_password:
|
||||
low_speed_limit: 512
|
||||
low_speed_time: 120
|
||||
log_level:
|
||||
rails: info
|
||||
web_server:
|
||||
min_threads: 5
|
||||
max_threads: 5
|
||||
workers: 2
|
@ -9,4 +9,34 @@ Create rmt MariaDB user:
|
||||
mysql.user:
|
||||
- name: rmt
|
||||
- host: localhost
|
||||
- password: {{ pillar['rmt']['mysql_password'] }}
|
||||
- password: {{ pillar['rmt']['db_password'] }}
|
||||
|
||||
Create rmt database:
|
||||
mysql.database:
|
||||
- name: rmt
|
||||
- users:
|
||||
- "'rmt'@'localhost'"
|
||||
|
||||
Create rmt.conf:
|
||||
file.managed:
|
||||
- name: /etc/rmt.conf
|
||||
- source: salt://rmt/files/rmt.conf.jinja
|
||||
- template: jinja
|
||||
- user: _rmt
|
||||
- group: root
|
||||
- mode: "0640"
|
||||
|
||||
Start rmt-server:
|
||||
service.running:
|
||||
- name: rmt-server
|
||||
- enable: True
|
||||
- watch:
|
||||
- file: Create rmt.conf
|
||||
|
||||
{% for service in pillar['rmt']['stopped_services'] -%}
|
||||
Stopp {{ service }}:
|
||||
service.dead:
|
||||
- name: {{ service }}
|
||||
- enable: False
|
||||
{% endfor %}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user