Skip to content

Instantly share code, notes, and snippets.

@omaciel
Created April 16, 2012 20:30
Show Gist options
  • Save omaciel/2401311 to your computer and use it in GitHub Desktop.
Save omaciel/2401311 to your computer and use it in GitHub Desktop.
Katello Base Loader
#!/bin/bash -x
function kk() {
KATELLO_PATH=/usr/bin/katello
date && $KATELLO_PATH -u admin -p admin "$@"
}
# Orgs
## Reykjavik
kk org create --name Reykjavik
kk environment create --org Reykjavik --name Dev1 --prior Library
kk environment create --org Reykjavik --name QA1 --prior Dev1
kk environment create --org Reykjavik --name GA1 --prior QA1
## Moscow
kk org create --name Moscow
kk environment create --org Moscow --name Dev1 --prior Library
kk environment create --org Moscow --name QA1 --prior Dev1
kk environment create --org Moscow --name GA1 --prior QA1
## Tokyo
kk org create --name Tokyo
kk environment create --org Tokyo --name Dev1 --prior Library
kk environment create --org Tokyo --name QA1 --prior Dev1
kk environment create --org Tokyo --name GA1 --prior QA1
# Brasília
kk org create --name Brasília
kk environment create --org Brasília --name Dev1 --prior Library
kk environment create --org Brasília --name QA1 --prior Dev1
kk environment create --org Brasília --name GA1 --prior QA1
kk environment create --org Brasília --name Dev2 --prior Library
kk environment create --org Brasília --name QA2 --prior Dev2
kk environment create --org Brasília --name GA2 --prior QA2
# "São Paulo"
kk org create --name "São Paulo"
kk environment create --org "São Paulo" --name Dev1 --prior Library
kk environment create --org "São Paulo" --name Dev2 --prior Library
kk environment create --org "São Paulo" --name QA2 --prior Dev2
kk environment create --org "São Paulo" --name GA2 --prior QA2
# Roles & permissions
## Europe: admin
kk user_role create --name "EU Admin"
kk permission create --user_role "EU Admin" --name "Europe Super Perm" --org Moscow Reykjavik --scope all
## Asia: admin
kk user_role create --name "Asia Admin"
kk permission create --user_role "Asia Admin" --name "Asia Super Perm" --org Tokyo --scope all
## Americas: admin
kk user_role create --name "Americas Admin"
kk permission create --user_role "Americas Admin" --name "Americas Super Perm" --org Brasília --scope all
kk permission create --user_role "Americas Admin" --name "Americas Super Perm" --org "São Paulo" --scope all
## oa_redhat_role
kk user_role create --name "oa_redhat_role"
kk permission create --user_role "oa_redhat_role" --name "oa_redhat_all" --org Moscow --scope all
## sa_dev_role
kk user_role create --name "sa_dev_role"
kk permission create --user_role "sa_dev_role" --name "sa_dev_perm" --org Moscow --scope environments "read_contents,read_changesets,read_systems,delete_systems,update_systems,register_systems,manage_changesets,promote_changesets" --tag Dev1
## sa_prod_role
kk user_role create --name "sa_prod_role"
kk permission create --user_role "sa_prod_role" --name "sa_prod_perm" --org Moscow --scope environments "read_contents,read_changesets,read_systems,delete_systems,update_systems,register_systems,manage_changesets,promote_changesets" --tag GA1
kk permission create --user_role "sa_prod_role" --name "sa_prod_test_perm" --org Moscow --scope environments "read_changesets" --tag QA1
## sa_test_role
kk user_role create --name "sa_test_role"
kk permission create --user_role "sa_test_role" --name "sa_test_perm" --org Moscow --scope environments "read_contents,read_changesets,read_systems,delete_systems,update_systems,register_systems,manage_changesets,promote_changesets" --tag QA1
kk permission create --user_role "sa_test_role" --name "sa_test_dev_perm" --org Moscow --scope environments "read_changesets" --tag Dev1
## sa_common_role
kk user_role create --name "sa_common_role"
kk permission create --user_role "sa_common_role" --name "sa_common_actkey" --org Moscow --scope activation_keys "manage_all"
kk permission create --user_role "sa_common_role" --name "filter" --org Moscow --scope filters "create,delete,update,read"
kk permission create --user_role "sa_common_role" --name "org" --org Moscow --scope organizations "read,delete_systems,update_systems,read_systems,register_systems,sync"
kk permission create --user_role "sa_common_role" --name "provider" --org Moscow --scope providers "read"
kk permission create --user_role "sa_common_role" --name "template" --org Moscow --scope system_templates "manage_all"
## Europe: read-only
kk user_role create --name "EU ReadOnly Admin"
kk permission create --user_role "EU ReadOnly Admin" --name "Europe Read Activation Keys" --org Reykjavik --scope activation_keys --verbs read_all
kk permission create --user_role "EU ReadOnly Admin" --name "Europe Read Environment" --org Reykjavik --scope environments --verbs "read_changesets,read_contents,read_systems"
kk permission create --user_role "EU ReadOnly Admin" --name "Europe Read Filters" --org Reykjavik --scope filters --verbs read
kk permission create --user_role "EU ReadOnly Admin" --name "Europe Read Organization" --org Reykjavik --scope organizations --verbs "read,read_systems"
kk permission create --user_role "EU ReadOnly Admin" --name "Europe Read Providers" --org Reykjavik --scope providers --verbs read
kk permission create --user_role "EU ReadOnly Admin" --name "Europe Read System Templates" --org Reykjavik --scope system_templates --verbs read_all
## Asia: read-only
kk user_role create --name "Asia ReadOnly Admin"
kk permission create --user_role "Asia ReadOnly Admin" --name "Asia Read Activation Keys" --org Tokyo --scope activation_keys --verbs read_all
kk permission create --user_role "Asia ReadOnly Admin" --name "Asia Read Environment" --org Tokyo --scope environments --verbs "read_changesets,read_contents,read_systems"
kk permission create --user_role "Asia ReadOnly Admin" --name "Asia Read Filters" --org Tokyo --scope filters --verbs read
kk permission create --user_role "Asia ReadOnly Admin" --name "Asia Read Organization" --org Tokyo --scope organizations --verbs "read,read_systems"
kk permission create --user_role "Asia ReadOnly Admin" --name "Asia Read Providers" --org Tokyo --scope providers --verbs read
kk permission create --user_role "Asia ReadOnly Admin" --name "Asia Read System Templates" --org Tokyo --scope system_templates --verbs read_all
## Americas: read-only
kk user_role create --name "Americas ReadOnly Admin"
kk permission create --user_role "Americas ReadOnly Admin" --name "Americas Read Activation Keys" --org Brasília "São Paulo" --scope activation_keys --verbs read_all
kk permission create --user_role "Americas ReadOnly Admin" --name "Americas Read Environment" --org Brasília "São Paulo" --scope environments --verbs "read_changesets,read_contents,read_systems"
kk permission create --user_role "Americas ReadOnly Admin" --name "Americas Read Filters" --org Brasília "São Paulo" --scope filters --verbs read
kk permission create --user_role "Americas ReadOnly Admin" --name "Americas Read Organization" --org Brasília "São Paulo" --scope organizations --verbs "read,read_systems"
kk permission create --user_role "Americas ReadOnly Admin" --name "Americas Read Providers" --org Brasília "São Paulo" --scope providers --verbs read
kk permission create --user_role "Americas ReadOnly Admin" --name "Americas Read System Templates" --org Brasília "São Paulo" --scope system_templates --verbs read_all
# Create users
## Admin Users
kk user create --username moscow_admin --password redhat --email "moscow_admin@somecorp.com"
kk user assign_role --username moscow_admin --role "EU Admin"
kk user create --username reykjavik_admin --password redhat --email "reykjavik_admin@somecorp.com"
kk user assign_role --username reykjavik_admin --role "EU Admin"
kk user create --username tokyo_admin --password redhat --email "tokyo_admin@somecorp.com"
kk user assign_role --username tokyo_admin --role "Asia Admin"
kk user create --username Brasília_admin --password redhat --email "Brasília_admin@somecorp.com"
kk user assign_role --username Brasília_admin --role "Americas Admin"
kk user create --username "Dmitry_Medvedev" --password redhat --email "dmitry@somecorp.com"
kk user assign_role --username "Dmitry_Medvedev" --role "EU ReadOnly Admin"
kk user create --username "Ólafur_Ragnar_Grímsson" --password redhat --email "olafur@somecorp.com"
kk user assign_role --username "Ólafur_Ragnar_Grímsson" --role "EU ReadOnly Admin"
kk user create --username "Akihito" --password redhat --email "akihito@somecorp.com"
kk user assign_role --username "Akihito" --role "Asia ReadOnly Admin"
kk user create --username "Dilma_Rousseff" --password redhat --email "dilma@somecorp.com"
kk user assign_role --username "Dilma_Rousseff" --role "Americas ReadOnly Admin"
kk user create --username "Ollanta_Humala" --password redhat --email "ollanta@somecorp.com"
kk user assign_role --username "Ollanta_Humala" --role "Americas ReadOnly Admin"
kk user create --username oa_redhat --password redhat --email "redhat@somecorp.com"
kk user assign_role --username oa_redhat --role oa_redhat_role
kk user create --username sa_dev --password redhat --email "redhat@somecorp.com"
kk user assign_role --username sa_dev --role sa_common_role
kk user assign_role --username sa_dev --role sa_dev_role
kk user create --username sa_prod --password redhat --email "redhat@somecorp.com"
kk user assign_role --username sa_prod --role sa_common_role
kk user assign_role --username sa_prod --role sa_prod_role
kk user create --username sa_test --password redhat --email "redhat@somecorp.com"
kk user assign_role --username sa_test --role sa_common_role
kk user assign_role --username sa_test --role sa_test_role
# Switch to Moscow Org
kk client remember --option org --value Moscow
kk client remember --option env --value Dev1
# RHEL content
## Import manifest: Change FQDN to where your manifest lives
curl -o /tmp/omaciel-qe-1.zip "http://FQDN/omaciel-qe-1.zip"
kk provider import_manifest --name "Red Hat" --file /tmp/omaciel-qe-1.zip
kk repo enable --product "Red Hat Enterprise Linux Server" --name "Red Hat Enterprise Linux 6 Server RPMs x86_64 6Server"
kk repo enable --product "Red Hat Enterprise Linux Server" --name "Red Hat CloudForms Tools for RHEL 6 RPMs x86_64 6Server"
#kk repo enable --product "Red Hat Enterprise Linux Server" --name "Red Hat Enterprise Linux 5 Server RPMs x86_64 5Server"
kk provider synchronize --name "Red Hat"
kk filter create --org Moscow --name "Filter httpd" --packages httpd
kk repo add_filter --name "Red Hat Enterprise Linux 6 Server RPMs x86_64 6Server" --org Moscow --product "Red Hat Enterprise Linux Server" --filter "Filter httpd"
kk changeset create --name "RHEL to Dev1" --environment Dev1
kk changeset update --name "RHEL to Dev1" --environment Dev1 --add_product "Red Hat Enterprise Linux Server"
kk changeset promote --name "RHEL to Dev1" --environment Dev1
# Custom provider
kk provider create --name="Automated Builds"
kk product create --name="SystemEngine" --provider="Automated Builds"
kk repo create --name="SE" --product="SystemEngine" --org="Moscow" --url=http://inecas.fedorapeople.org/fakerepos/zoo3/
kk repo create --name="Agent" --product="SystemEngine" --org="Moscow" --url=http://inecas.fedorapeople.org/fakerepos/zoo/
# Sync 1
kk provider synchronize --name="Automated Builds"
kk filter create --org Moscow --name "Filter katello-agent" --packages katello-agent
kk repo add_filter --name Agent --org Moscow --product SystemEngine --filter "Filter katello-agent"
# Promote 1-0
kk changeset create --name "SystemEngine to Dev1" --description "First time to Dev1." --environment Dev1
kk changeset update --name "SystemEngine to Dev1" --add_product "SystemEngine" --environment Dev1
kk changeset promote --name "SystemEngine to Dev1" --environment Dev1
# Promote 2-0
kk changeset create --name "SystemEngine to QA1" --description "First time to QA1." --environment QA1
kk changeset update --name "SystemEngine to QA1" --add_product "SystemEngine" --environment QA1
kk changeset promote --name "SystemEngine to QA1" --environment QA1
# Promote 3-0
kk changeset create --name "SystemEngine to GA1" --description "First time to GA1." --environment GA1
kk changeset update --name "SystemEngine to GA1" --add_product "SystemEngine" --environment GA1
kk changeset promote --name "SystemEngine to GA1" --environment GA1
# Promote 1-1
## Add a system template
kk template create --name AutoTemplate
kk template update --name AutoTemplate --from_product 'Red Hat Enterprise Linux Server' --add_repository 'Red Hat CloudForms Tools for RHEL 6 RPMs x86_64 6Server'
kk template update --name AutoTemplate --from_product 'Red Hat Enterprise Linux Server' --add_repository 'Red Hat Enterprise Linux 6 Server RPMs x86_64 6Server'
kk template update --name AutoTemplate --from_product 'Red Hat Enterprise Linux Server' --add_distribution 'ks-Red Hat Enterprise Linux-Server-6.3-x86_64'
kk changeset create --name "System Template" --description "Promoting x86_64 system template" --environment Dev1
kk changeset update --name "System Template" --add_template "AutoTemplate" --environment Dev1
kk changeset promote --name "System Template" --environment Dev1
## Sync plans
kk sync_plan create --org Moscow --interval hourly --date `date +"%Y-%m-%d"` --name "Hourly"
kk product set_plan --org Moscow --name "SystemEngine" --plan Hourly
kk sync_plan create --org Moscow --interval weekly --date `date +"%Y-%m-%d"` --name "Weekly"
kk product set_plan --org Moscow --name "Red Hat Enterprise Linux Server" --plan Weekly
# Switch to Reykjavik Org
kk client remember --option org --value Reykjavik
kk client remember --option env --value Dev1
kk client remember --option username --value reykjavik_admin
kk client remember --option password --value redhat
kk provider create --org "Reykjavik" --name Fake
kk product create --org "Reykjavik" --provider Fake --name B0rked
kk changeset create --org "Reykjavik" --name Promotezoo --environment Dev1
kk repo create --org "Reykjavik" --product B0rked --name repo1 --url http://inecas.fedorapeople.org/fakerepos/ks_invalid/
kk provider synchronize --org "Reykjavik" --name Fake
# Switch to Tokyo Org
kk client remember --option org --value Tokyo
kk client remember --option env --value Dev1
kk client remember --option username --value tokyo_admin
kk client remember --option password --value redhat
kk provider create --org "Tokyo" --name katello
kk product create --org "Tokyo" --provider katello --name zoo
kk changeset create --org "Tokyo" --name Promotezoo --environment Dev1
kk repo create --org "Tokyo" --product zoo --name repo1 --url http://inecas.fedorapeople.org/fakerepos/zoo/
kk repo create --org "Tokyo" --product zoo --name repo2 --url http://lzap.fedorapeople.org/fakerepos/zoo5/
kk changeset update --org "Tokyo" --name Promotezoo --environment Dev1 --add_product zoo
kk changeset promote --org "Tokyo" --name Promotezoo --environment Dev1
kk provider synchronize --org "Tokyo" --name katello
kk changeset create --org "Tokyo" --name Promotezoo2 --environment Dev1
kk changeset update --org "Tokyo" --name Promotezoo2 --environment Dev1 --from_product zoo --add_distribution "ks-Test Family-TestVariant-16-x86_64"
kk changeset promote --org "Tokyo" --name Promotezoo2 --environment Dev1
## Import manifest: Change FQDN to where your manifest lives
curl -o /tmp/omaciel-qe-2.zip "http://FQDN/omaciel-qe-2.zip"
kk provider import_manifest --name "Red Hat" --file /tmp/omaciel-qe-2.zip
kk repo enable --product "Red Hat Enterprise Linux Server" --name "Red Hat Enterprise Linux 6 Server RPMs x86_64 6Server"
kk provider synchronize --name "Red Hat"
kk filter create --org Tokyo --name "httpd" --packages httpd
kk repo add_filter --name "Red Hat Enterprise Linux 6 Server RPMs x86_64 6Server" --org Tokyo --product "Red Hat Enterprise Linux Server" --filter "httpd"
kk changeset create --name "RHEL to Dev1" --environment Dev1
kk changeset update --name "RHEL to Dev1" --environment Dev1 --add_product "Red Hat Enterprise Linux Server"
kk changeset promote --name "RHEL to Dev1" --environment Dev1
# Sync plans
kk sync_plan create --org "Tokyo" --interval daily --date `date +"%Y-%m-%d"` --time "00:00:00" --name "Daily"
kk product set_plan --org Tokyo --name zoo --plan Daily
# Switch to Brasília Org
kk client remember --option org --value Brasília
kk client remember --option env --value Dev1
kk client remember --option username --value Brasília_admin
kk client remember --option password --value redhat
kk provider create --org "Brasília" --name Brew
kk product create --org "Brasília" --provider Brew --name "SE"
kk changeset create --org "Brasília" --name "Promote to Dev1" --environment Dev1
kk repo create --org "Brasília" --product "SE" --name "SE x86_64" --url http://download.devel.redhat.com/brewroot/repos/se-rhel-6-build/latest/x86_64/
kk provider synchronize --org "Brasília" --name Brew
kk changeset promote --org "Brasília" --name "Promote to Dev1" --environment Dev1
# Sync plans: starts in 20 minutes from now
kk sync_plan create --org Brasília --interval hourly --date `date +"%Y-%m-%d"` --time `date -d "+20 minute" +"%H:%M:%S-04:00"` --name "Hourly"
kk product set_plan --org Brasília --name "SE" --plan Hourly
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment