Puppet moduuli -harjoitustyö

Taustaa

Tehtävä perustuu Tero Karvisen Palvelinten hallinta (Linux) -kurssiin, joka löytyy http://terokarvinen.com/2017/aikataulu-palvelinten-hallinta-ict4tn022-3-5-op-uusi-ops-loppusyksy-2017-p5.

Tehtävänä oli luoda oma Puppet moduuli. Moduulini aihe piti alun perin olla “Opiskelijan Linux työpöytä” eli erilaisia opiskelijalle hyödyllisiä ohjelmia valmiiksi asennettuna ja konfiguroituna mutta koska yksittäiset ohjelmat (LibreOffice + Suomi, VLC Media Player, Geogebra, Gimp, Audacity) ja niiden järkevä säätö ei ollut tuttua ja koska oman osaamisen taso tuli vastaan, päädyin tekemään moduulin, joka asentaa muutaman ohjelman ja konfiguroi firefoxia.

Käytössäni oli tehtävää tehdessä käyttöjärjestelmänä Xubuntu live-usb -tikku, versio 16.04. Koneen perustiedot:

CPU: i7 4790k

RAM: 16GB

MOBO: Gigabyte Z97x-Gaming 5

Työvaiheet

Tein moduulia eri päivinä enkä seurannut työaikaa, joten en pysty antamaan tarkkaa aikaa kauanko moduulin tekemisessä kesti mutta arviolta 4-5 tuntia. Nyt jälkiviisaana moduulin tekemisessä kestäisi ehkä max 15 minuuttia.

Aloitin moduulin tekemisen avaamalla terminaalin ja kirjoittamalla komennot:

setxkbmap fi <- näppäimistön kieli suomi

sudo apt-get update && sudo apt-get -y install puppetmaster <- päivitykset + puppetmasterin asennus

cd /etc/puppet/modules <- kansio minne luon “student” moduulin

sudo mkdir -p student/manifests /student/templates <- luon moduulille kansion, jonka sisään luon kansiot manifests ja templates

cd /etc/puppet/modules/students/manifests sudo nano init.pp <- luon init.pp tiedoston, jonne kirjoitan moduulin (https://raw.githubusercontent.com/Rasmusekmanhh/student/master/manifests/init.pp)

Screenshot_2017-12-11_21-21-09.png

Seuraavaksi avasin firefoxin ja kirjotin search barin about:preferences, mikä avaa preferances ikkunan. Sieltä säädin nämä asetukset:

  1. kotisivuksi https://mynet.haaga-helia.fi
  2. fonttikoko 20
  3. lataukset menevät suoraan työpöydälle, ei downloads kansioon
  4. laitoin laitteistokiihdytyksen päälle
  5. poistin search barin, koska nyt url bar toimii myös search barina
  6. default hakukone google
  7. selain ei tallenna sivuhistoriaa
  8. tracking protection aina päällä
  9. selain ei automaattisesti lähetä dataa Mozilalle (virheraportit yms. on nyt lähetettävä erikseen).

Kun säädökset oli tehty menin tiedostoon missä userin asetukset sijaitsevat

nano /home/xubuntu/.mozilla/firefox/*.default/prefs.js ja tarkistin, että sieltä löytyy mynet.haaga-helia url. Se löytyi eli tämä oli oikea tiedosto, täältä selaine hakee tiedot.

Jotta saisin yksittäisen userin asetukset kaikille moduulia käyttävälle, ne tulee kopioida /etc/firefox kansioon syspref.js tiedostoon. Puppet tekee sen, jos siirrän userin tiedot template tiedostoon ssyspref.js.

sudo cp -r /home/xubuntu/.mozilla/firefox/*.default/prefs.js /etc/puppet/modules/student/templates/ssyspref.js

 

# Mozilla User Preferences

/* Do not edit this file.
*
* If you make changes to this file while the application is running,
* the changes will be overwritten when the application exits.
*
* To make a manual change to preferences, you can visit the URL about:config
*/

user_pref(“accessibility.typeaheadfind.flashBar”, 0);
user_pref(“app.shield.optoutstudies.enabled”, false);
user_pref(“app.update.lastUpdateTime.addon-background-update-timer”, 1513000764);
user_pref(“app.update.lastUpdateTime.blocklist-background-update-timer”, 1513000884);
user_pref(“app.update.lastUpdateTime.browser-cleanup-thumbnails”, 1513000404);
user_pref(“app.update.lastUpdateTime.experiments-update-timer”, 1513000644);
user_pref(“app.update.lastUpdateTime.recipe-client-addon-run”, 1513001004);
user_pref(“app.update.lastUpdateTime.search-engine-update-timer”, 1513000524);
user_pref(“app.update.lastUpdateTime.telemetry_modules_ping”, 1512826113);
user_pref(“app.update.lastUpdateTime.xpi-signature-verification”, 1512825873);
user_pref(“browser.bookmarks.restore_default_bookmarks”, false);
user_pref(“browser.cache.disk.capacity”, 358400);
user_pref(“browser.cache.disk.filesystem_reported”, 1);
user_pref(“browser.cache.disk.smart_size.first_run”, false);
user_pref(“browser.cache.frecency_experiment”, 3);
user_pref(“browser.download.dir”, “/home/xubuntu/Desktop”);
user_pref(“browser.download.folderList”, 0);
user_pref(“browser.download.importedFromSqlite”, true);
user_pref(“browser.laterrun.bookkeeping.profileCreationTime”, 1512825086);
user_pref(“browser.laterrun.bookkeeping.sessionCount”, 9);
user_pref(“browser.laterrun.enabled”, true);
user_pref(“browser.link.open_newwindow”, 2);
user_pref(“browser.migration.version”, 59);
user_pref(“browser.newtabpage.activity-stream.migrationLastShownDate”, 1512943200);
user_pref(“browser.newtabpage.activity-stream.migrationRemainingDays”, 2);
user_pref(“browser.newtabpage.enhanced”, true);
user_pref(“browser.newtabpage.storageVersion”, 1);
user_pref(“browser.onboarding.notification.last-time-of-changing-tour-sec”, 1513000637);
user_pref(“browser.onboarding.notification.prompt-count”, 8);
user_pref(“browser.onboarding.notification.tour-ids-queue”, “onboarding-tour-library,onboarding-tour-screenshots,onboarding-tour-singlesearch,onboarding-tour-customize,onboarding-tour-sync,onboarding-tour-performance,onboarding-tour-library,onboarding-tour-screenshots,onboarding-tour-singlesearch,onboarding-tour-customize,onboarding-tour-sync”);
user_pref(“browser.onboarding.seen-tourset-version”, 2);
user_pref(“browser.onboarding.tour-type”, “update”);
user_pref(“browser.pageActions.persistedActions”, “{\”version\”:1,\”ids\”:[\”bookmark\”,\”bookmarkSeparator\”,\”copyURL\”,\”emailLink\”,\”sendToDevice\”,\”pocket\”,\”screenshots\”],\”idsInUrlbar\”:[\”pocket\”,\”bookmark\”]}”);
user_pref(“browser.pagethumbnails.storage_version”, 3);
user_pref(“browser.places.smartBookmarksVersion”, 8);
user_pref(“browser.preferences.defaultPerformanceSettings.enabled”, false);
user_pref(“browser.privatebrowsing.autostart”, true);
user_pref(“browser.reader.detectedFirstArticle”, true);
user_pref(“browser.rights.3.shown”, true);
user_pref(“browser.safebrowsing.provider.google.lastupdatetime”, “1512825117901”);
user_pref(“browser.safebrowsing.provider.google.nextupdatetime”, “1512826912901”);
user_pref(“browser.safebrowsing.provider.google4.lastupdatetime”, “1513002182367”);
user_pref(“browser.safebrowsing.provider.google4.nextupdatetime”, “1513003959367”);
user_pref(“browser.safebrowsing.provider.mozilla.lastupdatetime”, “1513000377576”);
user_pref(“browser.safebrowsing.provider.mozilla.nextupdatetime”, “1513003977576”);
user_pref(“browser.search.countryCode”, “FI”);
user_pref(“browser.search.hiddenOneOffs”, “Yahoo,Bing,Amazon.com,DuckDuckGo,eBay,Twitter,Wikipedia (en)”);
user_pref(“browser.search.region”, “FI”);
user_pref(“browser.selfsupport.enabled”, false);
user_pref(“browser.sessionstore.upgradeBackup.latestBuildID”, “20171129230835”);
user_pref(“browser.shell.checkDefaultBrowser”, true);
user_pref(“browser.slowStartup.averageTime”, 372);
user_pref(“browser.slowStartup.samples”, 4);
user_pref(“browser.startup.homepage_override.buildID”, “20171129230835”);
user_pref(“browser.startup.homepage_override.mstone”, “57.0.1”);
user_pref(“browser.tabs.remote.autostart.2”, true);
user_pref(“browser.uiCustomization.state”, “{\”placements\”:{\”widget-overflow-fixed-list\”:[],\”PersonalToolbar\”:[\”personal-bookmarks\”],\”nav-bar\”:[\”back-button\”,\”forward-button\”,\”stop-reload-button\”,\”home-button\”,\”customizableui-special-spring1\”,\”urlbar-container\”,\”customizableui-special-spring2\”,\”downloads-button\”,\”library-button\”,\”sidebar-button\”],\”TabsToolbar\”:[\”tabbrowser-tabs\”,\”new-tab-button\”,\”alltabs-button\”],\”toolbar-menubar\”:[\”menubar-items\”],\”addon-bar\”:[\”addonbar-closebutton\”,\”status-bar\”]},\”seen\”:[\”pocket-button\”,\”developer-button\”],\”dirtyAreaCache\”:[\”PersonalToolbar\”,\”nav-bar\”,\”TabsToolbar\”,\”toolbar-menubar\”,\”PanelUI-contents\”,\”addon-bar\”],\”currentVersion\”:12,\”newElementCount\”:2}”);
user_pref(“browser.urlbar.daysBeforeHidingSuggestionsPrompt”, 3);
user_pref(“browser.urlbar.lastSuggestionsPromptDate”, 20171209);
user_pref(“browser.urlbar.timesBeforeHidingSuggestionsHint”, 0);
user_pref(“datareporting.healthreport.uploadEnabled”, false);
user_pref(“datareporting.policy.dataSubmissionPolicyAcceptedVersion”, 2);
user_pref(“datareporting.policy.dataSubmissionPolicyNotifiedTime”, “1512825147277”);
user_pref(“datareporting.sessions.current.activeTicks”, 18);
user_pref(“datareporting.sessions.current.clean”, true);
user_pref(“datareporting.sessions.current.firstPaint”, 591);
user_pref(“datareporting.sessions.current.main”, 11);
user_pref(“datareporting.sessions.current.sessionRestored”, 614);
user_pref(“datareporting.sessions.current.startTime”, “1512825580365”);
user_pref(“datareporting.sessions.current.totalTime”, 99);
user_pref(“datareporting.sessions.currentIndex”, 3);
user_pref(“datareporting.sessions.previous.0”, “{\”s\”:1512825083434,\”a\”:22,\”t\”:201,\”c\”:true,\”m\”:954,\”fp\”:3892,\”sr\”:3846}”);
user_pref(“datareporting.sessions.previous.1”, “{\”s\”:1512825494862,\”a\”:2,\”t\”:9,\”c\”:true,\”m\”:30,\”fp\”:876,\”sr\”:842}”);
user_pref(“datareporting.sessions.previous.2”, “{\”s\”:1512825505050,\”a\”:5,\”t\”:73,\”c\”:true,\”m\”:20,\”fp\”:598,\”sr\”:621}”);
user_pref(“distribution.canonical.bookmarksProcessed”, true);
user_pref(“dom.ipc.processCount”, 4);
user_pref(“dom.ipc.processCount.web”, 4);
user_pref(“e10s.rollout.cohort”, “multiBucket4”);
user_pref(“e10s.rollout.cohortSample”, “0.253232”);
user_pref(“e10s.rollout.cohortSample.multi”, “0.697677”);
user_pref(“experiments.activeExperiment”, false);
user_pref(“extensions.blocklist.pingCountTotal”, 2);
user_pref(“extensions.blocklist.pingCountVersion”, 2);
user_pref(“extensions.databaseSchema”, 23);
user_pref(“extensions.e10s.rollout.blocklist”, “”);
user_pref(“extensions.e10s.rollout.hasAddon”, false);
user_pref(“extensions.e10s.rollout.policy”, “50allmpc”);
user_pref(“extensions.e10sBlockedByAddons”, false);
user_pref(“extensions.e10sMultiBlockedByAddons”, false);
user_pref(“extensions.getAddons.cache.lastUpdate”, 1513000765);
user_pref(“extensions.getAddons.databaseSchema”, 5);
user_pref(“extensions.hotfix.lastVersion”, “20170302.01”);
user_pref(“extensions.lastAppBuildId”, “20171129230835”);
user_pref(“extensions.lastAppVersion”, “57.0.1”);
user_pref(“extensions.lastPlatformVersion”, “57.0.1”);
user_pref(“extensions.pendingOperations”, false);
user_pref(“extensions.shield-recipe-client.first_run”, false);
user_pref(“extensions.shield-recipe-client.user_id”, “6776e5d4-1aca-487b-9467-669e44314f18”);
user_pref(“extensions.systemAddonSet”, “{\”schema\”:1,\”directory\”:\”{afe9f804-3eec-4ea8-9741-f024b504fea5}\”,\”addons\”:{\”disable-media-wmf-nv12@mozilla.org\”:{\”version\”:\”1.1\”}}}”);
user_pref(“extensions.webextensions.uuids”, “{\”screenshots@mozilla.org\”:\”499411e3-e2c1-4ffe-b5b3-6e8b11ba1913\”}”);
user_pref(“font.internaluseonly.changed”, false);
user_pref(“font.size.variable.x-western”, 20);
user_pref(“gecko.handlerService.migrated”, true);
user_pref(“intl.accept_languages”, “en-us,en”);
user_pref(“media.gmp-gmpopenh264.abi”, “x86_64-gcc3”);
user_pref(“media.gmp-gmpopenh264.lastUpdate”, 1513000766);
user_pref(“media.gmp-gmpopenh264.version”, “1.7.1”);
user_pref(“media.gmp-manager.buildID”, “20171129230835”);
user_pref(“media.gmp-manager.lastCheck”, 1513000913);
user_pref(“media.gmp.storage.version.observed”, 1);
user_pref(“network.cookie.prefsMigrated”, true);
user_pref(“network.predictor.cleaned-up”, true);
user_pref(“pdfjs.enabledCache.initialized”, true);
user_pref(“pdfjs.enabledCache.state”, false);
user_pref(“pdfjs.migrationVersion”, 2);
user_pref(“pdfjs.previousHandler.alwaysAskBeforeHandling”, true);
user_pref(“pdfjs.previousHandler.preferredAction”, 4);
user_pref(“places.history.expiration.transient_current_max_pages”, 104858);
user_pref(“plugin.disable_full_page_plugin_for_types”, “application/pdf”);
user_pref(“pref.browser.language.disable_button.remove”, false);
user_pref(“pref.general.disable_button.default_browser”, false);
user_pref(“pref.privacy.disable_button.change_blocklist”, false);
user_pref(“pref.privacy.disable_button.tracking_protection_exceptions”, false);
user_pref(“pref.privacy.disable_button.view_passwords”, false);
user_pref(“privacy.trackingprotection.enabled”, true);
user_pref(“privacy.trackingprotection.introCount”, 20);
user_pref(“security.disable_button.openDeviceManager”, false);
user_pref(“services.blocklist.addons.checked”, 1512998245);
user_pref(“services.blocklist.clock_skew_seconds”, 2638);
user_pref(“services.blocklist.gfx.checked”, 1512998245);
user_pref(“services.blocklist.last_update_seconds”, 1512998245);
user_pref(“services.blocklist.onecrl.checked”, 1512998245);
user_pref(“services.blocklist.plugins.checked”, 1512998245);
user_pref(“services.sync.clients.lastSync”, “0”);
user_pref(“services.sync.clients.lastSyncLocal”, “0”);
user_pref(“services.sync.declinedEngines”, “”);
user_pref(“services.sync.globalScore”, 0);
user_pref(“services.sync.nextSync”, 0);
user_pref(“services.sync.tabs.lastSync”, “0”);
user_pref(“services.sync.tabs.lastSyncLocal”, “0”);
user_pref(“signon.importedFromSqlite”, true);
user_pref(“signon.rememberSignons”, false);
user_pref(“toolkit.startup.last_success”, 1513000373);
user_pref(“toolkit.telemetry.cachedClientID”, “3528bb13-4c8b-4534-8e73-0ddbbed9b888”);
user_pref(“toolkit.telemetry.previousBuildID”, “20171129230835”);
user_pref(“toolkit.telemetry.reportingpolicy.firstRun”, false);
user_pref(“browser.startup.homepage”, “https://mynet.haaga-helia.fi&#8221;);

Testaus

Nyt moduuli oli valmis testattavaksi.

Tein scriptin joka asentaa puppetmasterin ja cloonaa gitistä valmiin modulen /etc/puppet/modules kansioon.

https://raw.githubusercontent.com/Rasmusekmanhh/moduulin-k-ytt-notto/master/student.sh

Screenshot_2017-12-11_21-56-58

Nyt puppetmasterilla on valmis moduuli mitä jakaa orjille.

Screenshot_2017-12-11_21-58-45.png

 

Moduuli toimi ja asensi haluamani ohjelmat ja teki haluamani säädökset Firefoxiin.

Screenshot_2017-12-11_22-16-57.png

Screenshot_2017-12-11_22-04-37.png

Linkkejä githubiin:

https://github.com/Rasmusekmanhh/student <- moduuli

https://github.com/Rasmusekmanhh/moduulin-k-ytt-notto <- scripti mikä asentaa puppetmasterin ja student moduulin /etc/puppet/modules kansioon niin, että moduuli on valmis jaettavaksi orjille.

LÄHTEET:

http://terokarvinen.com/2017/aikataulu-palvelinten-hallinta-ict4tn022-3-5-op-uusi-ops-loppusyksy-2017-p5 – Tero Karvinen, Palvelinten hallinta (Linux) -kurssi, tehtävänanto + ohjeita

https://docs.puppet.com/puppet/3.8/ – Puppet manuaali, ohjeita tyhmiin satunnaisiin ongelmiin

https://www.puppetcookbook.com/

https://github.com/Rasmusekmanhh/moduulin-k-ytt-notto

https://github.com/Rasmusekmanhh/student

 

 

 

 

 

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s