|
35 | 35 | unless => "/usr/bin/test \$(stat -c %U ${::settings::codedir}/environments/production) = 'pe-puppet'", |
36 | 36 | } |
37 | 37 |
|
| 38 | + $code_manager_role_name = 'Deploy Environments' |
| 39 | + $create_role_creates_file = '/etc/puppetlabs/puppetserver/.puppetlabs/deploy_environments_created' |
| 40 | + $create_role_curl = @(EOT) |
| 41 | + /opt/puppetlabs/puppet/bin/curl -k -X POST -H 'Content-Type: application/json' \ |
| 42 | + https://<%= $::trusted['certname'] %>:4433/rbac-api/v1/roles \ |
| 43 | + -d '{"permissions": [{"object_type": "environment", "action": "deploy_code", "instance": "*"}, |
| 44 | + {"object_type": "tokens", "action": "override_lifetime", "instance": "*"}],"user_ids": [], "group_ids": [], "display_name": "<%= $code_manager_role_name %>", "description": ""}' \ |
| 45 | + --cert <%= $::settings::certdir %>/<%= $::trusted['certname'] %>.pem \ |
| 46 | + --key <%= $::settings::privatekeydir %>/<%= $::trusted['certname'] %>.pem \ |
| 47 | + --cacert <%= $::settings::certdir %>/ca.pem; |
| 48 | + touch <%= $create_role_creates_file %> |
| 49 | + | EOT |
| 50 | + |
| 51 | + exec { 'create deploy environments role' : |
| 52 | + command => inline_epp( $create_role_curl ), |
| 53 | + creates => $create_role_creates_file, |
| 54 | + logoutput => true, |
| 55 | + path => $::path, |
| 56 | + require => File[$token_directory], |
| 57 | + } |
| 58 | + |
38 | 59 | rbac_user { $code_manager_service_user : |
39 | 60 | ensure => 'present', |
40 | 61 | name => $code_manager_service_user, |
41 | 62 | email => "${code_manager_service_user}@example.com", |
42 | 63 | display_name => 'Code Manager Service Account', |
43 | 64 | password => $code_manager_service_user_password, |
44 | | - roles => [ 'Deploy Environments' ], |
| 65 | + roles => [ $code_manager_role_name ], |
| 66 | + require => Exec['create deploy environments role'], |
45 | 67 | } |
46 | 68 |
|
47 | 69 | file { $token_directory : |
|
0 commit comments