|
|
@@ -0,0 +1,99 @@ |
|
|
import jenkins.* |
|
|
import hudson.* |
|
|
import com.cloudbees.plugins.credentials.* |
|
|
import com.cloudbees.plugins.credentials.common.* |
|
|
import com.cloudbees.plugins.credentials.domains.* |
|
|
import com.cloudbees.jenkins.plugins.sshcredentials.impl.* |
|
|
import hudson.plugins.sshslaves.*; |
|
|
import hudson.model.* |
|
|
import jenkins.model.* |
|
|
import hudson.security.* |
|
|
|
|
|
global_domain = Domain.global() |
|
|
credentials_store = |
|
|
Jenkins.instance.getExtensionList( |
|
|
'com.cloudbees.plugins.credentials.SystemCredentialsProvider' |
|
|
)[0].getStore() |
|
|
|
|
|
credentials = new BasicSSHUserPrivateKey(CredentialsScope.GLOBAL,null,"root",new BasicSSHUserPrivateKey.UsersPrivateKeySource(),"","") |
|
|
|
|
|
credentials_store.addCredentials(global_domain, credentials) |
|
|
|
|
|
def hudsonRealm = new HudsonPrivateSecurityRealm(false) |
|
|
def adminUsername = System.getenv('JENKINS_ADMIN_USERNAME') ?: 'admin' |
|
|
def adminPassword = System.getenv('JENKINS_ADMIN_PASSWORD') ?: 'password' |
|
|
hudsonRealm.createAccount(adminUsername, adminPassword) |
|
|
//hudsonRealm.createAccount("charles", "charles") |
|
|
|
|
|
def instance = Jenkins.getInstance() |
|
|
instance.setSecurityRealm(hudsonRealm) |
|
|
instance.save() |
|
|
|
|
|
|
|
|
def strategy = new GlobalMatrixAuthorizationStrategy() |
|
|
|
|
|
// Slave Permissions |
|
|
//strategy.add(hudson.model.Computer.BUILD,'charles') |
|
|
//strategy.add(hudson.model.Computer.CONFIGURE,'charles') |
|
|
//strategy.add(hudson.model.Computer.CONNECT,'charles') |
|
|
//strategy.add(hudson.model.Computer.CREATE,'charles') |
|
|
//strategy.add(hudson.model.Computer.DELETE,'charles') |
|
|
//strategy.add(hudson.model.Computer.DISCONNECT,'charles') |
|
|
|
|
|
// Credential Permissions |
|
|
//strategy.add(com.cloudbees.plugins.credentials.CredentialsProvider.CREATE,'charles') |
|
|
//strategy.add(com.cloudbees.plugins.credentials.CredentialsProvider.DELETE,'charles') |
|
|
//strategy.add(com.cloudbees.plugins.credentials.CredentialsProvider.MANAGE_DOMAINS,'charles') |
|
|
//strategy.add(com.cloudbees.plugins.credentials.CredentialsProvider.UPDATE,'charles') |
|
|
//strategy.add(com.cloudbees.plugins.credentials.CredentialsProvider.VIEW,'charles') |
|
|
|
|
|
// Overall Permissions |
|
|
//strategy.add(hudson.model.Hudson.ADMINISTER,'charles') |
|
|
//strategy.add(hudson.PluginManager.CONFIGURE_UPDATECENTER,'charles') |
|
|
//strategy.add(hudson.model.Hudson.READ,'charles') |
|
|
//strategy.add(hudson.model.Hudson.RUN_SCRIPTS,'charles') |
|
|
//strategy.add(hudson.PluginManager.UPLOAD_PLUGINS,'charles') |
|
|
|
|
|
// Job Permissions |
|
|
//strategy.add(hudson.model.Item.BUILD,'charles') |
|
|
//strategy.add(hudson.model.Item.CANCEL,'charles') |
|
|
//strategy.add(hudson.model.Item.CONFIGURE,'charles') |
|
|
//strategy.add(hudson.model.Item.CREATE,'charles') |
|
|
//strategy.add(hudson.model.Item.DELETE,'charles') |
|
|
//strategy.add(hudson.model.Item.DISCOVER,'charles') |
|
|
//strategy.add(hudson.model.Item.READ,'charles') |
|
|
//strategy.add(hudson.model.Item.WORKSPACE,'charles') |
|
|
|
|
|
// Run Permissions |
|
|
//strategy.add(hudson.model.Run.DELETE,'charles') |
|
|
//strategy.add(hudson.model.Run.UPDATE,'charles') |
|
|
|
|
|
// View Permissions |
|
|
//strategy.add(hudson.model.View.CONFIGURE,'charles') |
|
|
//strategy.add(hudson.model.View.CREATE,'charles') |
|
|
//strategy.add(hudson.model.View.DELETE,'charles') |
|
|
//strategy.add(hudson.model.View.READ,'charles') |
|
|
|
|
|
// Setting Anonymous Permissions |
|
|
strategy.add(hudson.model.Hudson.READ,'anonymous') |
|
|
strategy.add(hudson.model.Item.BUILD,'anonymous') |
|
|
strategy.add(hudson.model.Item.CANCEL,'anonymous') |
|
|
strategy.add(hudson.model.Item.DISCOVER,'anonymous') |
|
|
strategy.add(hudson.model.Item.READ,'anonymous') |
|
|
|
|
|
// Setting Admin Permissions |
|
|
strategy.add(Jenkins.ADMINISTER, "admin") |
|
|
|
|
|
// Setting easy settings for local builds |
|
|
def local = System.getenv("BUILD").toString() |
|
|
if(local == "local") { |
|
|
// Overall Permissions |
|
|
strategy.add(hudson.model.Hudson.ADMINISTER,'anonymous') |
|
|
strategy.add(hudson.PluginManager.CONFIGURE_UPDATECENTER,'anonymous') |
|
|
strategy.add(hudson.model.Hudson.READ,'anonymous') |
|
|
strategy.add(hudson.model.Hudson.RUN_SCRIPTS,'anonymous') |
|
|
strategy.add(hudson.PluginManager.UPLOAD_PLUGINS,'anonymous') |
|
|
} |
|
|
|
|
|
instance.setAuthorizationStrategy(strategy) |
|
|
instance.save() |