Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
511 lines (386 sloc) 31.2 KB

Samban asennus ja määritys automaattisesti Linux-palvelimelle

Tekijä: Jan Parttimaa

Päivämäärä: 11.12.2017

Sisällysluettelo

  1. Johdanto
  2. Esivalmistelut
    1. PuppetMasterin asennus ja määritys työasemalle
    2. Puppetin asennus ja määritys palvelimelle
    3. Sertifikaatin allekirjoituspyynnön hyväksyminen PuppetMasterissa
  3. Puppet-moduulit ja muut tiedostot Samban automaattiseen asennukseen ja määritykseen
    1. Samba -moduuli
    2. Sharefile -moduuli
    3. Muutama lisäys "puppet.conf" -tiedostoon
    4. Ajettavien Puppet-moduulien ajo oikeaan kohteeseen
  4. Puppet -moduulien ajo Palvelimelle
  5. Testaaminen
    1. Ubuntu Desktop 16.04.3 LTS
    2. Windows 10 Pro (version 1709)
    3. Muuta
  6. Skrtiptit kansiojakojen automaattiseen lisäämiseen tietokoneisiin
    1. Windows
    2. Linux
  7. Yhteenveto
  8. Lähteet

Johdanto

Tässä raportissa kerron, kuinka pystyy asentamaan ja määrittämään Samban automaattisesti Linux -käyttöjärjestelmällä varustetulle palvelimelle hyödyntämällä Puppet-työkaluja sekä esivalmiita skriptejä. Asetan myös Samban tekemään lähiverkkoon julkisen kansiojaon, johon kaikki lähiverkon käyttäjät pääsevät käsiksi.

Samba on palvelinohjelmisto, joka on Unix -käyttöjärjestelmille laadittu avoin toteutus SMB/CIFS -tiedonsiirtoprotokollasta, jota käytetään Windowsissa. Samban avulla voidaan muun muassa jakaa tiedostoja että tulostimia lähiverkon kaikille tietokoneille esimerkiksi Windows- ja Linux-käyttöjärjestelmien kesken. Samban ansiosta esimerkiksi Linux tai Unix -palvelimet voidaan saumattomasti integroida Windowsin Active Directory -ympäristöön, mitä näkyy paljon esimerkiksi yrityksissä. Samba on kehitetty vuodesta 1992 alkaen ja kehitysprojektin takana häärii vapaaehtoisesti Samba Team sekä muut yksittäiset ihmiset.

Raportin teossa olin hyödyntänyt VirtualBoxiin asennettuja kahta virtuaalikonetta; ensimmäinen oli 64-bittinen Ubuntu Desktop (versio: 16.04.3 LTS) kun taas toinen oli 64-bittinen Ubuntu Server (versio: 16.04.3 LTS). Ubuntu Server tulee olemaan niin sanottu Samba -tiedostopalvelin ja Ubuntu Desktop ns. Master, jolla voidaan hallita palvelinta. Virtuaalikoneiden verkkokortit olin asettanut siltaaviksi, jotta ne toisivat omina instansseinaan lähiverkossa, toisin sanoen näkyisivät lähiverkossa erillisinä tietokoneinaan. Ubuntu Serverin olin nimennyt palvelimeksi nimeltä "VBOXSAMBA" ja Ubuntu Desktop:in tietokoneeksi nimeltä "VBOX001". Kummankin virtuaalikoneiden käyttöjärjestelmien kieli on englanniksi.

Esivalmistelut

Ennen, kuin aloitin Samban automaattisen asennuksen VBOXSAMBAlle, minun täytyi asentaa VBOX001:seen PuppetMaster. Ennen sitä asensin kuitenkin kumpaakin koneeseen tuoreet päivitykset komennoilla:

sudo apt update
sudo apt -y upgrade

Minun täytyi myös laittaa VBOX001:sen "hosts" -tiedostoon palvelimen IP-osoite sekä kyseisen palvelimen DNS-nimet. Tiedoston sain auki Terminaalissa komennolla sudoedit /etc/hosts/. Tiedoston sisältö näytti lopulta seuraavalta:

127.0.0.1       localhost
127.0.1.1       VBOX001
192.168.1.69    VBOXSAMBA.parttimaa.local VBOXSAMBA vboxsamba

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Lisätyt tiedot löytyvät kolmanneksi ylimmästä kohdasta. Suljin ja tallensin tiedoston komennolla Ctrl+X ja sen jälkeen komennolla "y".

PuppetMasterin asennus ja määritys työasemalle

PuppetMasterin asennus ja määritys VBOX001:seen meni seuraavanlaisesti:

  1. Avasin Terminaalin (Ctrl+Alt+T)

  2. Asensin PuppetMasterin komennolla:

    sudo apt-get -y install puppetmaster
    

    Asennuksessa kesti muutama minuutti. Asennus onnistui moitteetta.

  3. Pysäytin PuppetMasterin sekä poistin tämän jälkeen vanhat SSL-sertifikaatit:

    sudo service puppetmaster stop
    sudo rm -r /var/lib/puppet/ssl
    

    Komennon annon jälkeen painoin Enter.

  4. Halusin muokata "puppet.conf" -tiedostoa. Avasin tiedoston komennolla:

    sudoedit /etc/puppet/puppet.conf
    

    Painoin komennon jälkeen Enter. Tiedosto avautui Nano -ohjelmassa. Lisäsin tiedostoon [master] -otsakkeen alle seuraavat DNS-tiedot:

    dns_alt_names = puppet, VBOX001.parttimaa.local, puppet.VBOX001.parttimaa.local, VBOX001, vbox001
    
    

    Suljin ja tallensin tiedoston komennolla Ctrl+X ja sen jälkeen komennolla "y".

  5. Käynnistin PuppetMasterin uudelleen, komennolla:

    sudo service puppetmaster start
    

    Samalla generoitui uudet SSL-sertifikaatit automaattisesti.

Puppetin asennus ja määritys palvelimelle

Puppetin asennuksen ja määrityksen VBOXSAMBAlle olin tehnyt kahden itselaatimien skriptien avulla, Ensimmäinen skripti lataa palvelimelle puppetin asennus- sekä määritysskriptin ja ajaa sen. Toinen skripti nimensä mukaisesti asentaa - ja määrittää palvelimelle Puppetin. Samalla skripti lähettää lopuksi sertifikaatin allekirjoituspyynnön VBOX001:lle.

Ensimmäinen ns. "latausskripti" näyttää yksinkertaisuudeltaan seuraavalta:

wget https://raw.githubusercontent.com/janparttimaa/palvelinten-hallinta/master/scripts/installPuppetAgentIntoServer.sh
bash installPuppetAgentIntoServer.sh

Ensimmäisen skriptin sain ajettua palvelimella komennolla:

bash downloadPuppetAgentScriptIntoServer.sh

Toinen skripti eli Puppetin asennus- ja määritysskripti näyttää seuraavalta:

echo "Configure Server as a Puppet Agent and link it to the Puppet Master"
echo "(c) 2017 Jan Parttimaa. All rights reserved."
echo "********************************************"
echo "********************************************"
sudo ufw enable
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp
sudo ufw allow 137/udp
sudo ufw allow 138/udp
sudo sed -i "3i192.168.1.77   VBOX001.parttimaa.local VBOX001 vbox001 puppet" /etc/hosts
sudo /etc/init.d/networking restart
sudo apt update
sudo apt-get install -y puppet
sudo service puppet stop
sudo rm -r /var/lib/puppet/ssl
echo "" | sudo tee -a /etc/puppet/puppet.conf
echo "[agent]" | sudo tee -a /etc/puppet/puppet.conf
echo "server = VBOX001.parttimaa.local" | sudo tee -a /etc/puppet/puppet.conf
sudo puppet agent --enable
sudo service puppet start
sudo puppet cert --list
echo "********************************************"
echo "********************************************"
echo "Completed!"

Skripti aluksi asettaa palvelimesta palomuurin päälle ja sallii Samballe käyttöön porttinumerot 139 (TCP), 445 (TCP), 137 (UDP) ja 138 (UDP). Jos portteja ei avata, Samba ei tule toimimaan. Seuraavaksi skripti lisää palvelimen "hosts" -tiedostoon merkinnän PuppetMaster-koneesta eli tässä tapauksessa VBOX001:stä. Tämän jälkeen skripti alkaa asentamaan puppettia palvelimelle, poistaa SSL-sertifikaattikansion, lisää "puppet.conf" -tiedostoon PuppetMasterin dns-nimen, asettaa Puppetin käynnistettäväksi joka uudelleeenkäynnistyksen jälkeen ja luo palvelimelle uudet SSL-sertifikaatit. Lopuksi se lähettää VBOX001:lle sertifikaatin allekirjoituspyynnön.

Sertifikaatin allekirjoituspyynnön hyväksyminen PuppetMasterissa

Jos PuppetMasterin sisältävässä tietokoneessa on palomuuri päällä, pitää avata siitä porttinumero 8140 komennolla sudo ufw allow 8140/tcp, jotta yhteys PuppetMasterin ja Puppet Agentin välillä onnistuu.

Koska skripti lähetti palvelimessa allekirjoituspyynnön automaattisesti VBOX001:lle, sitä ei tarvinnnut erikseen tehdä. VBOX001:stä tarkistin odotettavat allekirjoituspyynnöt komennolla sudo puppet cert --list. Pyyntö tuli listaukseen näkyviin:

Allekirjoitin allekirjoituspyynnön komennolla sudo puppet cert --sign vboxsamba.parttimaa.local. Nyt Puppet -yhteys VBOX001:sen ja palvelimen välillä onnistuu.

Puppet-moduulit ja muut tiedostot Samban automaattiseen asennukseen ja määritykseen

Loin kaksi moduulia, joista yksi asentaa palvelimelle Samban ja määrittää sen käyttökuntoon automaattisesti ja toinen moduuli luo tarvittavat julkiset kansiojaot käyttöoikeuksineen. Määritin lisää myös "puppet.conf" -tiedostoa VBOX001:stä sekä määritin Puppetin alikansion "manifests" sisältämää "init.pp" -tiedostoa. "Puppet" -kansion rakenne oli seuraava:

Kansiorakenne koostui lopulta siis seitsemästä kansiosta ja yhdeksästä tiedostosta. "Puppet" -kansioon pääsin komennolla cd /etc/puppet.

Samba -moduuli

Loin "Puppet" -kansion "alikansioon "modules" (komento, jolla kansioon pääsee:cd /etc/puppet/modules) uuden alikansion nimeltään "samba" komennolla:

sudo mkdir samba

Komennon jälkeen painoin Enter. Sain luotua kansion. Tämän jälkeen siirryin kansioon komennolla cd samba. Kun olin kansion sisälä, loin sinne alikansiot "manifests" ja "templates" komennolla:

sudo mkdir manifests templates

Komennon jälkeen painoin Enter, jolloin kansiot luotiin. Tämän jälkeen siirryin luotuun "manifests" -kansioon komennolla cd manifests. Kun olin tämän kansion sisällä, loin sinne "init.pp" -tiedoston komennolla:

sudoedit init.pp

Komennon jälkeen painoin Enter. Tiedosto avautui Nano -ohjelmaan. Loin tiedostoon seuraavan Puppet-koodin:

# Samba installation and configuration using Puppet
# Copyright 2017 Jan Parttimaa. All rights reserved.

class samba {
        package {'samba':
        ensure => "latest",
        allowcdrom => "true",
        }

        file {"/etc/samba/smb.conf":
        content=> template("/etc/puppet/modules/samba/templates/samba.conf"),
        notify => Service ["smbd"],
        }

        service {'smbd':
        ensure =>"running",
        enable => "true",
        require => Package ["samba"],
        }
}

Skripti:

  • Asentaa Samban
  • Varmistaa, että se asennetaan ja pitää sen ajan tasalla.
  • Kopioi valmiiksi määritellyn "samba.conf" -tiedoston alkuperäisen päälle
  • Varmistaa, että Samban prosessi "smbd" on päällä

Suljin ja tallensin tiedoston komennolla Ctrl+X ja sen jälkeen komennolla "y".

Kun sain sen luotua, siirryin tämän jälkeen luomaan valmiiksi määriteltyä "samba.conf" -tiedostoa. Siirryin "templates" -kansioon komennolla cd /etc/puppet/modules/samba/templates. Olin joskus aiemmin kurssilla ottanut talteen valmiin mallin Samban alkupeäisestä "smb.conf" -tiedostosta. Kopioin mallin kansioon ja lisäsin tiedostoon seuraavat kohdat:

# Copyright 2017 Jan Parttimaa. All rights reserved.
# Sample configuration file for the Samba suite for Debian GNU/Linux.
# Special Puppet Edition
####### Authentication #######
[print$]
browseable = no
[public]
   comment = Public folders to local network
   path = /srv/samba/public/
   browsable = yes
   writable = yes
   read only = no
   guest ok = yes
   guest account = nobody
   create mask = 1777
   directory mask = 1777

Muokattu malli löytyy kokonaisuudessaan täältä. Yllä olevan kohdan kolme ensimmäistä riviä on kommentteja, jotka kertovat, että kyseessä on Samban määritystiedosto Puppettia varten. "[print$]" -otsakkeen alta muutin, että jaettavia tulostimia ei tarvitse nähdä muut verkon tietokoneet, koska mitään tulostinta ei ole jaettavaksi. Tämän jälkeen lisäsin tiedoston loppuun uuden otsakkeen nimeltään "[public]". Otsakkeen alle kerroin kohtaan "comments", että kyseinen jako on julkisten kansioiden jako lähiverkossa. "path" -kohtaan laitoin jaettavan kansion sijainnin, määritin myös, että:

  • Jako on selailtavissa lähiverkon tietokoneissa (browsable = yes)
  • Jaettavaan kansioon voidaan kirjoittaa lisää tietoa (writable = yes)
  • Jako ei ole "vain luku" -käyttöön (read only = no)
  • Vieraat ovat tervetulleita selailemaan jakoa lähiverkossa (guest ok = yes ja guest account = nobody)
  • Jakoon luodut tiedostot ovat käyttöoikeuksiltaan 1777
    • Selitykset järjestyksessä: 1= tiedoston omistaja, hakemiston omistaja tai pääkäyttäjä voi uudeleennimetyä tai poistaa tiedostot, 7= kaikilla käyttäjillä luku, kirjoitus ja suoritusoikeudet, 7= kaikilla käyttäjäryhmillä luku, kirjoitus ja suoritusoikeudet, 7= muilla luku, kirjoitus ja suoritusoikeudet
  • Jakoon luodut hakemistot ovat käyttöoikeuksiltaan 1777
    • Selitykset järjestyksessä: 1= tiedoston omistaja, hakemiston omistaja tai pääkäyttäjä voi uudeleennimetä tai poistaa tiedostot, 7= kaikilla käyttäjillä luku, kirjoitus ja suoritusoikeudet, 7= kaikilla käyttäjäryhmillä luku, kirjoitus ja suoritusoikeudet, 7= muilla luku, kirjoitus ja suoritusoikeudet

Suljin ja tallensin tiedoston komennolla Ctrl+X ja sen jälkeen komennolla "y". Tämän jälkeen uudelleennimesin "smb.conf" -mallin "samba.conf" -nimiseksi komennolla: mv smb.conf samba.conf

Sharefile -moduuli

Kyseinen moduuli luo tarvittavat kansiot käyttöoikeuksineen lähiverkon julkista jakoa varten. Loin "Puppet" kansion alikansioon "modules" (komento, jolla kansioon pääsee:cd /etc/puppet/modules) uuden alikansion nimeltään "sharefile" komennolla:

sudo mkdir sharefile

Komennon jälkeen painoin Enter. Sain luotua kansion. Tämän jälkeen siirryin kansioon komennolla cd sharefile. Kun olin kansion sisällä, loin sinne alikansion "manifests "komennolla:

sudo mkdir manifests

Komennon jälkeen painoin Enter, jolloin kansiot luotiin. Tämän jälkeen siirryin luotuun "manifests" -kansioon komennolla cd manifests. Kun olin tämän kansion sisällä, loin sinne "init.pp" -tiedoston komennolla:

sudoedit init.pp

Komennon jälkeen painoin Enter. Tiedosto avautui Nano -ohjelmaan. Loin tiedostoon seuraavan Puppet-koodin:

# Create directory and share it to the local network for everyone
# Copyright 2017 Jan Parttimaa. All rights reserved.

class sharefile {
# Create directory called "samba"

        file { '/srv/samba':
                ensure => 'directory',
                mode => '0755',
                owner => 'root',
                group => 'sudo',
        }

# Create directory called "public"

        file { '/srv/samba/public':
                ensure => 'directory',
                mode => '1777',
                owner => 'root',
                group => 'sudo',
        }

# Create directory called "Projektikansio"

        file { '/srv/samba/public/Projektikansio':
                ensure => 'directory',
                mode => '1777',
                owner => 'root',
                group => 'sudo',
        }
}

Kyseisessä Puppet-koodissa luodaan ensiksi kansio nimeltään "samba" polun "/srv/" -sisälle, asetetaan käyttöoikeuksisi 0775, omistajaksi "root" ja omistajan käyttäjäryhmäksi "sudo". Näin kansiota voi muokata tai poistaa pääkäyttäjä. Käyttöoikeuksista määriteltiin, että käyttäjillä ja käyttäjäryhmillä on kansioon luku, kirjoitus ja suoritusoikeus. Muilla on vain luku ja suoritusoikeudet.

Toiseksi luodaan vastaluodun "samba" -kansion alle alikansio nimeltään "public". Omistaja sekä omistajan käyttäjäryhmä on identtiset edelliseen mutta käyttöoikeuksissa on muutoksia. Käyttöoikeus on muotoa 1777:

  • Selitykset järjestyksessä: 1= tiedoston omistaja, hakemiston omistaja tai pääkäyttäjä voi uudeleennimetä tai poistaa tiedostot, 7= kaikilla käyttäjillä luku, kirjoitus ja suoritusoikeudet, 7= kaikilla käyttäjäryhmillä luku, kirjoitus ja suoritusoikeudet, 7= muilla luku, kirjoitus ja suoritusoikeudet

Kolmanneksi luodaan kansio nimeltään "Projektikansio" vastaluodun "public" -kansion alikansioksi. Määritykset projektikansiossa ovat identtiset, kuin "public" -kansiossa.

Suljin ja tallensin tiedoston komennolla Ctrl+X ja sen jälkeen komennolla "y".

Muutama lisäys "puppet.conf" -tiedostoon

Lisäsin tämän jälkeen PuppetMasterin (eli VBOX001:sen) "puppet.conf" -tiedostoon määrityksen, jossa PuppetMaster lukee moduulien skriptit järjesteyksessä ylhäältä alas.

Siirryin "Puppet" kansioon komennolla:

cd /etc/puppet

Komennon jälkeen painoin Enter. Seuraavaksi avasin "puppet.conf" -tiedoston komennolla:

sudoedit puppet.conf

Komennon jälkeen painoin Enter. Tiedosto avautui Nano -ohjelmaan. Lisäsin seuraavan tiedon [main] -otsakkeen alle loppuun:

ordering = manifest

Suljin ja tallensin tiedoston komennolla Ctrl+X ja sen jälkeen komennolla "y".

Ajettavien Puppet-moduulien ajo oikeaan kohteeseen

Jotta rakennetut moduulit pystytään ajamaan palvelimella (VBOXSAMBAlla), täytyi minun kohdentaa siihen ajettavat moduulit.

Menin "Puppet" kansion alikansioon "manifests" komennolla:

cd /etc/puppet/manifests

Komennon jälkeen painoin Enter. Siirryin kyseiseen kansioon. Kun olin tämän kansion sisällä, loin sinne "init.pp" -tiedoston komennolla:

sudoedit init.pp

Komennon jälkeen painoin Enter. Tiedosto avautui Nano -ohjelmaan. Loin tiedostoon seuraavan Puppet-koodin:

node 'VBOXSAMBA' {
        include sharefile
        include samba
}

Koodissa määritellään, että palvelimeen VBOXSAMBA ajetaan moduulit "sharefile" ja sitten "samba". Suljin ja tallensin tiedoston komennolla Ctrl+X ja sen jälkeen komennolla "y".

Puppet -moduulien ajo Palvelimelle

Puppet -moduulit ajetaan yleensä automaattisesti PuppetMasterilta agenteille joka puolen tunnin välein. Halusin tosin ajaa Puppet-moduulit palvelimelle heti. Annoin tämän takia VBOXSAMBAssa komennon:

sudo puppet agent -t

Komennon jälkeen painoin Enter. Moduulit suoritettiin palvelimella ja suoritukset onnistuivat. Viimeistelin asennukset uudelleen käynniställä palvelimen komennolla reboot.

Testaaminen

Kun Samba asennus ja määritys palvelimelle oli onnistunut, kokeilin sen jälkeen testata toimiiko Samba-palvelin niin kuin olin halunnut eli siis pääsenkö julkisiin jakoihin tietokoneella sekä voinko lisätä, muokata ja poistaa jaon tiedostoja.

Ubuntu Desktop 16.04.3 LTS

Aloitin testaamisen Ubuntulla lisäämällä tiedoston.

  1. Avasin Nautiluksen ja valitsin ikkunan vasemmasta "Connect to Server".

  2. Avautui "Connect to Server" -ikkuna. "Server Address -kohtaan kirjoitin palvelimen nimen kuvan mukaisella tavalla. Tämän jälkeen painoin "Connect".

  3. Avautui ikkuna, missä näkyi Samba-palvelimen saatavilla olevat jaot. Kaksoisklikkasin kansiota "public".

  4. Avautui uusi ikkuna, missä kysyttiin yhdistetäänkö anonyyminä eli vieraana vai tiettynä rekisteröitynä henkilönä. Valitsin kohdan "Anonymous" ja painoin "Connect".

  5. "public" -kansio avautui, jonka sisällä näin kansion "Projektikansio". Kaksoinklikkaan kyseisen kansion auki.

  6. Tein kansioon testitiedoston nimeltään "Hei.txt"

Windows 10 Pro (version 1709)

Jatkoin tämän jälkeen testausta Windows 10:n kanssa.

  1. Avasin File Explorerin ja valitsin ikkunan vasemmasta hakemistosta "This PC". Tämän jälkeen klikkasin hiiren oikealla tyhjään kohtaan ikkunassa, jolloin avautui valikko. Valikosta valitsin "Add a network location".

  2. Avautui uusi ikkuna nimeltään "Add Network Location". Kyseessä oli ohjattu lisäys. Valitsin "Next".

  3. Valitsin kohdan "Choose a custom network location" ja painoin sitten "Next".

  4. Lisäsin sitten palvelimen osoitteen kuvan mukaisesti. Tämän jälkeen painoin "Next".

  5. Samba-palvelin löytyi. Verkkosijainnin nimeksi ehdotettiin kuvan mukaista nimeä, mikä oli tässä tapauksessa ok. Siirryin eteenpäin painamalla "Next".

  6. Ohjattu verkkosijainnin lisäys saatiin onnistuneesti valmiiksi. Suljin ikkunan painamalla "Finish".

  7. Pääsin Samba-palvelimen julkisiin kansiojakoihin, missä näin Projektikansion. Avasin sen kaksoisklikkaamalla sitä.

  8. Löysin vastaluodun tekstitiedoston "Hei.txt", jonka avasin auki.

  9. Loin kansioon uuden tekstitiedoston nimeltään "Hei sinulle.txt"

  10. Yritin luoda tämän jälkeen Projektikansioon uuden kansion nimeltään "HelloWorld", jonka sain luotua onnistuneesti.

  1. "HelloWorld" kansioon loin tekstitiedoston "Hello.txt"

Tiedostojen ja kansioiden lisäys onnistuu siis myös Windowsilla Samba -palvelimelle.

Muuta

Yritin tämän jälkeen siirrellä tiedostoja Samba-palvelimella toisesta sijainnista toiseen, poistaa luodun tiedoston ja kansion sekä uudelleen nimetä vastaluotu tiedosto ja kansio sekä Windowsilla että Ubuntulla. Kummassakin tietokoneella nämä onnistuivat niin kuin pitikin! Myös luotujen tiedostojen muokkaus toisella työasemalla onnistui.

Skrtiptit kansiojakojen automaattiseen lisäämiseen tietokoneisiin

Tein skriptit, joiden ansiosta julkisten kansioiden liittäminen Samba-serveriltä (eng. mount) työasemiin on mahdollisimman vaivatonta ja yksinkertaista.

Windows

Lähdekoodi julkisten kansioiden liittämisestä Samba -serveriltä Windows -työasemaan oli seuraava:

@echo off
chcp 65001>nul
echo Map Public Folder from Samba File Server to Computer (Windows) [Version 1.0] && echo (c) Jan Parttimaa. All rights reserved.
echo.
echo Map Public Folder pressing ENTER.
@pause>nul
net use x: \\vboxsamba\public

Skriptin nimi oli "Map Public Folder from Samba File Server.bat". Skripti "mounttaa" julkisen "public" -kansion Resurssienhallintaan (Windows 8 ja uudemmat: File Manager, Windows 7 ja vanhemmat: Windows Explorer). Skripti tekee kansiosta X-aseman. Kirjaimen voi myös halutessaan muuttaa skriptista joksikin muuksi vaikka muokkaamalla skriptiä Muistiossa (eng. Notepad).

Käyttövalmiin skriptin voi ladata alhaalta. Riittää, että kaksoisklikkaa tiedoston auki ja seuraa ruudulle tulevia ohjeita.

Lataa Sktipri Windowsille

Linux

Lähdekoodi julkisten kansioiden liittämisestä Samba -serveriltä Linux -työasemaan oli seuraava (Testattu toimivuus Ubuntu 16.04.3 LTS -versiolla):

echo "Map Public Folder from Samba File Server to Computer (Linux)"
echo "(c) 2017 Jan Parttimaa. All rights reserved."
echo "********************************************"
echo "********************************************"
sudo apt update
sudo apt-get install -y smbclient cifs-utils
sudo mkdir /media/public
echo "//vboxsamba/public /media/public cifs guest,uid=1000,iocharset=utf8 0 0" | sudo tee -a /etc/fstab
sudo mount -a
echo "********************************************"
echo "********************************************"
echo "Completed!"

Skriptin nimi oli "mountSambaShare.sh". Skripti ainakin testatussa Ubuntun versiossa liitti "public" kansion sekä työpöydän Launcheriin että Nautilus -ohjelman ikkunan vasemman puoleiseen hakemistoon.

Käyttövalmiin skriptin voi ladata alhaalta. Skriptin saa ajettua Terminaalissa menemällä sijaintiin, mihin skripti tallennettiin ja antamalla komennon:

bash mountSambaShare.sh

Komennon annon jälkeen painettiin vain Enter.

Lataa Sktipri Linuxille

Yhteenveto

Kyseisessä raportissa suoritin palvelimeen Puppet -agentin automaattisen asennuksen ja määrityksen hyödyntämällä itsetehtyjä skriptejä, asentamalla, määrittelemällä Samban palvelimelle sekä luomalla kansiot palvelimelle lähiverkon julkista jakoa varten käyttämällä itsetehtyjä Puppet -moduuleita. Tätä raporttia sekä omaa muokattavaa "samba.conf" -tiedostoa voi muun muassa hyödyntää yksityisten kansiojakojen luontiin lähiverkkoon. Tällöin määriteltävää on entistä enemmän. Aiheesta löytyy lisää muun muassa Samban wikisivuilta. Itse rakennetut raportissa käytetyt Puppet moduulit löytyvät tästä linkistä. Skriptit puolestaan tästä linkistä.

Lähteet

Ask Ubuntu. 2013. How to rename a file in Terminal? Luettavissa: https://askubuntu.com/questions/280768/how-to-rename-a-file-in-terminal. Luettu: 9.12.2017.

Ask Ubuntu. 2011. What's an uppercase 'T' at the end of unix permissions? Luettavissa: https://askubuntu.com/questions/88391/whats-an-uppercase-t-at-the-end-of-unix-permissionshttps://askubuntu.com/questions/88391/whats-an-uppercase-t-at-the-end-of-unix-permissions. Luettu: 9.12.2017.

Dan's Tools. 2008-2017. Unix Permissions Calculator. Luettavissa: http://permissions-calculator.org/http://permissions-calculator.org/. Luettu: 9.12.2017.

Karvinen, T. 2017. Simpler Puppet Manifests – Resource Defaults and Manifest Ordering. Luettavissa: https://terokarvinen.com/2017/simpler-puppet-manifests-resource-defaults-and-manifest-ordering. Luettu: 9.12.2017.

Parttimaa, J. 2017. Harjoitus 2. Luettavissa: https://github.com/janparttimaa/palvelinten-hallinta/blob/master/raportit/h2.mdhttps://github.com/janparttimaa/palvelinten-hallinta/blob/master/raportit/h2.md. Luettu: 9.12.2017.

Potter, T. 2005. Firewalling Samba. Luettavissa: https://www.samba.org/~tpot/articles/firewall.html. Luettu: 9.12.2017.

Puppet. 2017. Puppet's services: Puppet agent on nix systems. Luettavissa: https://puppet.com/docs/puppet/4.8/services_agent_unix.html. Luettu: 9.12.2017.

Samba. 2017. What is Samba?. Luettavissa: https://www.samba.org/samba/what_is_samba.html. Luettu: 9.12.2017.

Samba Wiki. 2017. Setting up Samba as a Standalone Server. Luettavissa: https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server. Luettu: 9.12.2017.

Ubuntu Wiki. 2014. MountWindowsSharesPermanently. Luettavissa: https://wiki.ubuntu.com/MountWindowsSharesPermanentlyhttps://wiki.ubuntu.com/MountWindowsSharesPermanently. Luettu: 10.12.2017.

Wilson, D. 2017. Puppet CookBook. Luettavissa: https://www.puppetcookbook.com/https://www.puppetcookbook.com/. Luettu: 9.12.2017.