Created
April 16, 2012 20:30
-
-
Save omaciel/2401311 to your computer and use it in GitHub Desktop.
Katello Base Loader
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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 "[email protected]" | |
kk user assign_role --username moscow_admin --role "EU Admin" | |
kk user create --username reykjavik_admin --password redhat --email "[email protected]" | |
kk user assign_role --username reykjavik_admin --role "EU Admin" | |
kk user create --username tokyo_admin --password redhat --email "[email protected]" | |
kk user assign_role --username tokyo_admin --role "Asia Admin" | |
kk user create --username Brasília_admin --password redhat --email "Brasí[email protected]" | |
kk user assign_role --username Brasília_admin --role "Americas Admin" | |
kk user create --username "Dmitry_Medvedev" --password redhat --email "[email protected]" | |
kk user assign_role --username "Dmitry_Medvedev" --role "EU ReadOnly Admin" | |
kk user create --username "Ólafur_Ragnar_Grímsson" --password redhat --email "[email protected]" | |
kk user assign_role --username "Ólafur_Ragnar_Grímsson" --role "EU ReadOnly Admin" | |
kk user create --username "Akihito" --password redhat --email "[email protected]" | |
kk user assign_role --username "Akihito" --role "Asia ReadOnly Admin" | |
kk user create --username "Dilma_Rousseff" --password redhat --email "[email protected]" | |
kk user assign_role --username "Dilma_Rousseff" --role "Americas ReadOnly Admin" | |
kk user create --username "Ollanta_Humala" --password redhat --email "[email protected]" | |
kk user assign_role --username "Ollanta_Humala" --role "Americas ReadOnly Admin" | |
kk user create --username oa_redhat --password redhat --email "[email protected]" | |
kk user assign_role --username oa_redhat --role oa_redhat_role | |
kk user create --username sa_dev --password redhat --email "[email protected]" | |
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 "[email protected]" | |
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 "[email protected]" | |
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