Skip to content

Commit 6238ac9

Browse files
committed
This addresses #38
This change will make it possible to break out the passwords to an external file that can be easily encrypted, and is broken up into a GI part & a DB part. GI: - default_gipass: This will be the default password if either of the 2 following are not defined - sysasmpassword: Password for the sysasm user - asmmonitorpassword: Password for the asmsnmp account DB: - default_dbpass: This will be the default/fallback password if DB specific passwords are not defined The following is the password lookup-structure that can be defined per database: dbpasswords: db1: <- This defines the passwords for the db1 database. If omitted all passwords falls back to default_dbpass sys: Oracle_456 system: Oracle_456 dbsnmp: Oracle_456 pdbadmin: Oracle_456 db2: <- This defines the passwords for the db2 database. If omitted all passwords falls back to default_dbpass sys: Oracle_789 system: Oracle_789 dbsnmp: Oracle_789 pdbadmin: Oracle_789 As an interim solution to provide some backwards compatibility, the default passwords: default_dbpass & default_gipass, will look for the passwords in the old structure and use that (if they are defined). default_gipass: "{% if oracle_password is defined %}{{ oracle_password }}{% else %}Oracle123{% endif%}" sysasmpassword: "{% if oracle_password is defined %}{{ oracle_password }}{% else %}Oracle123{% endif%}" asmmonitorpassword: "{% if oracle_password is defined %}{{ oracle_password }}{% else %}Oracle123{% endif%}" default_dbpass: "{% if item.0.oracle_db_passwd is defined %}{{ item.0.oracle_db_passwd}}{% else %}Oracle123{% endif%}" However, as this is only set in the defaults/main.yml, the are overridden as soon as the new structure is used. This check will also be removed at a later stage.
1 parent 9b6443d commit 6238ac9

18 files changed

+165
-60
lines changed

roles/oradb-create/defaults/main.yml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,27 @@
3737
listener_port: 1521
3838
autostartup_service: false
3939

40+
# Everything between the lines START-OF-PASSWORDS & END-OF-PASSWORDS can be
41+
# put in an external passwords.yml file and be encrypted by Vault.
42+
# The file should be put in 'group_vars/<your-config>/passwords.yml'
43+
# This example will be broken out to a passwords.yml as soon as is allowed in ansible
44+
45+
## START-OF-PASSWORDS
46+
# GI
47+
default_gipass: "{% if oracle_password is defined %}{{ oracle_password }}{% else %}Oracle123{% endif%}" # The check for the old passwords are there for backwards compatibility and only temporary, will be removed
48+
sysasmpassword: "{% if oracle_password is defined %}{{ oracle_password }}{% else %}Oracle123{% endif%}" # The check for the old passwords are there for backwards compatibility and only temporary, will be removed
49+
asmmonitorpassword: "{% if oracle_password is defined %}{{ oracle_password }}{% else %}Oracle123{% endif%}" # The check for the old passwords are there for backwards compatibility and only temporary, will be removed
50+
# DB
51+
default_dbpass: "{% if item.0.oracle_db_passwd is defined %}{{ item.0.oracle_db_passwd}}{% else %}Oracle123{% endif%}" # The check for the old passwords are there for backwards compatibility and only temporary, will be removed
52+
dbpasswords:
53+
orcl:
54+
sys: Oracle_456
55+
system: Oracle_456
56+
dbsnmp: Oracle_456
57+
pdbadmin: Oracle_456
58+
59+
## END-OF-PASSWORDS
60+
4061
dbca_templatename: General_Purpose.dbc
4162
dbca_initParams: "{% if '12.2' in item.0.oracle_version_db %} -initParams db_name={{item.0.oracle_db_name}}{% if item.0.oracle_db_unique_name is defined %},db_unique_name={{item.0.oracle_db_unique_name}}{% endif %}{% endif %}"
4263

@@ -46,7 +67,6 @@
4667
oracle_version_db: 12.2.0.1 # Oracle versiono
4768
oracle_edition: EE # The edition of database-server (EE,SE,SEONE)
4869
oracle_db_name: orcl # Database name
49-
oracle_db_passwd: Oracle123 # Passwords (sys/system/dbsnm etc)
5070
oracle_db_type: SI # Type of database (RAC,RACONENODE,SI)
5171
is_container: False # (true/false) Is the database a container database
5272
pdb_prefix: pdb

roles/oradb-create/tasks/main.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
template: src={{ item.0.dbca_templatename }} dest={{ oracle_home_db }}/assistants/dbca/templates/{{ item.0.dbca_templatename }} owner={{ oracle_user }} group={{ oracle_group }} mode=640
2222
with_together:
2323
- "{{oracle_databases}}"
24-
when: item.0.dbca_templatename is defined and item.0.dbca_templatename not in('New_Database.dbt','General_Purpose.dbc','New_Database.dbt')
24+
when: item.0.dbca_templatename is defined and item.0.dbca_templatename not in('New_Database.dbt','General_Purpose.dbc')
2525
tags:
2626
- customdbcatemplate
2727

@@ -35,6 +35,11 @@
3535
tags:
3636
- dbcaresponse
3737

38+
# - debug: var="{{ oracle_home_db }}/bin/dbca -createDatabase -responseFile {{ oracle_rsp_stage }}/{{ oracle_dbca_rsp }} -silent -redoLogFileSize {{ item.0.redolog_size_in_mb }} {{ dbca_initParams }}"
39+
# with_together:
40+
# - "{{oracle_databases}}"
41+
# - "{{checkdbexist.results}}"
42+
#
3843
- name: Create database(s)
3944
shell: "time {{ oracle_home_db }}/bin/dbca -createDatabase -responseFile {{ oracle_rsp_stage }}/{{ oracle_dbca_rsp }} -silent -redoLogFileSize {{ item.0.redolog_size_in_mb }} {{ dbca_initParams }}"
4045
with_together:
@@ -59,6 +64,7 @@
5964
shell: ps -ef | grep -w "ora_pmon_{{ item.oracle_db_name }}" |grep -v grep | sed 's/^.*pmon_//g'
6065
with_items: "{{oracle_databases}}"
6166
register: dbs
67+
changed_when: False
6268
tags:
6369
- dotprofile_db
6470
- update_oratab

roles/oradb-create/templates/dbca-create-db.rsp.11.2.0.3.j2

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,11 @@ TEMPLATENAME = "{{dbca_templatename}}"
228228
# Default value : None
229229
# Mandatory : Yes
230230
#-----------------------------------------------------------------------------
231-
SYSPASSWORD = "{{ item.0.oracle_db_passwd }}"
232-
231+
{% if dbpasswords is defined and dbpasswords[item.0.oracle_db_name] is defined and dbpasswords[item.0.oracle_db_name]['sys'] is defined%}
232+
SYSPASSWORD = "{{dbpasswords[item.0.oracle_db_name]['sys']}}"
233+
{% else %}
234+
SYSPASSWORD = "{{default_dbpass }}"
235+
{% endif %}
233236
#-----------------------------------------------------------------------------
234237
# Name : SYSTEMPASSWORD
235238
# Datatype : String
@@ -238,7 +241,11 @@ SYSPASSWORD = "{{ item.0.oracle_db_passwd }}"
238241
# Default value : None
239242
# Mandatory : Yes
240243
#-----------------------------------------------------------------------------
241-
SYSTEMPASSWORD = "{{ item.0.oracle_db_passwd }}"
244+
{% if dbpasswords is defined and dbpasswords[item.0.oracle_db_name] is defined and dbpasswords[item.0.oracle_db_name]['system'] is defined %}
245+
SYSTEMPASSWORD = "{{dbpasswords[item.0.oracle_db_name]['system']}}"
246+
{% else %}
247+
SYSTEMPASSWORD = "{{default_dbpass }}"
248+
{% endif %}
242249

243250
#-----------------------------------------------------------------------------
244251
# Name : EMCONFIGURATION
@@ -279,7 +286,11 @@ EMCONFIGURATION = "NONE"
279286
# Default value : None
280287
# Mandatory : Yes, if EMCONFIGURATION is specified
281288
#-----------------------------------------------------------------------------
282-
DBSNMPPASSWORD = "{{ item.0.oracle_db_passwd }}"
289+
{% if dbpasswords is defined and dbpasswords[item.0.oracle_db_name] is defined and dbpasswords[item.0.oracle_db_name]['dbsnmp'] is defined %}
290+
DBSNMPPASSWORD = "{{dbpasswords[item.0.oracle_db_name]['dbsnmp']}}"
291+
{% else %}
292+
DBSNMPPASSWORD = "{{default_dbpass }}"
293+
{% endif %}
283294

284295
#-----------------------------------------------------------------------------
285296
# Name : CENTRALAGENT

roles/oradb-create/templates/dbca-create-db.rsp.11.2.0.4.j2

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,11 @@ TEMPLATENAME = "{{dbca_templatename}}"
230230
# Default value : None
231231
# Mandatory : Yes
232232
#-----------------------------------------------------------------------------
233-
SYSPASSWORD = "{{ item.0.oracle_db_passwd }}"
234-
233+
{% if dbpasswords is defined and dbpasswords[item.0.oracle_db_name] is defined and dbpasswords[item.0.oracle_db_name]['sys'] is defined%}
234+
SYSPASSWORD = "{{dbpasswords[item.0.oracle_db_name]['sys']}}"
235+
{% else %}
236+
SYSPASSWORD = "{{default_dbpass }}"
237+
{% endif %}
235238
#-----------------------------------------------------------------------------
236239
# Name : SYSTEMPASSWORD
237240
# Datatype : String
@@ -240,7 +243,11 @@ SYSPASSWORD = "{{ item.0.oracle_db_passwd }}"
240243
# Default value : None
241244
# Mandatory : Yes
242245
#-----------------------------------------------------------------------------
243-
SYSTEMPASSWORD = "{{ item.0.oracle_db_passwd }}"
246+
{% if dbpasswords is defined and dbpasswords[item.0.oracle_db_name] is defined and dbpasswords[item.0.oracle_db_name]['system'] is defined %}
247+
SYSTEMPASSWORD = "{{dbpasswords[item.0.oracle_db_name]['system']}}"
248+
{% else %}
249+
SYSTEMPASSWORD = "{{default_dbpass }}"
250+
{% endif %}
244251

245252
#-----------------------------------------------------------------------------
246253
# Name : EMCONFIGURATION
@@ -281,8 +288,11 @@ EMCONFIGURATION = "NONE"
281288
# Default value : None
282289
# Mandatory : Yes, if EMCONFIGURATION is specified
283290
#-----------------------------------------------------------------------------
284-
DBSNMPPASSWORD = "{{ item.0.oracle_db_passwd }}"
285-
291+
{% if dbpasswords is defined and dbpasswords[item.0.oracle_db_name] is defined and dbpasswords[item.0.oracle_db_name]['dbsnmp'] is defined %}
292+
DBSNMPPASSWORD = "{{dbpasswords[item.0.oracle_db_name]['dbsnmp']}}"
293+
{% else %}
294+
DBSNMPPASSWORD = "{{default_dbpass }}"
295+
{% endif %}
286296
#-----------------------------------------------------------------------------
287297
# Name : CENTRALAGENT
288298
# Datatype : String
@@ -433,7 +443,7 @@ DISKGROUPNAME={{ datafile_dest.lstrip('+') }}
433443
# Default value : None
434444
# Mandatory : No
435445
#-----------------------------------------------------------------------------
436-
ASMSNMP_PASSWORD="{{ item.0.oracle_db_passwd }}"
446+
ASMSNMP_PASSWORD={%if asmmonitorpassword is defined %}{{asmmonitorpassword}}{% else %}{{default_gipass}}{% endif %}
437447

438448
#-----------------------------------------------------------------------------
439449
# Name : RECOVERYGROUPNAME

roles/oradb-create/templates/dbca-create-db.rsp.12.1.0.1.j2

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ SID = "{{ item.0.oracle_db_name }}"
216216
# Default value : false
217217
# Mandatory : No
218218
#-----------------------------------------------------------------------------
219-
CREATEASCONTAINERDATABASE = "{{ item.0.is_container }}"
219+
CREATEASCONTAINERDATABASE = {% if item.0.is_container is defined %}{{ item.0.is_container }}{% endif %}
220220

221221
#-----------------------------------------------------------------------------
222222
# Name : NUMBEROFPDBS
@@ -226,7 +226,7 @@ CREATEASCONTAINERDATABASE = "{{ item.0.is_container }}"
226226
# Default value : 0
227227
# Mandatory : No
228228
#-----------------------------------------------------------------------------
229-
NUMBEROFPDBS = "{{ item.0.num_pdbs }}"
229+
NUMBEROFPDBS = {% if item.0.is_container and item.0.num_pdbs is defined %}{{ item.0.num_pdbs }}{%endif%}
230230

231231
#-----------------------------------------------------------------------------
232232
# Name : PDBNAME
@@ -236,7 +236,7 @@ NUMBEROFPDBS = "{{ item.0.num_pdbs }}"
236236
# Default value : None
237237
# Mandatory : No
238238
#-----------------------------------------------------------------------------
239-
PDBNAME = "{{ item.0.pdb_prefix }}"
239+
PDBNAME = {% if item.0.is_container and item.0.pdb_prefix is defined %}{{ item.0.pdb_prefix }}{%endif%}
240240

241241
#-----------------------------------------------------------------------------
242242
# Name : PDBADMINPASSWORD
@@ -246,7 +246,12 @@ PDBNAME = "{{ item.0.pdb_prefix }}"
246246
# Default value : None
247247
# Mandatory : No
248248
#-----------------------------------------------------------------------------
249-
PDBADMINPASSWORD = "{{ item.0.oracle_db_passwd }}"
249+
{% if dbpasswords is defined and dbpasswords[item.0.oracle_db_name] is defined and dbpasswords[item.0.oracle_db_name]['pdbadmin'] is defined %}
250+
PDBADMINPASSWORD = "{{dbpasswords[item.0.oracle_db_name]['pdbadmin']}}"
251+
{% else %}
252+
PDBADMINPASSWORD = "{{default_dbpass }}"
253+
{% endif %}
254+
250255

251256
#-----------------------------------------------------------------------------
252257
# Name : NODELIST
@@ -297,8 +302,11 @@ TEMPLATENAME = "{{dbca_templatename}}"
297302
# Default value : None
298303
# Mandatory : Yes
299304
#-----------------------------------------------------------------------------
300-
SYSPASSWORD = "{{ item.0.oracle_db_passwd }}"
301-
305+
{% if dbpasswords is defined and dbpasswords[item.0.oracle_db_name] is defined and dbpasswords[item.0.oracle_db_name]['sys'] is defined%}
306+
SYSPASSWORD = "{{dbpasswords[item.0.oracle_db_name]['sys']}}"
307+
{% else %}
308+
SYSPASSWORD = "{{default_dbpass }}"
309+
{% endif %}
302310
#-----------------------------------------------------------------------------
303311
# Name : SYSTEMPASSWORD
304312
# Datatype : String
@@ -307,7 +315,11 @@ SYSPASSWORD = "{{ item.0.oracle_db_passwd }}"
307315
# Default value : None
308316
# Mandatory : Yes
309317
#-----------------------------------------------------------------------------
310-
SYSTEMPASSWORD = "{{ item.0.oracle_db_passwd }}"
318+
{% if dbpasswords is defined and dbpasswords[item.0.oracle_db_name] is defined and dbpasswords[item.0.oracle_db_name]['system'] is defined %}
319+
SYSTEMPASSWORD = "{{dbpasswords[item.0.oracle_db_name]['system']}}"
320+
{% else %}
321+
SYSTEMPASSWORD = "{{default_dbpass }}"
322+
{% endif %}
311323

312324
#-----------------------------------------------------------------------------
313325
# Name : SERVICEUSERPASSWORD
@@ -361,7 +373,11 @@ EMCONFIGURATION = "NONE"
361373
# Mandatory : Yes, if EMCONFIGURATION is specified or
362374
# the value of RUNCVUCHECKS is TRUE
363375
#-----------------------------------------------------------------------------
364-
DBSNMPPASSWORD = "{{ item.0.oracle_db_passwd }}"
376+
{% if dbpasswords is defined and dbpasswords[item.0.oracle_db_name] is defined and dbpasswords[item.0.oracle_db_name]['dbsnmp'] is defined %}
377+
DBSNMPPASSWORD = "{{dbpasswords[item.0.oracle_db_name]['dbsnmp']}}"
378+
{% else %}
379+
DBSNMPPASSWORD = "{{default_dbpass }}"
380+
{% endif %}
365381

366382
#-----------------------------------------------------------------------------
367383
# Name : OMSHOST
@@ -527,7 +543,7 @@ DISKGROUPNAME={{ datafile_dest }}
527543
# Default value : None
528544
# Mandatory : No
529545
#-----------------------------------------------------------------------------
530-
ASMSNMP_PASSWORD="{{ item.0.oracle_db_passwd }}"
546+
ASMSNMP_PASSWORD={%if asmmonitorpassword is defined %}{{asmmonitorpassword}}{% else %}{{default_gipass}}{% endif %}
531547

532548
#-----------------------------------------------------------------------------
533549
# Name : RECOVERYGROUPNAME

roles/oradb-create/templates/dbca-create-db.rsp.12.1.0.2.j2

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ SID = "{{ item.0.oracle_db_name }}"
217217
# Default value : false
218218
# Mandatory : No
219219
#-----------------------------------------------------------------------------
220-
CREATEASCONTAINERDATABASE = "{{ item.0.is_container }}"
220+
CREATEASCONTAINERDATABASE = {% if item.0.is_container is defined %}{{ item.0.is_container }}{% endif %}
221221

222222
#-----------------------------------------------------------------------------
223223
# Name : NUMBEROFPDBS
@@ -227,7 +227,7 @@ CREATEASCONTAINERDATABASE = "{{ item.0.is_container }}"
227227
# Default value : 0
228228
# Mandatory : No
229229
#-----------------------------------------------------------------------------
230-
NUMBEROFPDBS = "{{ item.0.num_pdbs }}"
230+
NUMBEROFPDBS = {% if item.0.is_container and item.0.num_pdbs is defined %}{{ item.0.num_pdbs }}{%endif%}
231231

232232
#-----------------------------------------------------------------------------
233233
# Name : PDBNAME
@@ -237,7 +237,7 @@ NUMBEROFPDBS = "{{ item.0.num_pdbs }}"
237237
# Default value : None
238238
# Mandatory : No
239239
#-----------------------------------------------------------------------------
240-
PDBNAME = "{{ item.0.pdb_prefix }}"
240+
PDBNAME = {% if item.0.is_container and item.0.pdb_prefix is defined %}{{ item.0.pdb_prefix }}{%endif%}
241241

242242
#-----------------------------------------------------------------------------
243243
# Name : PDBADMINPASSWORD
@@ -247,7 +247,11 @@ PDBNAME = "{{ item.0.pdb_prefix }}"
247247
# Default value : None
248248
# Mandatory : No
249249
#-----------------------------------------------------------------------------
250-
PDBADMINPASSWORD = "{{ item.0.oracle_db_passwd }}"
250+
{% if dbpasswords is defined and dbpasswords[item.0.oracle_db_name] is defined and dbpasswords[item.0.oracle_db_name]['pdbadmin'] is defined %}
251+
PDBADMINPASSWORD = "{{dbpasswords[item.0.oracle_db_name]['pdbadmin']}}"
252+
{% else %}
253+
PDBADMINPASSWORD = "{{default_dbpass }}"
254+
{% endif %}
251255

252256
#-----------------------------------------------------------------------------
253257
# Name : NODELIST
@@ -298,8 +302,11 @@ TEMPLATENAME = "{{dbca_templatename}}"
298302
# Default value : None
299303
# Mandatory : Yes
300304
#-----------------------------------------------------------------------------
301-
SYSPASSWORD = "{{ item.0.oracle_db_passwd }}"
302-
305+
{% if dbpasswords is defined and dbpasswords[item.0.oracle_db_name] is defined and dbpasswords[item.0.oracle_db_name]['sys'] is defined%}
306+
SYSPASSWORD = "{{dbpasswords[item.0.oracle_db_name]['sys']}}"
307+
{% else %}
308+
SYSPASSWORD = "{{default_dbpass }}"
309+
{% endif %}
303310
#-----------------------------------------------------------------------------
304311
# Name : SYSTEMPASSWORD
305312
# Datatype : String
@@ -308,7 +315,11 @@ SYSPASSWORD = "{{ item.0.oracle_db_passwd }}"
308315
# Default value : None
309316
# Mandatory : Yes
310317
#-----------------------------------------------------------------------------
311-
SYSTEMPASSWORD = "{{ item.0.oracle_db_passwd }}"
318+
{% if dbpasswords is defined and dbpasswords[item.0.oracle_db_name] is defined and dbpasswords[item.0.oracle_db_name]['system'] is defined %}
319+
SYSTEMPASSWORD = "{{dbpasswords[item.0.oracle_db_name]['system']}}"
320+
{% else %}
321+
SYSTEMPASSWORD = "{{default_dbpass }}"
322+
{% endif %}
312323

313324
#-----------------------------------------------------------------------------
314325
# Name : SERVICEUSERPASSWORD
@@ -362,7 +373,11 @@ EMCONFIGURATION = "NONE"
362373
# Mandatory : Yes, if EMCONFIGURATION is specified or
363374
# the value of RUNCVUCHECKS is TRUE
364375
#-----------------------------------------------------------------------------
365-
DBSNMPPASSWORD = "{{ item.0.oracle_db_passwd }}"
376+
{% if dbpasswords is defined and dbpasswords[item.0.oracle_db_name] is defined and dbpasswords[item.0.oracle_db_name]['dbsnmp'] is defined %}
377+
DBSNMPPASSWORD = "{{dbpasswords[item.0.oracle_db_name]['dbsnmp']}}"
378+
{% else %}
379+
DBSNMPPASSWORD = "{{default_dbpass }}"
380+
{% endif %}
366381

367382
#-----------------------------------------------------------------------------
368383
# Name : OMSHOST
@@ -528,7 +543,7 @@ DISKGROUPNAME={{ datafile_dest }}
528543
# Default value : None
529544
# Mandatory : No
530545
#-----------------------------------------------------------------------------
531-
ASMSNMP_PASSWORD="{{ item.0.oracle_db_passwd }}"
546+
ASMSNMP_PASSWORD={%if asmmonitorpassword is defined %}{{asmmonitorpassword}}{% else %}{{default_gipass}}{% endif %}
532547

533548
#-----------------------------------------------------------------------------
534549
# Name : RECOVERYGROUPNAME

0 commit comments

Comments
 (0)