Initial commit
This commit is contained in:
commit
7c454c1ed4
23
README.md
Normal file
23
README.md
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
Ansible playbook VDK
|
||||||
|
====================
|
||||||
|
|
||||||
|
Rechner von USB-Stick provisionieren
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
1. USB-Stick mit NTFS formatieren
|
||||||
|
2. Alle Daten kopieren
|
||||||
|
3. ansible.cfg löschen
|
||||||
|
4. In `playbook.yml` `hosts: all` durch `hosts: localhost` ersetzen
|
||||||
|
5. Auf zu installierendem Client `/media/lokaladmin/$STICK_NAME/bootstrap.sh` ausführen
|
||||||
|
|
||||||
|
Andere Rechner aus der Ferne aktualisieren
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
1. Als `lokaladmin` anmelden
|
||||||
|
2. Diese Dateien in ein Verzeichnis kopieren (Der aktuelle Stand ist momentan auf pc109 im Ordner `/home/lokaladmin/ansible`)
|
||||||
|
3. `ansible-playbook playbook.yml -kK -D`
|
||||||
|
|
||||||
|
TODO
|
||||||
|
----
|
||||||
|
|
||||||
|
* Ich arbeite gerade noch daran, die Problematik mit lightdm zu lösen.
|
3
ansible.cfg
Normal file
3
ansible.cfg
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[defaults]
|
||||||
|
inventory = hosts
|
||||||
|
host_key_checking = False
|
13
bootstrap.sh
Executable file
13
bootstrap.sh
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
DIR=$(dirname $0)
|
||||||
|
cd $DIR
|
||||||
|
|
||||||
|
sudo apt update
|
||||||
|
sudo apt -y upgrade
|
||||||
|
sudo apt -y install openssh-server ansible
|
||||||
|
sudo ansible-playbook playbook.yml -D
|
||||||
|
sudo apt -y autoremove
|
||||||
|
|
||||||
|
# clean up
|
||||||
|
sudo rm -r ~/.ansible
|
2
files/00-favorite-apps
Executable file
2
files/00-favorite-apps
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
[org/gnome/shell]
|
||||||
|
favorite-apps = ['firefox.desktop', 'thunderbird.desktop', 'org.gnome.Nautilus.desktop', 'libreoffice-writer.desktop', 'libreoffice-calc.desktop', 'libreoffice-impress.desktop']
|
2
files/01-recursive-search
Executable file
2
files/01-recursive-search
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
[org/gnome/nautilus/preferences]
|
||||||
|
recursive-search='always'
|
2
files/02-energy
Executable file
2
files/02-energy
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
[org/gnome/desktop/session]
|
||||||
|
idle-delay=uint32 900
|
3489
files/CLP3550.PPD
Executable file
3489
files/CLP3550.PPD
Executable file
File diff suppressed because it is too large
Load Diff
BIN
files/CQue_v4.0.5_Linux_64_DE.deb
Executable file
BIN
files/CQue_v4.0.5_Linux_64_DE.deb
Executable file
Binary file not shown.
134
files/Canon_LBP712Cx.ppd
Executable file
134
files/Canon_LBP712Cx.ppd
Executable file
@ -0,0 +1,134 @@
|
|||||||
|
*PPD-Adobe: "4.3"
|
||||||
|
*FormatVersion: "4.3"
|
||||||
|
*FileVersion: "2.2"
|
||||||
|
*LanguageVersion: English
|
||||||
|
*LanguageEncoding: ISOLatin1
|
||||||
|
*PSVersion: "(3010.000) 0"
|
||||||
|
*LanguageLevel: "3"
|
||||||
|
*FileSystem: False
|
||||||
|
*PCFileName: "ippeve.ppd"
|
||||||
|
*Manufacturer: "CNLBP712C"
|
||||||
|
*ModelName: "CNLBP712C"
|
||||||
|
*Product: "(CNLBP712C)"
|
||||||
|
*NickName: "CNLBP712C"
|
||||||
|
*ShortNickName: "CNLBP712C"
|
||||||
|
*ColorDevice: True
|
||||||
|
*cupsVersion: 2.2
|
||||||
|
*cupsSNMPSupplies: False
|
||||||
|
*cupsLanguages: "en"
|
||||||
|
*cupsFilter2: "image/jpeg image/jpeg 0 -"
|
||||||
|
*cupsFilter2: "application/vnd.cups-pdf application/pdf 10 -"
|
||||||
|
*cupsFilter2: "image/urf image/urf 100 -"
|
||||||
|
*OpenUI *PageSize: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *PageSize
|
||||||
|
*DefaultPageSize: A4
|
||||||
|
*PageSize A4: "<</PageSize[595.275590551181 841.889763779528]>>setpagedevice"
|
||||||
|
*PageSize A5: "<</PageSize[419.527559055118 595.275590551181]>>setpagedevice"
|
||||||
|
*PageSize A6: "<</PageSize[297.637795275591 419.527559055118]>>setpagedevice"
|
||||||
|
*PageSize B5: "<</PageSize[515.905511811024 728.503937007874]>>setpagedevice"
|
||||||
|
*PageSize Executive: "<</PageSize[522 756]>>setpagedevice"
|
||||||
|
*PageSize Letter: "<</PageSize[612 792]>>setpagedevice"
|
||||||
|
*PageSize Legal: "<</PageSize[612 1008]>>setpagedevice"
|
||||||
|
*PageSize Statement: "<</PageSize[396 612]>>setpagedevice"
|
||||||
|
*PageSize FanFoldGermanLegal: "<</PageSize[612 936]>>setpagedevice"
|
||||||
|
*PageSize 3x5: "<</PageSize[216 360]>>setpagedevice"
|
||||||
|
*PageSize Postcard: "<</PageSize[283.464566929134 419.527559055118]>>setpagedevice"
|
||||||
|
*PageSize DoublePostcardRotated: "<</PageSize[419.527559055118 566.929133858268]>>setpagedevice"
|
||||||
|
*PageSize 200x296mm: "<</PageSize[566.929133858268 839.055118110236]>>setpagedevice"
|
||||||
|
*PageSize EnvC5: "<</PageSize[459.212598425197 649.133858267717]>>setpagedevice"
|
||||||
|
*PageSize Env10: "<</PageSize[296.985826771654 684]>>setpagedevice"
|
||||||
|
*PageSize EnvMonarch: "<</PageSize[278.985826771654 540]>>setpagedevice"
|
||||||
|
*PageSize EnvDL: "<</PageSize[311.811023622047 623.622047244094]>>setpagedevice"
|
||||||
|
*PageSize EnvChou3: "<</PageSize[340.157480314961 666.141732283465]>>setpagedevice"
|
||||||
|
*PageSize 198x275mm: "<</PageSize[561.259842519685 779.527559055118]>>setpagedevice"
|
||||||
|
*CloseUI: *PageSize
|
||||||
|
*OpenUI *PageRegion: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *PageRegion
|
||||||
|
*DefaultPageRegion: A4
|
||||||
|
*PageRegion A4: "<</PageSize[595.275590551181 841.889763779528]>>setpagedevice"
|
||||||
|
*PageRegion A5: "<</PageSize[419.527559055118 595.275590551181]>>setpagedevice"
|
||||||
|
*PageRegion A6: "<</PageSize[297.637795275591 419.527559055118]>>setpagedevice"
|
||||||
|
*PageRegion B5: "<</PageSize[515.905511811024 728.503937007874]>>setpagedevice"
|
||||||
|
*PageRegion Executive: "<</PageSize[522 756]>>setpagedevice"
|
||||||
|
*PageRegion Letter: "<</PageSize[612 792]>>setpagedevice"
|
||||||
|
*PageRegion Legal: "<</PageSize[612 1008]>>setpagedevice"
|
||||||
|
*PageRegion Statement: "<</PageSize[396 612]>>setpagedevice"
|
||||||
|
*PageRegion FanFoldGermanLegal: "<</PageSize[612 936]>>setpagedevice"
|
||||||
|
*PageRegion 3x5: "<</PageSize[216 360]>>setpagedevice"
|
||||||
|
*PageRegion Postcard: "<</PageSize[283.464566929134 419.527559055118]>>setpagedevice"
|
||||||
|
*PageRegion DoublePostcardRotated: "<</PageSize[419.527559055118 566.929133858268]>>setpagedevice"
|
||||||
|
*PageRegion 200x296mm: "<</PageSize[566.929133858268 839.055118110236]>>setpagedevice"
|
||||||
|
*PageRegion EnvC5: "<</PageSize[459.212598425197 649.133858267717]>>setpagedevice"
|
||||||
|
*PageRegion Env10: "<</PageSize[296.985826771654 684]>>setpagedevice"
|
||||||
|
*PageRegion EnvMonarch: "<</PageSize[278.985826771654 540]>>setpagedevice"
|
||||||
|
*PageRegion EnvDL: "<</PageSize[311.811023622047 623.622047244094]>>setpagedevice"
|
||||||
|
*PageRegion EnvChou3: "<</PageSize[340.157480314961 666.141732283465]>>setpagedevice"
|
||||||
|
*PageRegion 198x275mm: "<</PageSize[561.259842519685 779.527559055118]>>setpagedevice"
|
||||||
|
*CloseUI: *PageRegion
|
||||||
|
*DefaultImageableArea: A4
|
||||||
|
*DefaultPaperDimension: A4
|
||||||
|
*ImageableArea A4: "14.173228346457 14.173228346457 581.102362204724 827.716535433071"
|
||||||
|
*PaperDimension A4: "595.275590551181 841.889763779528"
|
||||||
|
*ImageableArea A5: "14.173228346457 14.173228346457 405.354330708661 581.102362204724"
|
||||||
|
*PaperDimension A5: "419.527559055118 595.275590551181"
|
||||||
|
*ImageableArea A6: "14.173228346457 14.173228346457 283.464566929134 405.354330708661"
|
||||||
|
*PaperDimension A6: "297.637795275591 419.527559055118"
|
||||||
|
*ImageableArea B5: "14.173228346457 14.173228346457 501.732283464567 714.330708661417"
|
||||||
|
*PaperDimension B5: "515.905511811024 728.503937007874"
|
||||||
|
*ImageableArea Executive: "14.173228346457 14.173228346457 507.826771653543 741.826771653543"
|
||||||
|
*PaperDimension Executive: "522 756"
|
||||||
|
*ImageableArea Letter: "14.173228346457 14.173228346457 597.826771653543 777.826771653543"
|
||||||
|
*PaperDimension Letter: "612 792"
|
||||||
|
*ImageableArea Legal: "14.173228346457 14.173228346457 597.826771653543 993.826771653543"
|
||||||
|
*PaperDimension Legal: "612 1008"
|
||||||
|
*ImageableArea Statement: "14.173228346457 14.173228346457 381.826771653543 597.826771653543"
|
||||||
|
*PaperDimension Statement: "396 612"
|
||||||
|
*ImageableArea FanFoldGermanLegal: "14.173228346457 14.173228346457 597.826771653543 921.826771653543"
|
||||||
|
*PaperDimension FanFoldGermanLegal: "612 936"
|
||||||
|
*ImageableArea 3x5: "14.173228346457 14.173228346457 201.826771653543 345.826771653543"
|
||||||
|
*PaperDimension 3x5: "216 360"
|
||||||
|
*ImageableArea Postcard: "14.173228346457 14.173228346457 269.291338582677 405.354330708661"
|
||||||
|
*PaperDimension Postcard: "283.464566929134 419.527559055118"
|
||||||
|
*ImageableArea DoublePostcardRotated: "14.173228346457 14.173228346457 405.354330708661 552.755905511811"
|
||||||
|
*PaperDimension DoublePostcardRotated: "419.527559055118 566.929133858268"
|
||||||
|
*ImageableArea 200x296mm: "14.173228346457 14.173228346457 552.755905511811 824.88188976378"
|
||||||
|
*PaperDimension 200x296mm: "566.929133858268 839.055118110236"
|
||||||
|
*ImageableArea EnvC5: "14.173228346457 14.173228346457 445.03937007874 634.96062992126"
|
||||||
|
*PaperDimension EnvC5: "459.212598425197 649.133858267717"
|
||||||
|
*ImageableArea Env10: "14.173228346457 14.173228346457 282.812598425197 669.826771653543"
|
||||||
|
*PaperDimension Env10: "296.985826771654 684"
|
||||||
|
*ImageableArea EnvMonarch: "14.173228346457 14.173228346457 264.812598425197 525.826771653543"
|
||||||
|
*PaperDimension EnvMonarch: "278.985826771654 540"
|
||||||
|
*ImageableArea EnvDL: "14.173228346457 14.173228346457 297.637795275591 609.448818897638"
|
||||||
|
*PaperDimension EnvDL: "311.811023622047 623.622047244094"
|
||||||
|
*ImageableArea EnvChou3: "14.173228346457 14.173228346457 325.984251968504 651.968503937008"
|
||||||
|
*PaperDimension EnvChou3: "340.157480314961 666.141732283465"
|
||||||
|
*ImageableArea 198x275mm: "14.173228346457 14.173228346457 547.086614173228 765.354330708661"
|
||||||
|
*PaperDimension 198x275mm: "561.259842519685 779.527559055118"
|
||||||
|
*OpenUI *InputSlot: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *InputSlot
|
||||||
|
*DefaultInputSlot: ByPassTray
|
||||||
|
*InputSlot Auto/Automatic: "<</MediaPosition 0>>setpagedevice"
|
||||||
|
*InputSlot ByPassTray/Mehrzweck: "<</MediaPosition 19>>setpagedevice"
|
||||||
|
*InputSlot Tray1/Fach 1: "<</MediaPosition 20>>setpagedevice"
|
||||||
|
*CloseUI: *InputSlot
|
||||||
|
*OpenUI *ColorModel/Farbmodus: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *ColorModel
|
||||||
|
*ColorModel RGB/Farbe: "<</cupsColorSpace 19/cupsBitsPerColor 8/cupsColorOrder 0/cupsCompression 0>>setpagedevice"
|
||||||
|
*DefaultColorModel: RGB
|
||||||
|
*CloseUI: *ColorModel
|
||||||
|
*OpenUI *Duplex/Doppelseitig drucken: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *Duplex
|
||||||
|
*DefaultDuplex: None
|
||||||
|
*Duplex None/Aus (Einseitig): "<</Duplex false>>setpagedevice"
|
||||||
|
*Duplex DuplexNoTumble/Lange Kante (Hochformat): "<</Duplex true/Tumble false>>setpagedevice"
|
||||||
|
*Duplex DuplexTumble/Kurze Kante (Querformat): "<</Duplex true/Tumble true>>setpagedevice"
|
||||||
|
*CloseUI: *Duplex
|
||||||
|
*cupsBackSide: Normal
|
||||||
|
*DefaultResolution: 300dpi
|
||||||
|
*OpenUI *cupsPrintQuality/Druckqualität: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *cupsPrintQuality
|
||||||
|
*DefaultcupsPrintQuality: Normal
|
||||||
|
*cupsPrintQuality Draft/Entwurf: "<</HWResolution[300 150]>>setpagedevice"
|
||||||
|
*cupsPrintQuality Normal/Normal: "<</HWResolution[300 300]>>setpagedevice"
|
||||||
|
*CloseUI: *cupsPrintQuality
|
BIN
files/FrutigerLTStd-Black.otf
Executable file
BIN
files/FrutigerLTStd-Black.otf
Executable file
Binary file not shown.
BIN
files/FrutigerLTStd-BlackCn.otf
Executable file
BIN
files/FrutigerLTStd-BlackCn.otf
Executable file
Binary file not shown.
BIN
files/FrutigerLTStd-BlackItalic.otf
Executable file
BIN
files/FrutigerLTStd-BlackItalic.otf
Executable file
Binary file not shown.
BIN
files/FrutigerLTStd-Bold.otf
Executable file
BIN
files/FrutigerLTStd-Bold.otf
Executable file
Binary file not shown.
BIN
files/FrutigerLTStd-BoldCn.otf
Executable file
BIN
files/FrutigerLTStd-BoldCn.otf
Executable file
Binary file not shown.
BIN
files/FrutigerLTStd-BoldItalic.otf
Executable file
BIN
files/FrutigerLTStd-BoldItalic.otf
Executable file
Binary file not shown.
BIN
files/FrutigerLTStd-Cn.otf
Executable file
BIN
files/FrutigerLTStd-Cn.otf
Executable file
Binary file not shown.
BIN
files/FrutigerLTStd-ExtraBlackCn.otf
Executable file
BIN
files/FrutigerLTStd-ExtraBlackCn.otf
Executable file
Binary file not shown.
BIN
files/FrutigerLTStd-Italic.otf
Executable file
BIN
files/FrutigerLTStd-Italic.otf
Executable file
Binary file not shown.
BIN
files/FrutigerLTStd-Light.otf
Executable file
BIN
files/FrutigerLTStd-Light.otf
Executable file
Binary file not shown.
BIN
files/FrutigerLTStd-LightCn.otf
Executable file
BIN
files/FrutigerLTStd-LightCn.otf
Executable file
Binary file not shown.
BIN
files/FrutigerLTStd-LightItalic.otf
Executable file
BIN
files/FrutigerLTStd-LightItalic.otf
Executable file
Binary file not shown.
BIN
files/FrutigerLTStd-Roman.otf
Executable file
BIN
files/FrutigerLTStd-Roman.otf
Executable file
Binary file not shown.
BIN
files/FrutigerLTStd-UltraBlack.otf
Executable file
BIN
files/FrutigerLTStd-UltraBlack.otf
Executable file
Binary file not shown.
224
files/UTAX_TA_3555i.ppd
Executable file
224
files/UTAX_TA_3555i.ppd
Executable file
@ -0,0 +1,224 @@
|
|||||||
|
*PPD-Adobe: "4.3"
|
||||||
|
*FormatVersion: "4.3"
|
||||||
|
*FileVersion: "2.2"
|
||||||
|
*LanguageVersion: English
|
||||||
|
*LanguageEncoding: ISOLatin1
|
||||||
|
*PSVersion: "(3010.000) 0"
|
||||||
|
*LanguageLevel: "3"
|
||||||
|
*FileSystem: False
|
||||||
|
*PCFileName: "ippeve.ppd"
|
||||||
|
*Manufacturer: "3555i"
|
||||||
|
*ModelName: "3555i"
|
||||||
|
*Product: "(3555i)"
|
||||||
|
*NickName: "3555i"
|
||||||
|
*ShortNickName: "3555i"
|
||||||
|
*ColorDevice: False
|
||||||
|
*cupsVersion: 2.2
|
||||||
|
*cupsSNMPSupplies: False
|
||||||
|
*cupsLanguages: "en"
|
||||||
|
*cupsFilter2: "image/jpeg image/jpeg 0 -"
|
||||||
|
*cupsFilter2: "application/vnd.cups-pdf application/pdf 10 -"
|
||||||
|
*cupsFilter2: "image/urf image/urf 100 -"
|
||||||
|
*OpenUI *PageSize: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *PageSize
|
||||||
|
*DefaultPageSize: A4
|
||||||
|
*PageSize A3: "<</PageSize[841.889763779528 1190.551181102362]>>setpagedevice"
|
||||||
|
*PageSize B4: "<</PageSize[728.503937007874 1031.811023622047]>>setpagedevice"
|
||||||
|
*PageSize Tabloid: "<</PageSize[792 1224]>>setpagedevice"
|
||||||
|
*PageSize roc8k: "<</PageSize[774 1116]>>setpagedevice"
|
||||||
|
*PageSize EnvC4: "<</PageSize[649.133858267717 918.425196850394]>>setpagedevice"
|
||||||
|
*PageSize ARCHB: "<</PageSize[864 1296]>>setpagedevice"
|
||||||
|
*PageSize A4: "<</PageSize[595.275590551181 841.889763779528]>>setpagedevice"
|
||||||
|
*PageSize A5: "<</PageSize[419.527559055118 595.275590551181]>>setpagedevice"
|
||||||
|
*PageSize A6: "<</PageSize[297.637795275591 419.527559055118]>>setpagedevice"
|
||||||
|
*PageSize ISOB5: "<</PageSize[498.897637795276 708.661417322835]>>setpagedevice"
|
||||||
|
*PageSize Legal: "<</PageSize[612 1008]>>setpagedevice"
|
||||||
|
*PageSize Letter: "<</PageSize[612 792]>>setpagedevice"
|
||||||
|
*PageSize Executive: "<</PageSize[522 756]>>setpagedevice"
|
||||||
|
*PageSize Statement: "<</PageSize[396 612]>>setpagedevice"
|
||||||
|
*PageSize EnvC5: "<</PageSize[459.212598425197 649.133858267717]>>setpagedevice"
|
||||||
|
*PageSize EnvC6: "<</PageSize[323.149606299213 459.212598425197]>>setpagedevice"
|
||||||
|
*PageSize EnvDL: "<</PageSize[311.811023622047 623.622047244094]>>setpagedevice"
|
||||||
|
*PageSize EnvMonarch: "<</PageSize[278.985826771654 540]>>setpagedevice"
|
||||||
|
*PageSize B5: "<</PageSize[515.905511811024 728.503937007874]>>setpagedevice"
|
||||||
|
*PageSize B6: "<</PageSize[362.834645669291 515.905511811024]>>setpagedevice"
|
||||||
|
*PageSize EnvYou4: "<</PageSize[297.637795275591 666.141732283465]>>setpagedevice"
|
||||||
|
*PageSize Postcard: "<</PageSize[283.464566929134 419.527559055118]>>setpagedevice"
|
||||||
|
*PageSize DoublePostcardRotated: "<</PageSize[419.527559055118 566.929133858268]>>setpagedevice"
|
||||||
|
*PageSize roc16k: "<</PageSize[558 774]>>setpagedevice"
|
||||||
|
*PageSize FanFoldGermanLegal: "<</PageSize[612 936]>>setpagedevice"
|
||||||
|
*PageSize Env10: "<</PageSize[296.985826771654 684]>>setpagedevice"
|
||||||
|
*PageSize Env9: "<</PageSize[278.985826771654 638.985826771654]>>setpagedevice"
|
||||||
|
*PageSize EnvPersonal: "<</PageSize[260.985826771654 468]>>setpagedevice"
|
||||||
|
*PageSize Folio: "<</PageSize[595.275590551181 935.433070866142]>>setpagedevice"
|
||||||
|
*CloseUI: *PageSize
|
||||||
|
*OpenUI *PageRegion: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *PageRegion
|
||||||
|
*DefaultPageRegion: A4
|
||||||
|
*PageRegion A3: "<</PageSize[841.889763779528 1190.551181102362]>>setpagedevice"
|
||||||
|
*PageRegion B4: "<</PageSize[728.503937007874 1031.811023622047]>>setpagedevice"
|
||||||
|
*PageRegion Tabloid: "<</PageSize[792 1224]>>setpagedevice"
|
||||||
|
*PageRegion roc8k: "<</PageSize[774 1116]>>setpagedevice"
|
||||||
|
*PageRegion EnvC4: "<</PageSize[649.133858267717 918.425196850394]>>setpagedevice"
|
||||||
|
*PageRegion ARCHB: "<</PageSize[864 1296]>>setpagedevice"
|
||||||
|
*PageRegion A4: "<</PageSize[595.275590551181 841.889763779528]>>setpagedevice"
|
||||||
|
*PageRegion A5: "<</PageSize[419.527559055118 595.275590551181]>>setpagedevice"
|
||||||
|
*PageRegion A6: "<</PageSize[297.637795275591 419.527559055118]>>setpagedevice"
|
||||||
|
*PageRegion ISOB5: "<</PageSize[498.897637795276 708.661417322835]>>setpagedevice"
|
||||||
|
*PageRegion Legal: "<</PageSize[612 1008]>>setpagedevice"
|
||||||
|
*PageRegion Letter: "<</PageSize[612 792]>>setpagedevice"
|
||||||
|
*PageRegion Executive: "<</PageSize[522 756]>>setpagedevice"
|
||||||
|
*PageRegion Statement: "<</PageSize[396 612]>>setpagedevice"
|
||||||
|
*PageRegion EnvC5: "<</PageSize[459.212598425197 649.133858267717]>>setpagedevice"
|
||||||
|
*PageRegion EnvC6: "<</PageSize[323.149606299213 459.212598425197]>>setpagedevice"
|
||||||
|
*PageRegion EnvDL: "<</PageSize[311.811023622047 623.622047244094]>>setpagedevice"
|
||||||
|
*PageRegion EnvMonarch: "<</PageSize[278.985826771654 540]>>setpagedevice"
|
||||||
|
*PageRegion B5: "<</PageSize[515.905511811024 728.503937007874]>>setpagedevice"
|
||||||
|
*PageRegion B6: "<</PageSize[362.834645669291 515.905511811024]>>setpagedevice"
|
||||||
|
*PageRegion EnvYou4: "<</PageSize[297.637795275591 666.141732283465]>>setpagedevice"
|
||||||
|
*PageRegion Postcard: "<</PageSize[283.464566929134 419.527559055118]>>setpagedevice"
|
||||||
|
*PageRegion DoublePostcardRotated: "<</PageSize[419.527559055118 566.929133858268]>>setpagedevice"
|
||||||
|
*PageRegion roc16k: "<</PageSize[558 774]>>setpagedevice"
|
||||||
|
*PageRegion FanFoldGermanLegal: "<</PageSize[612 936]>>setpagedevice"
|
||||||
|
*PageRegion Env10: "<</PageSize[296.985826771654 684]>>setpagedevice"
|
||||||
|
*PageRegion Env9: "<</PageSize[278.985826771654 638.985826771654]>>setpagedevice"
|
||||||
|
*PageRegion EnvPersonal: "<</PageSize[260.985826771654 468]>>setpagedevice"
|
||||||
|
*PageRegion Folio: "<</PageSize[595.275590551181 935.433070866142]>>setpagedevice"
|
||||||
|
*CloseUI: *PageRegion
|
||||||
|
*DefaultImageableArea: A4
|
||||||
|
*DefaultPaperDimension: A4
|
||||||
|
*ImageableArea A3: "11.338582677165 11.338582677165 830.551181102362 1179.212598425197"
|
||||||
|
*PaperDimension A3: "841.889763779528 1190.551181102362"
|
||||||
|
*ImageableArea B4: "11.338582677165 11.338582677165 717.165354330709 1020.472440944882"
|
||||||
|
*PaperDimension B4: "728.503937007874 1031.811023622047"
|
||||||
|
*ImageableArea Tabloid: "11.338582677165 11.338582677165 780.661417322835 1212.661417322835"
|
||||||
|
*PaperDimension Tabloid: "792 1224"
|
||||||
|
*ImageableArea roc8k: "11.338582677165 11.338582677165 762.661417322835 1104.661417322835"
|
||||||
|
*PaperDimension roc8k: "774 1116"
|
||||||
|
*ImageableArea EnvC4: "11.338582677165 11.338582677165 637.795275590551 907.086614173228"
|
||||||
|
*PaperDimension EnvC4: "649.133858267717 918.425196850394"
|
||||||
|
*ImageableArea ARCHB: "11.338582677165 11.338582677165 852.661417322835 1284.661417322835"
|
||||||
|
*PaperDimension ARCHB: "864 1296"
|
||||||
|
*ImageableArea A4: "11.338582677165 11.338582677165 583.937007874016 830.551181102362"
|
||||||
|
*PaperDimension A4: "595.275590551181 841.889763779528"
|
||||||
|
*ImageableArea A5: "11.338582677165 11.338582677165 408.188976377953 583.937007874016"
|
||||||
|
*PaperDimension A5: "419.527559055118 595.275590551181"
|
||||||
|
*ImageableArea A6: "11.338582677165 11.338582677165 286.299212598425 408.188976377953"
|
||||||
|
*PaperDimension A6: "297.637795275591 419.527559055118"
|
||||||
|
*ImageableArea ISOB5: "11.338582677165 11.338582677165 487.55905511811 697.322834645669"
|
||||||
|
*PaperDimension ISOB5: "498.897637795276 708.661417322835"
|
||||||
|
*ImageableArea Legal: "11.338582677165 11.338582677165 600.661417322835 996.661417322835"
|
||||||
|
*PaperDimension Legal: "612 1008"
|
||||||
|
*ImageableArea Letter: "11.338582677165 11.338582677165 600.661417322835 780.661417322835"
|
||||||
|
*PaperDimension Letter: "612 792"
|
||||||
|
*ImageableArea Executive: "11.338582677165 11.338582677165 510.661417322835 744.661417322835"
|
||||||
|
*PaperDimension Executive: "522 756"
|
||||||
|
*ImageableArea Statement: "11.338582677165 11.338582677165 384.661417322835 600.661417322835"
|
||||||
|
*PaperDimension Statement: "396 612"
|
||||||
|
*ImageableArea EnvC5: "11.338582677165 11.338582677165 447.874015748031 637.795275590551"
|
||||||
|
*PaperDimension EnvC5: "459.212598425197 649.133858267717"
|
||||||
|
*ImageableArea EnvC6: "11.338582677165 11.338582677165 311.811023622047 447.874015748031"
|
||||||
|
*PaperDimension EnvC6: "323.149606299213 459.212598425197"
|
||||||
|
*ImageableArea EnvDL: "11.338582677165 11.338582677165 300.472440944882 612.283464566929"
|
||||||
|
*PaperDimension EnvDL: "311.811023622047 623.622047244094"
|
||||||
|
*ImageableArea EnvMonarch: "11.338582677165 11.338582677165 267.647244094488 528.661417322835"
|
||||||
|
*PaperDimension EnvMonarch: "278.985826771654 540"
|
||||||
|
*ImageableArea B5: "11.338582677165 11.338582677165 504.566929133858 717.165354330709"
|
||||||
|
*PaperDimension B5: "515.905511811024 728.503937007874"
|
||||||
|
*ImageableArea B6: "11.338582677165 11.338582677165 351.496062992126 504.566929133858"
|
||||||
|
*PaperDimension B6: "362.834645669291 515.905511811024"
|
||||||
|
*ImageableArea EnvYou4: "11.338582677165 11.338582677165 286.299212598425 654.803149606299"
|
||||||
|
*PaperDimension EnvYou4: "297.637795275591 666.141732283465"
|
||||||
|
*ImageableArea Postcard: "11.338582677165 11.338582677165 272.125984251969 408.188976377953"
|
||||||
|
*PaperDimension Postcard: "283.464566929134 419.527559055118"
|
||||||
|
*ImageableArea DoublePostcardRotated: "11.338582677165 11.338582677165 408.188976377953 555.590551181102"
|
||||||
|
*PaperDimension DoublePostcardRotated: "419.527559055118 566.929133858268"
|
||||||
|
*ImageableArea roc16k: "11.338582677165 11.338582677165 546.661417322835 762.661417322835"
|
||||||
|
*PaperDimension roc16k: "558 774"
|
||||||
|
*ImageableArea FanFoldGermanLegal: "11.338582677165 11.338582677165 600.661417322835 924.661417322835"
|
||||||
|
*PaperDimension FanFoldGermanLegal: "612 936"
|
||||||
|
*ImageableArea Env10: "11.338582677165 11.338582677165 285.647244094488 672.661417322835"
|
||||||
|
*PaperDimension Env10: "296.985826771654 684"
|
||||||
|
*ImageableArea Env9: "11.338582677165 11.338582677165 267.647244094488 627.647244094488"
|
||||||
|
*PaperDimension Env9: "278.985826771654 638.985826771654"
|
||||||
|
*ImageableArea EnvPersonal: "11.338582677165 11.338582677165 249.647244094488 456.661417322835"
|
||||||
|
*PaperDimension EnvPersonal: "260.985826771654 468"
|
||||||
|
*ImageableArea Folio: "11.338582677165 11.338582677165 583.937007874016 924.094488188976"
|
||||||
|
*PaperDimension Folio: "595.275590551181 935.433070866142"
|
||||||
|
*OpenUI *InputSlot: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *InputSlot
|
||||||
|
*DefaultInputSlot: Tray1
|
||||||
|
*InputSlot Auto/Automatic: "<</MediaPosition 0>>setpagedevice"
|
||||||
|
*InputSlot ByPassTray/Mehrzweck: "<</MediaPosition 19>>setpagedevice"
|
||||||
|
*InputSlot Tray1/Fach 1: "<</MediaPosition 20>>setpagedevice"
|
||||||
|
*InputSlot Tray2/Fach 2: "<</MediaPosition 21>>setpagedevice"
|
||||||
|
*InputSlot Tray3/Fach 3: "<</MediaPosition 22>>setpagedevice"
|
||||||
|
*InputSlot Tray4/Fach 4: "<</MediaPosition 23>>setpagedevice"
|
||||||
|
*CloseUI: *InputSlot
|
||||||
|
*OpenUI *MediaType: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *MediaType
|
||||||
|
*DefaultMediaType: Stationery
|
||||||
|
*MediaType Auto/Automatic: "<</MediaType(Auto)>>setpagedevice"
|
||||||
|
*MediaType Stationery/Standardpapier: "<</MediaType(Stationery)>>setpagedevice"
|
||||||
|
*MediaType Transparency/Transparenz: "<</MediaType(Transparency)>>setpagedevice"
|
||||||
|
*MediaType Envelope/Umschlag: "<</MediaType(Envelope)>>setpagedevice"
|
||||||
|
*MediaType Labels/Etiketten: "<</MediaType(Labels)>>setpagedevice"
|
||||||
|
*MediaType StationeryCoated/Beschichtetes Papier: "<</MediaType(StationeryCoated)>>setpagedevice"
|
||||||
|
*MediaType Photographic/Fotopapier: "<</MediaType(Photographic)>>setpagedevice"
|
||||||
|
*MediaType Cardstock/Cardstock: "<</MediaType(Cardstock)>>setpagedevice"
|
||||||
|
*MediaType StationeryLightweight/Lightweight Paper: "<</MediaType(StationeryLightweight)>>setpagedevice"
|
||||||
|
*MediaType StationeryPreprinted/Vorbedrucktes Papier: "<</MediaType(StationeryPreprinted)>>setpagedevice"
|
||||||
|
*MediaType StationeryBond/stationery-bond: "<</MediaType(StationeryBond)>>setpagedevice"
|
||||||
|
*MediaType StationeryColored/stationery-colored: "<</MediaType(StationeryColored)>>setpagedevice"
|
||||||
|
*MediaType StationeryPrepunched/Gelochtes Papier: "<</MediaType(StationeryPrepunched)>>setpagedevice"
|
||||||
|
*MediaType StationeryLetterhead/Briefkopf: "<</MediaType(StationeryLetterhead)>>setpagedevice"
|
||||||
|
*MediaType StationeryHeavyweight/Schweres Papier: "<</MediaType(StationeryHeavyweight)>>setpagedevice"
|
||||||
|
*MediaType StationeryFine/Vellum Paper: "<</MediaType(StationeryFine)>>setpagedevice"
|
||||||
|
*CloseUI: *MediaType
|
||||||
|
*OpenUI *ColorModel/Farbmodus: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *ColorModel
|
||||||
|
*ColorModel Gray/Graustufen: "<</cupsColorSpace 18/cupsBitsPerColor 8/cupsColorOrder 0/cupsCompression 0>>setpagedevice"
|
||||||
|
*DefaultColorModel: Gray
|
||||||
|
*CloseUI: *ColorModel
|
||||||
|
*OpenUI *Duplex/Doppelseitig drucken: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *Duplex
|
||||||
|
*DefaultDuplex: None
|
||||||
|
*Duplex None/Aus (Einseitig): "<</Duplex false>>setpagedevice"
|
||||||
|
*Duplex DuplexNoTumble/Lange Kante (Hochformat): "<</Duplex true/Tumble false>>setpagedevice"
|
||||||
|
*Duplex DuplexTumble/Kurze Kante (Querformat): "<</Duplex true/Tumble true>>setpagedevice"
|
||||||
|
*CloseUI: *Duplex
|
||||||
|
*cupsBackSide: ManualTumble
|
||||||
|
*OpenUI *OutputBin: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *OutputBin
|
||||||
|
*DefaultOutputBin: Left
|
||||||
|
*OutputBin Left/Left Tray: ""
|
||||||
|
*OutputBin Top/Top Tray: ""
|
||||||
|
*CloseUI: *OutputBin
|
||||||
|
*OpenUI *StapleLocation/Heftung: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *StapleLocation
|
||||||
|
*DefaultStapleLocation: None
|
||||||
|
*StapleLocation None/None: ""
|
||||||
|
*StapleLocation staple-top-left/Einfachheftung (Hochformat): ""
|
||||||
|
*cupsIPPFinishings 20/staple-top-left: "*StapleLocation staple-top-left"
|
||||||
|
*StapleLocation staple-bottom-left/Single Staple (Reverse Landscape): ""
|
||||||
|
*cupsIPPFinishings 21/staple-bottom-left: "*StapleLocation staple-bottom-left"
|
||||||
|
*StapleLocation staple-top-right/Einfachheftung (Querformat): ""
|
||||||
|
*cupsIPPFinishings 22/staple-top-right: "*StapleLocation staple-top-right"
|
||||||
|
*StapleLocation staple-bottom-right/Single Staple (Reverse Portrait): ""
|
||||||
|
*cupsIPPFinishings 23/staple-bottom-right: "*StapleLocation staple-bottom-right"
|
||||||
|
*StapleLocation staple-dual-left/Double Staple (Portrait): ""
|
||||||
|
*cupsIPPFinishings 28/staple-dual-left: "*StapleLocation staple-dual-left"
|
||||||
|
*StapleLocation staple-dual-top/Double Staple (Landscape): ""
|
||||||
|
*cupsIPPFinishings 29/staple-dual-top: "*StapleLocation staple-dual-top"
|
||||||
|
*StapleLocation staple-dual-right/Double Staple (Reverse Portrait): ""
|
||||||
|
*cupsIPPFinishings 30/staple-dual-right: "*StapleLocation staple-dual-right"
|
||||||
|
*StapleLocation staple-dual-bottom/Double Staple (Reverse Landscape): ""
|
||||||
|
*cupsIPPFinishings 31/staple-dual-bottom: "*StapleLocation staple-dual-bottom"
|
||||||
|
*CloseUI: *StapleLocation
|
||||||
|
*DefaultResolution: 600dpi
|
||||||
|
*OpenUI *cupsPrintQuality/Druckqualität: PickOne
|
||||||
|
*OrderDependency: 10 AnySetup *cupsPrintQuality
|
||||||
|
*DefaultcupsPrintQuality: Normal
|
||||||
|
*cupsPrintQuality Draft/Entwurf: "<</HWResolution[600 300]>>setpagedevice"
|
||||||
|
*cupsPrintQuality Normal/Normal: "<</HWResolution[600 600]>>setpagedevice"
|
||||||
|
*CloseUI: *cupsPrintQuality
|
16
files/install.sh
Executable file
16
files/install.sh
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
if [ ! -d /usr/share/cups/model ]; then
|
||||||
|
sudo mkdir /usr/share/cups/model
|
||||||
|
fi
|
||||||
|
if [ ! -d /usr/share/cups/model/UTAX_TA ]; then
|
||||||
|
sudo mkdir /usr/share/cups/model/UTAX_TA
|
||||||
|
fi
|
||||||
|
sudo cp CLP3550.PPD /usr/share/cups/model/UTAX_TA/CLP3550.PPD
|
||||||
|
sudo cp kyofilter_B /usr/lib/cups/filter/kyofilter_B
|
||||||
|
sudo chmod 555 /usr/lib/cups/filter/kyofilter_B
|
||||||
|
if [ -f /usr/lib/cups/filter/kyofilter_B ] &&
|
||||||
|
[ -f /usr/share/cups/model/UTAX_TA/CLP3550.PPD ]; then
|
||||||
|
echo "Installation completed"
|
||||||
|
else
|
||||||
|
echo "Installation failed"
|
||||||
|
fi
|
BIN
files/kyofilter_B
Executable file
BIN
files/kyofilter_B
Executable file
Binary file not shown.
4
files/lightdm.conf
Executable file
4
files/lightdm.conf
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
[SeatDefaults]
|
||||||
|
user-session=ubuntu
|
||||||
|
allow-guest=false
|
||||||
|
greeter-hide-users=true
|
6
files/modules
Executable file
6
files/modules
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
mii
|
||||||
|
usbnet
|
||||||
|
cdc_ether
|
||||||
|
r8152
|
||||||
|
ax88179_178a
|
||||||
|
e1000e
|
2
files/user
Executable file
2
files/user
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
user-db:user
|
||||||
|
system-db:local
|
BIN
files/veracrypt-1.24-Update3-Ubuntu-18.04-amd64.deb
Executable file
BIN
files/veracrypt-1.24-Update3-Ubuntu-18.04-amd64.deb
Executable file
Binary file not shown.
30
gnome.yml
Normal file
30
gnome.yml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: create new user profile
|
||||||
|
copy:
|
||||||
|
src: user
|
||||||
|
dest: /etc/dconf/profile/user
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
|
||||||
|
- name: create local config dir
|
||||||
|
file:
|
||||||
|
path: /etc/dconf/db/local.d
|
||||||
|
state: directory
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0755
|
||||||
|
|
||||||
|
- name: configure gnome defaults
|
||||||
|
copy:
|
||||||
|
src: "{{ item }}"
|
||||||
|
dest: /etc/dconf/db/local.d/
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
with_items:
|
||||||
|
- 00-favorite-apps
|
||||||
|
- 01-recursive-search
|
||||||
|
- 02-energy
|
||||||
|
notify: dconf update
|
18
hosts
Normal file
18
hosts
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
[all]
|
||||||
|
pc101
|
||||||
|
pc102
|
||||||
|
pc103
|
||||||
|
pc104
|
||||||
|
pc105
|
||||||
|
# pc106 noch nicht umgestellt
|
||||||
|
pc107
|
||||||
|
pc108
|
||||||
|
pc109
|
||||||
|
pc110
|
||||||
|
pc111
|
||||||
|
pc112
|
||||||
|
pc113
|
||||||
|
pc114
|
||||||
|
pc115
|
||||||
|
pc116 ansible_host=192.168.112.138
|
||||||
|
pc117 ansible_host=192.168.112.127
|
31
initramfs.yml
Normal file
31
initramfs.yml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: install dropbear-initramfs
|
||||||
|
apt:
|
||||||
|
name: "{{ physicals_packages_dropbear }}"
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: install admin ssh keys into initramfs
|
||||||
|
authorized_key:
|
||||||
|
user: root
|
||||||
|
key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCvAISe8/nJhWT1CAe2uBUPqfLBxe44HhnSSWNbqh+97nYnMr+wUj7hj/uGswsrd0mkYAnXfWsCEQJdqwtRDRiq7WVNfG3sHnFasb7MB1+Ti04cPqWKhEtxhpJRy4GKoIs3cX/1SI+GB8r6QuxN4NnjOEi3zyRBE/abQGvRe+fuq2bDI4pU4Ldy0isEG12MgUOSyq69ED3uOGpfZmVqaq5Z+j9m8k49PTz5lcWcJ0M7gCqnVCaN7ONoptdUJTI7EjnnpoQvgfGBNgBBx4zBWTf10UUHT+GYD0Ok6che7TTv1ImQyYmIvMlc4sV3yUgHrTWc7SwpzYBXCzqhrWZyDmV chris@sol"
|
||||||
|
path: /etc/dropbear-initramfs/authorized_keys
|
||||||
|
notify: update initramfs
|
||||||
|
|
||||||
|
- name: add modules for initramfs
|
||||||
|
copy:
|
||||||
|
src: modules
|
||||||
|
dest: /etc/initramfs-tools/modules
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
notify: update initramfs
|
||||||
|
|
||||||
|
- name: configure initramfs network options in kernel boot parameters
|
||||||
|
lineinfile:
|
||||||
|
backrefs: yes
|
||||||
|
dest: /etc/default/grub
|
||||||
|
regexp: '^GRUB_CMDLINE_LINUX_DEFAULT='
|
||||||
|
line: 'GRUB_CMDLINE_LINUX_DEFAULT="ip={{ kernel_network_params.address }}::{{ kernel_network_params.gateway }}:{{ kernel_network_params.netmask }}::{{ kernel_network_params.device }}:{{ kernel_network_params.autoconf }} quiet apparmor=1 security=apparmor"'
|
||||||
|
when: kernel_network_params|d()
|
||||||
|
notify: update grub
|
233
playbook.yml
Normal file
233
playbook.yml
Normal file
@ -0,0 +1,233 @@
|
|||||||
|
---
|
||||||
|
- hosts: all
|
||||||
|
become: true
|
||||||
|
vars:
|
||||||
|
apt_packages:
|
||||||
|
- aptitude
|
||||||
|
- arj
|
||||||
|
- cifs-utils
|
||||||
|
- chromium-browser
|
||||||
|
- curl
|
||||||
|
- ethtool
|
||||||
|
- exfat-fuse
|
||||||
|
- exfat-utils
|
||||||
|
- firefox-locale-de
|
||||||
|
- gimp
|
||||||
|
- git
|
||||||
|
- gnupg2
|
||||||
|
- grsync
|
||||||
|
- haveged
|
||||||
|
- httrack
|
||||||
|
- keepassxc
|
||||||
|
- lightdm
|
||||||
|
- mc
|
||||||
|
- net-tools
|
||||||
|
- nextcloud-client
|
||||||
|
- ntpdate
|
||||||
|
- pdfshuffler
|
||||||
|
- smb4k
|
||||||
|
- synaptic
|
||||||
|
- thunderbird-locale-de
|
||||||
|
- vim
|
||||||
|
- vim-doc
|
||||||
|
- vlc
|
||||||
|
- x11vnc
|
||||||
|
- xz-utils
|
||||||
|
apt_repositories:
|
||||||
|
- repo: ppa:nextcloud-devs/client
|
||||||
|
packages_absent:
|
||||||
|
- gnome-initial-setup
|
||||||
|
- ubuntu-web-launchers
|
||||||
|
- update-notifier
|
||||||
|
debs_present:
|
||||||
|
- CQue_v4.0.5_Linux_64_DE.deb
|
||||||
|
- veracrypt-1.24-Update3-Ubuntu-18.04-amd64.deb
|
||||||
|
physicals_packages_dropbear:
|
||||||
|
- dropbear-initramfs
|
||||||
|
- kbd
|
||||||
|
admin_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5IhVprsvVOcFPbZzD9xR0nCjZ/9qVG6RhLJ7QBSts81nRvLwnmvcMBHSf5Rfaigey7Ff5dLHfJnxRE0KDATn6n2yd/5mXpn2GAA8hDVfhdsmsb5U7bROjZNr8MmIUrP7c3msUGx1FtvzhwxtyvIWOFQpWx+W5biBa6hFjIxT1pkUJqe6fclp7xbGYKZiqZRBS4qKG5CpKnisuOYDsqYPND+OkU+PShoxGVzp1JywIVze7qeKv6GyYbRA9SP9Np+5Mit6B21Io4zOI81c2Rz6sPX7mwEAQEs7iCm2hzG8qJws45Lb4ERqDkVEVhGNUyHjHgGebS1sZx1mLExdurXlPm1l/EamkncDFDCutHXtLP7lsFFiym7fKUjSEgiiLmyu5Xm+mwZvesKa1FYNaeiFWfYZpCJrNzIk+ffs+mgg3kmL4Sd4Ooy7jXPX+WJe5Xyh1KLU/+Wj2TVrhN+LbmupYAti/Wgd3DA1v601svmG82aLmyJRtKC0rGMePH3kDbtqU72kYpzI8mXERe1TIQ00Z77kQBR/7BF/9y5/0YmYDcXt1wNCoSie+mzz3xYcEdLAc7T+DhYpd4M6VgWnuz/exzRzhQwoSdEKkEED8CpEoBrEWEiMdrlElGmlkVomLU7P9i9j1rshX/pAq0asnqeSoPdC3vNbU3keiJQnhIHECvw== christoph"
|
||||||
|
fonts_shared:
|
||||||
|
- type: 'opentype'
|
||||||
|
src: FrutigerLTStd-BlackCn.otf
|
||||||
|
dest: frutiger/FrutigerLTStd-BlackCn.otf
|
||||||
|
- type: 'opentype'
|
||||||
|
src: FrutigerLTStd-BlackItalic.otf
|
||||||
|
dest: frutiger/FrutigerLTStd-BlackItalic.otf
|
||||||
|
- type: 'opentype'
|
||||||
|
src: FrutigerLTStd-Black.otf
|
||||||
|
dest: frutiger/FrutigerLTStd-Black.otf
|
||||||
|
- type: 'opentype'
|
||||||
|
src: FrutigerLTStd-BoldCn.otf
|
||||||
|
dest: frutiger/FrutigerLTStd-BoldCn.otf
|
||||||
|
- type: 'opentype'
|
||||||
|
src: FrutigerLTStd-BoldItalic.otf
|
||||||
|
dest: frutiger/FrutigerLTStd-BoldItalic.otf
|
||||||
|
- type: 'opentype'
|
||||||
|
src: FrutigerLTStd-Bold.otf
|
||||||
|
dest: frutiger/FrutigerLTStd-Bold.otf
|
||||||
|
- type: 'opentype'
|
||||||
|
src: FrutigerLTStd-Cn.otf
|
||||||
|
dest: frutiger/FrutigerLTStd-Cn.otf
|
||||||
|
- type: 'opentype'
|
||||||
|
src: FrutigerLTStd-ExtraBlackCn.otf
|
||||||
|
dest: frutiger/FrutigerLTStd-ExtraBlackCn.otf
|
||||||
|
- type: 'opentype'
|
||||||
|
src: FrutigerLTStd-Italic.otf
|
||||||
|
dest: frutiger/FrutigerLTStd-Italic.otf
|
||||||
|
- type: 'opentype'
|
||||||
|
src: FrutigerLTStd-LightCn.otf
|
||||||
|
dest: frutiger/FrutigerLTStd-LightCn.otf
|
||||||
|
- type: 'opentype'
|
||||||
|
src: FrutigerLTStd-LightItalic.otf
|
||||||
|
dest: frutiger/FrutigerLTStd-LightItalic.otf
|
||||||
|
- type: 'opentype'
|
||||||
|
src: FrutigerLTStd-Light.otf
|
||||||
|
dest: frutiger/FrutigerLTStd-Light.otf
|
||||||
|
- type: 'opentype'
|
||||||
|
src: FrutigerLTStd-Roman.otf
|
||||||
|
dest: frutiger/FrutigerLTStd-Roman.otf
|
||||||
|
- type: 'opentype'
|
||||||
|
src: FrutigerLTStd-UltraBlack.otf
|
||||||
|
dest: frutiger/FrutigerLTStd-UltraBlack.otf
|
||||||
|
|
||||||
|
pre_tasks:
|
||||||
|
- name: add group lokaladmin
|
||||||
|
group:
|
||||||
|
name: lokaladmin
|
||||||
|
gid: 1000
|
||||||
|
|
||||||
|
- name: ensure lokaladmin is present
|
||||||
|
user:
|
||||||
|
name: lokaladmin
|
||||||
|
group: lokaladmin
|
||||||
|
groups: adm, cdrom, sudo, dip, plugdev, lpadmin, sambashare
|
||||||
|
append: True
|
||||||
|
uid: 1000
|
||||||
|
password: "$6$bzVyhcWa$X3NeSycmO8qhgjtYDjjg8ANBt1jf.uvRHdkaVL6qTFhXk6RQvChJQpUtBH1Ccg5t5VR/qqoDgOgieYsX08nK31"
|
||||||
|
|
||||||
|
- name: add authorized_key for christoph
|
||||||
|
authorized_key:
|
||||||
|
user: "{{ item }}"
|
||||||
|
key: "{{ admin_key }}"
|
||||||
|
with_items:
|
||||||
|
- root
|
||||||
|
- lokaladmin
|
||||||
|
|
||||||
|
- name: Disable motd-news
|
||||||
|
lineinfile:
|
||||||
|
dest: /etc/default/motd-news
|
||||||
|
regexp: '^ENABLED='
|
||||||
|
line: 'ENABLED=0'
|
||||||
|
|
||||||
|
- name: Delete unnecessary packages
|
||||||
|
apt:
|
||||||
|
pkg: "{{ packages_absent }}"
|
||||||
|
state: absent
|
||||||
|
tags: apt
|
||||||
|
|
||||||
|
roles:
|
||||||
|
- role: weareinteractive.apt
|
||||||
|
tags: apt
|
||||||
|
- role: ontic.fonts
|
||||||
|
tags: fonts
|
||||||
|
- role: freedomofpress.signal-desktop
|
||||||
|
tags: signal
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: copy debs
|
||||||
|
copy:
|
||||||
|
src: "{{ item }}"
|
||||||
|
dest: /root/
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
with_items: "{{ debs_present }}"
|
||||||
|
tags: apt
|
||||||
|
|
||||||
|
- name: install local debs
|
||||||
|
apt:
|
||||||
|
deb: "/root/{{ item }}"
|
||||||
|
with_items: "{{ debs_present }}"
|
||||||
|
tags: apt
|
||||||
|
|
||||||
|
- name: system time cron job
|
||||||
|
cron:
|
||||||
|
name: adjust system time
|
||||||
|
minute: 3
|
||||||
|
job: /usr/sbin/ntpdate 192.168.112.254 > /dev/null
|
||||||
|
|
||||||
|
- name: wake-on-lan cron job
|
||||||
|
cron:
|
||||||
|
name: "enable wake-on-lan interface {{ item }}"
|
||||||
|
special_time: reboot
|
||||||
|
job: /sbin/ethtool -s {{ item }} wol g
|
||||||
|
when: item != "lo"
|
||||||
|
with_items: "{{ ansible_interfaces }}"
|
||||||
|
tags: wol
|
||||||
|
|
||||||
|
- name: set default editor
|
||||||
|
alternatives:
|
||||||
|
name: editor
|
||||||
|
path: /usr/bin/vim
|
||||||
|
|
||||||
|
- name: get christoph admin scripts
|
||||||
|
git:
|
||||||
|
repo: https://git.oopen.de/script/{{ item }}
|
||||||
|
dest: /root/bin/{{ item }}
|
||||||
|
with_items:
|
||||||
|
- admin-stuff
|
||||||
|
- monitoring
|
||||||
|
|
||||||
|
- name: configure lightdm
|
||||||
|
copy:
|
||||||
|
src: lightdm.conf
|
||||||
|
dest: /etc/lightdm/lightdm.conf
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
|
||||||
|
- name: make lightdm default
|
||||||
|
file:
|
||||||
|
path: /etc/systemd/system/display-manager.service
|
||||||
|
src: /lib/systemd/system/lightdm.service
|
||||||
|
state: link
|
||||||
|
|
||||||
|
- name: make lightdm default (X11)
|
||||||
|
copy:
|
||||||
|
dest: /etc/X11/default-display-manager
|
||||||
|
content: "/usr/bin/lightdm"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
|
||||||
|
- import_tasks: initramfs.yml
|
||||||
|
- import_tasks: gnome.yml
|
||||||
|
tags:
|
||||||
|
- gnome
|
||||||
|
|
||||||
|
- name: copy printer drivers
|
||||||
|
copy:
|
||||||
|
src: "{{ item }}"
|
||||||
|
dest: /usr/share/ppd/custom
|
||||||
|
owner: root
|
||||||
|
group: lpadmin
|
||||||
|
mode: 0664
|
||||||
|
with_items:
|
||||||
|
- Canon_LBP712Cx.ppd
|
||||||
|
- UTAX_TA_3555i.ppd
|
||||||
|
notify: configure printers
|
||||||
|
tags: printer
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
- name: update initramfs
|
||||||
|
command: update-initramfs -u
|
||||||
|
- name: dconf update
|
||||||
|
command: dconf update
|
||||||
|
- name: configure printers
|
||||||
|
shell: "lpadmin -p Kopierer -E -v socket://192.168.112.5 -P /usr/share/ppd/custom/UTAX_TA_3555i.ppd && lpadmin -p Farbdrucker -E -v socket://192.168.112.7 -P /usr/share/ppd/custom/Canon_LBP712Cx.ppd && lpadmin -d Kopierer"
|
||||||
|
|
||||||
|
# use christophs role to configure NFS/NIS
|
||||||
|
- hosts: all
|
||||||
|
become: true
|
||||||
|
roles:
|
||||||
|
- common
|
20
roles/common/files/etc/nsswitch.conf
Executable file
20
roles/common/files/etc/nsswitch.conf
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
# /etc/nsswitch.conf
|
||||||
|
#
|
||||||
|
# Example configuration of GNU Name Service Switch functionality.
|
||||||
|
# If you have the `glibc-doc-reference' and `info' packages installed, try:
|
||||||
|
# `info libc "Name Service Switch"' for information about this file.
|
||||||
|
|
||||||
|
passwd: compat systemd nis
|
||||||
|
group: compat systemd nis
|
||||||
|
shadow: compat nis
|
||||||
|
gshadow: files
|
||||||
|
|
||||||
|
hosts: files nis mdns4_minimal [NOTFOUND=return] dns myhostname
|
||||||
|
networks: files
|
||||||
|
|
||||||
|
protocols: db files
|
||||||
|
services: db files
|
||||||
|
ethers: db files
|
||||||
|
rpc: db files
|
||||||
|
|
||||||
|
netgroup: nis
|
4
roles/common/files/etc/systemd/system/rpcbind.socket.d/override.conf
Executable file
4
roles/common/files/etc/systemd/system/rpcbind.socket.d/override.conf
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
[Unit]
|
||||||
|
DefaultDependencies=no
|
||||||
|
Wants=rpcbind.target
|
||||||
|
Before=rpcbind.target
|
@ -0,0 +1,3 @@
|
|||||||
|
[Service]
|
||||||
|
IPAddressAllow=192.168.0.0/16
|
||||||
|
|
26
roles/common/handlers/main.yml
Executable file
26
roles/common/handlers/main.yml
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Renew nis databases
|
||||||
|
shell: make -C /var/yp
|
||||||
|
when:
|
||||||
|
- "groups['nis_server']|string is search(inventory_hostname)"
|
||||||
|
|
||||||
|
- name: Reload nfs
|
||||||
|
service:
|
||||||
|
name: nfs-kernel-server
|
||||||
|
state: reloaded
|
||||||
|
enabled: yes
|
||||||
|
when:
|
||||||
|
- "groups['nfs_server']|string is search(inventory_hostname)"
|
||||||
|
|
||||||
|
- name: Restart systemd-logind.service
|
||||||
|
service:
|
||||||
|
name: systemd-logind
|
||||||
|
daemon_reload: yes
|
||||||
|
state: restarted
|
||||||
|
|
||||||
|
- name: Restart rpcbind
|
||||||
|
service:
|
||||||
|
name: rpcbind
|
||||||
|
daemon_reload: yes
|
||||||
|
state: restarted
|
9
roles/common/tasks/main.yml
Executable file
9
roles/common/tasks/main.yml
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
- import_tasks: nfs.yml
|
||||||
|
tags:
|
||||||
|
- nfs
|
||||||
|
|
||||||
|
- import_tasks: nis-install-client.yml
|
||||||
|
# when: "groups['nis_client']|string is search(inventory_hostname)"
|
||||||
|
tags:
|
||||||
|
- nis-install
|
26
roles/common/tasks/nfs.yml
Executable file
26
roles/common/tasks/nfs.yml
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
- name: (nfs.yml) Ensure NFS utilities (clients) are installed.
|
||||||
|
apt:
|
||||||
|
pkg: nfs-common
|
||||||
|
state: present
|
||||||
|
when:
|
||||||
|
- ansible_os_family == "Debian"
|
||||||
|
tags:
|
||||||
|
- nfs-client
|
||||||
|
|
||||||
|
- name: (nfs.yml) NFS Mount exports from nfs server
|
||||||
|
mount:
|
||||||
|
path: "{{ item.path }}"
|
||||||
|
src: "{{ item.src }}"
|
||||||
|
fstype: nfs
|
||||||
|
opts: "{{ item.mount_opts }}"
|
||||||
|
dump: "{{ item.dump | default(omit) }}"
|
||||||
|
passno: "{{ item.passno | default(omit) }}"
|
||||||
|
state: mounted
|
||||||
|
loop: "{{ nfs_exports }}"
|
||||||
|
loop_control:
|
||||||
|
label: '{{ item.src }}'
|
||||||
|
tags:
|
||||||
|
- nfs-client
|
310
roles/common/tasks/nis-install-client.yml
Executable file
310
roles/common/tasks/nis-install-client.yml
Executable file
@ -0,0 +1,310 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# Install nis
|
||||||
|
# ---
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Set (nis) default domain (/etc/defaultdomain)
|
||||||
|
template:
|
||||||
|
dest: /etc/defaultdomain
|
||||||
|
src: etc/defaultdomain.j2
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Create preconfigured /etc/yp.conf on nis clients
|
||||||
|
template:
|
||||||
|
dest: /etc/yp.conf
|
||||||
|
src: etc/yp.conf.j2
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Install nis common packages
|
||||||
|
package:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: present
|
||||||
|
with_items: "{{ nis_common_packages }}"
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# /etc/default/nis
|
||||||
|
# ---
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Check if file '/etc/default/nis.ORIG' exists
|
||||||
|
stat:
|
||||||
|
path: /etc/default/nis.ORIG
|
||||||
|
register: default_nis_exists
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Backup existing file /etc/default/nis
|
||||||
|
command: cp -a /etc/default/nis /etc/default/nis.ORIG
|
||||||
|
when:
|
||||||
|
- default_nis_exists.stat.exists == False
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Adjust file /etc/default/nis - set 'NISSERVER' (client)
|
||||||
|
replace:
|
||||||
|
path: /etc/default/nis
|
||||||
|
regexp: '^NISSERVER=.*'
|
||||||
|
replace: 'NISSERVER=false'
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Adjust file /etc/default/nis - set 'NISCLIENT' (client)
|
||||||
|
replace:
|
||||||
|
path: /etc/default/nis
|
||||||
|
regexp: '^NISCLIENT=.*'
|
||||||
|
replace: 'NISCLIENT=true'
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# /etc/{passwd,group,shadow}
|
||||||
|
# ---
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Add '+::::::' to file /etc/passwd
|
||||||
|
lineinfile:
|
||||||
|
path: /etc/passwd
|
||||||
|
line: '+::::::'
|
||||||
|
insertafter: EOF
|
||||||
|
state: present
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
when: "ansible_distribution_major_version|int < 18"
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Add '+:::' to file /etc/group
|
||||||
|
lineinfile:
|
||||||
|
path: /etc/group
|
||||||
|
line: '+:::'
|
||||||
|
insertafter: EOF
|
||||||
|
state: present
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
when: "ansible_distribution_major_version|int < 18"
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Add '+::::::::' to file /etc/shadow
|
||||||
|
lineinfile:
|
||||||
|
path: /etc/shadow
|
||||||
|
line: '+::::::::'
|
||||||
|
insertafter: EOF
|
||||||
|
state: present
|
||||||
|
owner: root
|
||||||
|
group: shadow
|
||||||
|
mode: '0640'
|
||||||
|
when: "ansible_distribution_major_version|int < 18"
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# /etc/hosts
|
||||||
|
# ---
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Check if file '/etc/hosts.ORIG' exists
|
||||||
|
stat:
|
||||||
|
path: /etc/hosts.ORIG
|
||||||
|
register: etc_hosts_orig_exists
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Backup existing file /etc/hosts
|
||||||
|
command: cp -a /etc/hosts /etc/hosts.ORIG
|
||||||
|
when:
|
||||||
|
- etc_hosts_orig_exists.stat.exists == False
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Add nis-server to file /etc/hosts
|
||||||
|
lineinfile:
|
||||||
|
path: /etc/hosts
|
||||||
|
line: '{{ nis_server_address }} {{ nis_server_name }} {{ nis_server_name.split(".")[1] }}'
|
||||||
|
insertafter: EOF
|
||||||
|
state: present
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# /etc/nsswitch.conf
|
||||||
|
# ---
|
||||||
|
|
||||||
|
#- name: (nis.yml) Check if file '/etc/nsswitch.conf.ORIG' exists
|
||||||
|
# stat:
|
||||||
|
# path: /etc/nsswitch.conf.ORIG
|
||||||
|
# register: nsswitch_conf_orig_exists
|
||||||
|
# tags:
|
||||||
|
# - nis-install
|
||||||
|
# - nis-install-client
|
||||||
|
#
|
||||||
|
#- name: (nis.yml) Backup existing file /etc/nsswitch.conf
|
||||||
|
# command: cp -a /etc/nsswitch.conf /etc/nsswitch.conf.ORIG
|
||||||
|
# when:
|
||||||
|
# - nsswitch_conf_orig_exists.stat.exists == False
|
||||||
|
# tags:
|
||||||
|
# - nis-install
|
||||||
|
# - nis-install-client
|
||||||
|
#
|
||||||
|
#- name: (nis-install-client.yml) Adjust file /etc/nsswitch.conf (set hosts)
|
||||||
|
# replace:
|
||||||
|
# path: /etc/nsswitch.conf
|
||||||
|
# regexp: '(hosts:\s+files)\s+([^nis].*)'
|
||||||
|
# replace: '\1 nis \2'
|
||||||
|
# tags:
|
||||||
|
# - nis-install
|
||||||
|
# - nis-install-client
|
||||||
|
#
|
||||||
|
#- name: (nis-install-client.yml) Adjust file /etc/nsswitch.conf (set passwd/group/shadow)
|
||||||
|
# replace:
|
||||||
|
# path: /etc/nsswitch.conf
|
||||||
|
# regexp: '^({{ item }}:\s+.*(?!nis).*)'
|
||||||
|
# replace: '\1 nis'
|
||||||
|
# with_items:
|
||||||
|
# - passwd
|
||||||
|
# - group
|
||||||
|
# - shadow
|
||||||
|
# tags:
|
||||||
|
# - nis-install
|
||||||
|
# - nis-install-client
|
||||||
|
- name: Copy /etc/nsswitch.conf
|
||||||
|
copy:
|
||||||
|
src: etc/nsswitch.conf
|
||||||
|
dest: /etc/nsswitch.conf
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0644
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# /etc/systemd/system/systemd-logind.service.d/nis_allow_network.conf
|
||||||
|
# ---
|
||||||
|
|
||||||
|
# - !! Using NIS client in Ubuntu 18.04 crashes both Gnome and Unity !!
|
||||||
|
# - ===================================================================
|
||||||
|
#
|
||||||
|
# - Unter NIS in Ubuntu 18.04 stütrzt Gnome und Unity ab
|
||||||
|
# -
|
||||||
|
# - Abhilfe schafft:
|
||||||
|
# -
|
||||||
|
#
|
||||||
|
# - Create a new directory in /etc/systemd/system/ named exactly after the
|
||||||
|
# - service you want to extend including a '.d', here this would be:
|
||||||
|
# - systemd-logind.service.d
|
||||||
|
# -
|
||||||
|
# - mkdir /etc/systemd/system/systemd-logind.service.d
|
||||||
|
#
|
||||||
|
# - Create a new file choose_an_appropriate_name.conf (e.g. nis_allow_network.conf)
|
||||||
|
# - inside the newly created directory with the following content, which specifies
|
||||||
|
# - the IP or IP range you want to be allowed:
|
||||||
|
# -
|
||||||
|
# - cat <<EOF > /etc/systemd/system/systemd-logind.service.d/nis_allow_network.conf
|
||||||
|
# - [Service]
|
||||||
|
# - IPAddressAllow=192.168.0.0/16
|
||||||
|
# - EOF
|
||||||
|
# -
|
||||||
|
# - systemctl daemon-reload
|
||||||
|
# - systemctl restart systemd-logind.service
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Ensure directory /etc/systemd/system/systemd-logind.service.d exists
|
||||||
|
file:
|
||||||
|
path: /etc/systemd/system/systemd-logind.service.d
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0755'
|
||||||
|
state: directory
|
||||||
|
when: "ansible_distribution_major_version|int >= 18"
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Ensure file /files/etc/systemd/system/systemd-logind.service.d/nis_allow_network.conf exists
|
||||||
|
copy:
|
||||||
|
src: "{{ role_path + '/files/etc/systemd/system/systemd-logind.service.d/nis_allow_network.conf' }}"
|
||||||
|
dest: /etc/systemd/system/systemd-logind.service.d/nis_allow_network.conf
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0755'
|
||||||
|
when: "ansible_distribution_major_version|int >= 18"
|
||||||
|
# XXX: killt meine Xsession (Tim)
|
||||||
|
# notify:
|
||||||
|
# - Restart systemd-logind.service
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
|
||||||
|
# - Seit Ubuntu 16.04 startet nis vor dem portmapper (rpcbind). Das Starten
|
||||||
|
# - schlägt deshalb fehl und nis steht nicht zur Verfügung.
|
||||||
|
# -
|
||||||
|
# - Abhilfe:
|
||||||
|
# -
|
||||||
|
# - Run "systemctl edit rpcbind.socket" and add the following:
|
||||||
|
# -
|
||||||
|
# - [Unit]
|
||||||
|
# - DefaultDependencies=no
|
||||||
|
# - Wants=rpcbind.target
|
||||||
|
# - Before=rpcbind.target
|
||||||
|
# -
|
||||||
|
# - You can see your changes:
|
||||||
|
# - cat /etc/systemd/system/rpcbind.socket.d/override.conf
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Ensure directory /etc/systemd/system/rpcbind.socket.d exists
|
||||||
|
file:
|
||||||
|
path: /etc/systemd/system/rpcbind.socket.d
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0755'
|
||||||
|
state: directory
|
||||||
|
when: "ansible_distribution_major_version|int >= 16"
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
- name: (nis-install-client.yml) Ensure file /files/etc/systemd/system/rpcbind.socket.d/override.conf exists
|
||||||
|
copy:
|
||||||
|
src: "{{ role_path + '/files/etc/systemd/system/rpcbind.socket.d/override.conf' }}"
|
||||||
|
dest: /etc/systemd/system/rpcbind.socket.d/override.conf
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0755'
|
||||||
|
when: "ansible_distribution_major_version|int >= 16"
|
||||||
|
notify:
|
||||||
|
- Restart rpcbind
|
||||||
|
tags:
|
||||||
|
- nis-install
|
||||||
|
- nis-install-client
|
||||||
|
|
||||||
|
|
||||||
|
# TODO:
|
||||||
|
# /etc/systemd/system/systemd-logind.service.d/nis_allow_network.conf
|
||||||
|
# /etc/systemd/system/rpcbind.socket.d/override.conf
|
1
roles/common/templates/etc/defaultdomain.j2
Executable file
1
roles/common/templates/etc/defaultdomain.j2
Executable file
@ -0,0 +1 @@
|
|||||||
|
{{ nis_domain }}
|
31
roles/common/templates/etc/exports.j2
Executable file
31
roles/common/templates/etc/exports.j2
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
# /etc/exports: the access control list for filesystems which may be exported
|
||||||
|
# to NFS clients. See exports(5).
|
||||||
|
#
|
||||||
|
# Example for NFSv2 and NFSv3:
|
||||||
|
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
|
||||||
|
#
|
||||||
|
# Example for NFSv4:
|
||||||
|
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
|
||||||
|
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
|
||||||
|
#
|
||||||
|
|
||||||
|
{% set count = namespace(nfs_exports=100) %}
|
||||||
|
{% for export in nfs_exports %}
|
||||||
|
|
||||||
|
{% set export_str= namespace(nfs_exports = export.src.split(":")[1]) %}
|
||||||
|
|
||||||
|
{% set count.nfs_exports = count.nfs_exports + 10 %}
|
||||||
|
{% for network in export.export_networks %}
|
||||||
|
{% if export.fs_encrypted is defined and export.fs_encrypted is sameas true %}
|
||||||
|
{% set export_str.nfs_exports = export_str.nfs_exports~" "~network~"("~export.export_opt~",fsid="~count.nfs_exports~")" %}
|
||||||
|
#{{ export.src.split(":")[1] }} {{ network }}({{ export.export_opt }},fsid={{ count.nfs_exports }})
|
||||||
|
{% else %}
|
||||||
|
{% set export_str.nfs_exports = export_str.nfs_exports~" "~network~"("~export.export_opt~")" %}
|
||||||
|
#{{ export.src.split(":")[1] }} {{ network }}({{ export.export_opt }})
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{{ export_str.nfs_exports }}
|
||||||
|
{% endfor %}
|
34
roles/common/templates/etc/sudoers.d/50-user.j2
Executable file
34
roles/common/templates/etc/sudoers.d/50-user.j2
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
{% for item in sudoers_file_defaults | default([]) %}
|
||||||
|
Defaults {{ item }}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
# Host alias specification
|
||||||
|
{% for item in sudoers_file_host_aliases | default([]) %}
|
||||||
|
Host_Alias {{ item.name }} = {{ item.entry }}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
# User alias specification
|
||||||
|
{% for item in sudoers_file_user_aliases | default([]) %}
|
||||||
|
User_Alias {{ item.name }} = {{ item.entry }}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
# Cmnd alias specification
|
||||||
|
{% for item in sudoers_file_cmnd_aliases | default([]) %}
|
||||||
|
Cmnd_Alias {{ item.name }} = {{ item.entry }}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
# Runas alias specification
|
||||||
|
{% for item in sudoers_file_runas_aliases | default([]) %}
|
||||||
|
Runas_Alias {{ item.name }} = {{ item.entry }}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
# User privilege specification
|
||||||
|
|
||||||
|
{# rules for nis users #}
|
||||||
|
{% for item in nis_user | default([]) %}
|
||||||
|
{{ item.name }} ALL=(root)NOPASSWD: MOUNT
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
# Group privilege specification
|
56
roles/common/templates/etc/sudoers.j2
Executable file
56
roles/common/templates/etc/sudoers.j2
Executable file
@ -0,0 +1,56 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
# This file MUST be edited with the 'visudo' command as root.
|
||||||
|
#
|
||||||
|
# Please consider adding local content in /etc/sudoers.d/ instead of
|
||||||
|
# directly modifying this file.
|
||||||
|
#
|
||||||
|
# See the man page for details on how to write a sudoers file.
|
||||||
|
#
|
||||||
|
{% for item in sudoers_defaults %}
|
||||||
|
{% if item != '' %}
|
||||||
|
Defaults {{ item }}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
# Host alias specification
|
||||||
|
{% for item in sudoers_host_aliases | default([]) %}
|
||||||
|
Host_Alias {{ item.name }} = {{ item.entry }}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
# User alias specification
|
||||||
|
{% for item in sudoers_user_aliases | default([]) %}
|
||||||
|
User_Alias {{ item.name }} = {{ item.entry }}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
# Cmnd alias specification
|
||||||
|
{% for item in sudoers_cmnd_aliases | default([]) %}
|
||||||
|
Cmnd_Alias {{ item.name }} = {{ item.entry }}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
# Runas alias specification
|
||||||
|
{% for item in sudoers_runas_aliases | default([]) %}
|
||||||
|
Runas_Alias {{ item.name }} = {{ item.entry }}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
# User privilege specification
|
||||||
|
{% for item in sudoers_user_privileges | default([]) %}
|
||||||
|
{{ item.name }} {{ item.entry }}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
# Members of the admin group may gain root privileges
|
||||||
|
%admin ALL=(ALL) ALL
|
||||||
|
|
||||||
|
# Allow members of group sudo to execute any command
|
||||||
|
%sudo ALL=(ALL:ALL) ALL
|
||||||
|
|
||||||
|
# Group privilege specification
|
||||||
|
|
||||||
|
{% for item in sudoers_group_privileges | default([]) %}
|
||||||
|
{{ item.name }} {{ item.entry }}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
# See sudoers(5) for more information on "#include" directives:
|
||||||
|
|
||||||
|
#includedir /etc/sudoers.d
|
||||||
|
|
24
roles/common/templates/etc/yp.conf.j2
Executable file
24
roles/common/templates/etc/yp.conf.j2
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
|
# /etc/yp.conf - ypbind configuration file
|
||||||
|
# Valid entries are
|
||||||
|
#
|
||||||
|
# domain NISDOMAIN server HOSTNAME
|
||||||
|
# Use server HOSTNAME for the domain NISDOMAIN.
|
||||||
|
#
|
||||||
|
# domain NISDOMAIN broadcast
|
||||||
|
# Use broadcast on the local net for domain NISDOMAIN
|
||||||
|
#
|
||||||
|
# domain NISDOMAIN slp
|
||||||
|
# Query local SLP server for ypserver supporting NISDOMAIN
|
||||||
|
#
|
||||||
|
# ypserver HOSTNAME
|
||||||
|
# Use server HOSTNAME for the local domain. The
|
||||||
|
# IP-address of server must be listed in /etc/hosts.
|
||||||
|
#
|
||||||
|
# broadcast
|
||||||
|
# If no server for the default domain is specified or
|
||||||
|
# none of them is rechable, try a broadcast call to
|
||||||
|
# find a server.
|
||||||
|
#
|
||||||
|
domain {{ nis_domain }} server {{ nis_server_address }}
|
779
roles/common/vars/main.yml
Executable file
779
roles/common/vars/main.yml
Executable file
@ -0,0 +1,779 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# NFS
|
||||||
|
# ---
|
||||||
|
|
||||||
|
nfs_server: 192.168.112.10
|
||||||
|
|
||||||
|
# Set 'fs_encrypted' to true if filesystem lives on an encrypted
|
||||||
|
# partition.
|
||||||
|
#
|
||||||
|
nfs_exports:
|
||||||
|
- src: 192.168.112.10:/data/home
|
||||||
|
path: /data/home
|
||||||
|
mount_opts: users,rsize=8192,wsize=8192,hard,intr
|
||||||
|
export_opt: rw,root_squash,sync,subtree_check
|
||||||
|
export_networks:
|
||||||
|
- 192.168.112.0/24
|
||||||
|
- 10.0.112.0/24
|
||||||
|
- 10.1.112.0/24
|
||||||
|
- 192.168.63.0/24
|
||||||
|
fs_encrypted: false
|
||||||
|
|
||||||
|
- src: 192.168.112.10:/data/shares
|
||||||
|
path: /data/shares
|
||||||
|
mount_opts: users,rsize=8192,wsize=8192,hard,intr
|
||||||
|
export_opt: rw,root_squash,sync,subtree_check
|
||||||
|
export_networks:
|
||||||
|
- 192.168.112.0/24
|
||||||
|
- 10.0.112.0/24
|
||||||
|
- 10.1.112.0/24
|
||||||
|
- 192.168.63.0/24
|
||||||
|
fs_encrypted: false
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# Samba / NIS
|
||||||
|
# ---
|
||||||
|
|
||||||
|
samba_server: file-mbr.mbr-bln.netz
|
||||||
|
|
||||||
|
samba_shares:
|
||||||
|
- name: Arbeitsrechtliches
|
||||||
|
user:
|
||||||
|
- anne
|
||||||
|
- bianca
|
||||||
|
- birgit.erhardt
|
||||||
|
- christina.wendt
|
||||||
|
- chris
|
||||||
|
- sysadm
|
||||||
|
- name: Ausschreibungen
|
||||||
|
user:
|
||||||
|
- anne
|
||||||
|
- bianca
|
||||||
|
- chris
|
||||||
|
- matthias.mueller
|
||||||
|
- sysadm
|
||||||
|
- name: BGN-Finanzen-Personal
|
||||||
|
user:
|
||||||
|
- anne
|
||||||
|
- bianca
|
||||||
|
- carolin
|
||||||
|
- christina.wendt
|
||||||
|
- chris
|
||||||
|
- sysadm
|
||||||
|
- ulf.balmer
|
||||||
|
- name: BVV-Projekt
|
||||||
|
user:
|
||||||
|
- alexander.rasumny
|
||||||
|
- anna.mueller1
|
||||||
|
- anne
|
||||||
|
- benjamin
|
||||||
|
- bianca
|
||||||
|
- birgit.erhardt
|
||||||
|
- bjoern.renkewitz
|
||||||
|
- carolin
|
||||||
|
- christina.wendt
|
||||||
|
- chris
|
||||||
|
- daniel.poensgen
|
||||||
|
- doku2
|
||||||
|
- doku_4
|
||||||
|
- doku_7
|
||||||
|
- dorina.feldmann
|
||||||
|
- franziska
|
||||||
|
- johannes.radke
|
||||||
|
- judith.heinmueller
|
||||||
|
- kristina.holzapfel
|
||||||
|
- lavinia.schwedersky
|
||||||
|
- manja.kasten
|
||||||
|
- mathias
|
||||||
|
- matthias.mueller
|
||||||
|
- michael.sulies
|
||||||
|
- michael.trube
|
||||||
|
- pia.lamberty
|
||||||
|
- praktikum
|
||||||
|
- praktikum_rias
|
||||||
|
- praktikum2
|
||||||
|
- praktikum2_rias
|
||||||
|
- praktikum3
|
||||||
|
- praktikum4
|
||||||
|
- sabine.kritter
|
||||||
|
- samuel.signer
|
||||||
|
- scan
|
||||||
|
- simon
|
||||||
|
- sysadm
|
||||||
|
- ulf.balmer
|
||||||
|
- name: Finanzen
|
||||||
|
user:
|
||||||
|
- anne
|
||||||
|
- bianca
|
||||||
|
- birgit.erhardt
|
||||||
|
- christina.wendt
|
||||||
|
- chris
|
||||||
|
- sysadm
|
||||||
|
- name: Install
|
||||||
|
user:
|
||||||
|
- chris
|
||||||
|
- sysadm
|
||||||
|
- lokaladmin
|
||||||
|
- name: Kamera
|
||||||
|
user:
|
||||||
|
- anne
|
||||||
|
- axis
|
||||||
|
- bianca
|
||||||
|
- chris
|
||||||
|
- sysadm
|
||||||
|
- name: MBR
|
||||||
|
user:
|
||||||
|
- alexander.rasumny
|
||||||
|
- anna.mueller1
|
||||||
|
- anne
|
||||||
|
- benjamin
|
||||||
|
- bianca
|
||||||
|
- birgit.erhardt
|
||||||
|
- bjoern.renkewitz
|
||||||
|
- carolin
|
||||||
|
- christina.wendt
|
||||||
|
- chris
|
||||||
|
- daniel.poensgen
|
||||||
|
- doku2
|
||||||
|
- doku_4
|
||||||
|
- doku_7
|
||||||
|
- dorina.feldmann
|
||||||
|
- franziska
|
||||||
|
- johannes.radke
|
||||||
|
- judith.heinmueller
|
||||||
|
- kristina.holzapfel
|
||||||
|
- lavinia.schwedersky
|
||||||
|
- manja.kasten
|
||||||
|
- mathias
|
||||||
|
- matthias.mueller
|
||||||
|
- michael.sulies
|
||||||
|
- michael.trube
|
||||||
|
- pia.lamberty
|
||||||
|
- praktikum
|
||||||
|
- praktikum_rias
|
||||||
|
- praktikum2
|
||||||
|
- praktikum2_rias
|
||||||
|
- praktikum3
|
||||||
|
- praktikum4
|
||||||
|
- sabine.kritter
|
||||||
|
- samuel.signer
|
||||||
|
- scan
|
||||||
|
- simon
|
||||||
|
- sysadm
|
||||||
|
- ulf.balmer
|
||||||
|
- name: Mobilisierungsplattform
|
||||||
|
user:
|
||||||
|
- alexander.rasumny
|
||||||
|
- anna.mueller1
|
||||||
|
- anne
|
||||||
|
- benjamin
|
||||||
|
- bianca
|
||||||
|
- birgit.erhardt
|
||||||
|
- bjoern.renkewitz
|
||||||
|
- carolin
|
||||||
|
- christina.wendt
|
||||||
|
- chris
|
||||||
|
- daniel.poensgen
|
||||||
|
- doku2
|
||||||
|
- doku_4
|
||||||
|
- doku_7
|
||||||
|
- dorina.feldmann
|
||||||
|
- franziska
|
||||||
|
- johannes.radke
|
||||||
|
- judith.heinmueller
|
||||||
|
- kristina.holzapfel
|
||||||
|
- lavinia.schwedersky
|
||||||
|
- manja.kasten
|
||||||
|
- mathias
|
||||||
|
- matthias.mueller
|
||||||
|
- michael.sulies
|
||||||
|
- michael.trube
|
||||||
|
- pia.lamberty
|
||||||
|
- praktikum
|
||||||
|
- praktikum_rias
|
||||||
|
- praktikum2
|
||||||
|
- praktikum2_rias
|
||||||
|
- praktikum3
|
||||||
|
- praktikum4
|
||||||
|
- sabine.kritter
|
||||||
|
- samuel.signer
|
||||||
|
- scan
|
||||||
|
- simon
|
||||||
|
- sysadm
|
||||||
|
- ulf.balmer
|
||||||
|
- name: RIAS
|
||||||
|
user:
|
||||||
|
- alexander.rasumny
|
||||||
|
- anna.mueller1
|
||||||
|
- anne
|
||||||
|
- benjamin
|
||||||
|
- bianca
|
||||||
|
- birgit.erhardt
|
||||||
|
- bjoern.renkewitz
|
||||||
|
- carolin
|
||||||
|
- christina.wendt
|
||||||
|
- chris
|
||||||
|
- daniel.poensgen
|
||||||
|
- doku2
|
||||||
|
- doku_4
|
||||||
|
- doku_7
|
||||||
|
- dorina.feldmann
|
||||||
|
- franziska
|
||||||
|
- johannes.radke
|
||||||
|
- judith.heinmueller
|
||||||
|
- kristina.holzapfel
|
||||||
|
- lavinia.schwedersky
|
||||||
|
- manja.kasten
|
||||||
|
- mathias
|
||||||
|
- matthias.mueller
|
||||||
|
- michael.sulies
|
||||||
|
- michael.trube
|
||||||
|
- pia.lamberty
|
||||||
|
- praktikum
|
||||||
|
- praktikum_rias
|
||||||
|
- praktikum2
|
||||||
|
- praktikum2_rias
|
||||||
|
- praktikum3
|
||||||
|
- praktikum4
|
||||||
|
- sabine.kritter
|
||||||
|
- samuel.signer
|
||||||
|
- scan
|
||||||
|
- simon
|
||||||
|
- sysadm
|
||||||
|
- ulf.balmer
|
||||||
|
- name: RIAS-Finanzen-Personal
|
||||||
|
user:
|
||||||
|
- anne
|
||||||
|
- bianca
|
||||||
|
- benjamin
|
||||||
|
- birgit.erhardt
|
||||||
|
- christina.wendt
|
||||||
|
- chris
|
||||||
|
- sysadm
|
||||||
|
- name: SCAN
|
||||||
|
user:
|
||||||
|
- alexander.rasumny
|
||||||
|
- anna.mueller1
|
||||||
|
- anne
|
||||||
|
- benjamin
|
||||||
|
- bianca
|
||||||
|
- birgit.erhardt
|
||||||
|
- bjoern.renkewitz
|
||||||
|
- carolin
|
||||||
|
- christina.wendt
|
||||||
|
- chris
|
||||||
|
- daniel.poensgen
|
||||||
|
- doku2
|
||||||
|
- doku_4
|
||||||
|
- doku_7
|
||||||
|
- dorina.feldmann
|
||||||
|
- franziska
|
||||||
|
- johannes.radke
|
||||||
|
- judith.heinmueller
|
||||||
|
- kristina.holzapfel
|
||||||
|
- lavinia.schwedersky
|
||||||
|
- manja.kasten
|
||||||
|
- mathias
|
||||||
|
- matthias.mueller
|
||||||
|
- michael.sulies
|
||||||
|
- michael.trube
|
||||||
|
- pia.lamberty
|
||||||
|
- praktikum
|
||||||
|
- praktikum_rias
|
||||||
|
- praktikum2
|
||||||
|
- praktikum2_rias
|
||||||
|
- praktikum3
|
||||||
|
- praktikum4
|
||||||
|
- sabine.kritter
|
||||||
|
- samuel.signer
|
||||||
|
- scan
|
||||||
|
- simon
|
||||||
|
- sysadm
|
||||||
|
- ulf.balmer
|
||||||
|
- name: VDK
|
||||||
|
user:
|
||||||
|
- alexander.rasumny
|
||||||
|
- anna.mueller1
|
||||||
|
- anne
|
||||||
|
- benjamin
|
||||||
|
- bianca
|
||||||
|
- birgit.erhardt
|
||||||
|
- bjoern.renkewitz
|
||||||
|
- carolin
|
||||||
|
- christina.wendt
|
||||||
|
- chris
|
||||||
|
- daniel.poensgen
|
||||||
|
- doku2
|
||||||
|
- doku_4
|
||||||
|
- doku_7
|
||||||
|
- dorina.feldmann
|
||||||
|
- franziska
|
||||||
|
- johannes.radke
|
||||||
|
- judith.heinmueller
|
||||||
|
- kristina.holzapfel
|
||||||
|
- lavinia.schwedersky
|
||||||
|
- manja.kasten
|
||||||
|
- mathias
|
||||||
|
- matthias.mueller
|
||||||
|
- michael.sulies
|
||||||
|
- michael.trube
|
||||||
|
- pia.lamberty
|
||||||
|
- praktikum
|
||||||
|
- praktikum_rias
|
||||||
|
- praktikum2
|
||||||
|
- praktikum2_rias
|
||||||
|
- praktikum3
|
||||||
|
- praktikum4
|
||||||
|
- sabine.kritter
|
||||||
|
- samuel.signer
|
||||||
|
- scan
|
||||||
|
- simon
|
||||||
|
- sysadm
|
||||||
|
- ulf.balmer
|
||||||
|
- name: Video
|
||||||
|
user:
|
||||||
|
- alexander.rasumny
|
||||||
|
- anna.mueller1
|
||||||
|
- anne
|
||||||
|
- benjamin
|
||||||
|
- bianca
|
||||||
|
- birgit.erhardt
|
||||||
|
- bjoern.renkewitz
|
||||||
|
- carolin
|
||||||
|
- christina.wendt
|
||||||
|
- chris
|
||||||
|
- daniel.poensgen
|
||||||
|
- doku2
|
||||||
|
- doku_4
|
||||||
|
- doku_7
|
||||||
|
- dorina.feldmann
|
||||||
|
- franziska
|
||||||
|
- johannes.radke
|
||||||
|
- judith.heinmueller
|
||||||
|
- kristina.holzapfel
|
||||||
|
- lavinia.schwedersky
|
||||||
|
- manja.kasten
|
||||||
|
- mathias
|
||||||
|
- matthias.mueller
|
||||||
|
- michael.sulies
|
||||||
|
- michael.trube
|
||||||
|
- pia.lamberty
|
||||||
|
- praktikum
|
||||||
|
- praktikum_rias
|
||||||
|
- praktikum2
|
||||||
|
- praktikum2_rias
|
||||||
|
- praktikum3
|
||||||
|
- praktikum4
|
||||||
|
- sabine.kritter
|
||||||
|
- samuel.signer
|
||||||
|
- scan
|
||||||
|
- simon
|
||||||
|
- sysadm
|
||||||
|
- ulf.balmer
|
||||||
|
|
||||||
|
nis_domain: mbr-bln.netz
|
||||||
|
#nis_domain: local.netz
|
||||||
|
|
||||||
|
nis_server_address: 192.168.112.10
|
||||||
|
|
||||||
|
nis_server_name: file-mbr.mbr-bln.netz
|
||||||
|
#nis_server_name: luna.local.netz
|
||||||
|
|
||||||
|
nis_common_packages:
|
||||||
|
- nis
|
||||||
|
- nscd
|
||||||
|
|
||||||
|
nis_deleted_user: []
|
||||||
|
|
||||||
|
|
||||||
|
nis_base_home: /data/home
|
||||||
|
|
||||||
|
nis_groups:
|
||||||
|
- name: mbr-buero
|
||||||
|
group_id: 1200
|
||||||
|
- name: mbr-finanzen
|
||||||
|
group_id: 1210
|
||||||
|
- name: mbr-personal
|
||||||
|
group_id: 1220
|
||||||
|
- name: mbr-kamera
|
||||||
|
group_id: 1250
|
||||||
|
- name: mbr-admins
|
||||||
|
group_id: 1260
|
||||||
|
- name: vdk
|
||||||
|
group_id: 1300
|
||||||
|
- name: rias
|
||||||
|
group_id: 1400
|
||||||
|
- name: rias-finanzen-personal
|
||||||
|
group_id: 1410
|
||||||
|
- name: bgn
|
||||||
|
group_id: 1500
|
||||||
|
- name: bgn-finanzen-personal
|
||||||
|
group_id: 1510
|
||||||
|
|
||||||
|
nis_user:
|
||||||
|
- name: chris
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
- mbr-finanzen
|
||||||
|
- mbr-personal
|
||||||
|
- mbr-kamera
|
||||||
|
- mbr-admins
|
||||||
|
- vdk
|
||||||
|
- rias
|
||||||
|
- rias-finanzen-personal
|
||||||
|
- bgn
|
||||||
|
- bgn-finanzen-personal
|
||||||
|
is_samba_user: true
|
||||||
|
password: !vault |
|
||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
38643435653764393333613564393733666139656264343833333632373938323230393036303234
|
||||||
|
3633303562636465643930643961663165646237386664370a386362346162313037353163383365
|
||||||
|
61343263386239316164613935633062343165363863376462653165306464633136313839343962
|
||||||
|
3865353333373661390a643564386432643532396632323664383330646430613033643130626430
|
||||||
|
6139
|
||||||
|
- name: lokaladmin
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
- mbr-finanzen
|
||||||
|
- mbr-personal
|
||||||
|
- mbr-kamera
|
||||||
|
- mbr-admins
|
||||||
|
- vdk
|
||||||
|
- rias
|
||||||
|
- rias-finanzen-personal
|
||||||
|
- bgn
|
||||||
|
- bgn-finanzen-personal
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'd4r1usz'
|
||||||
|
- name: sysadm
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
- mbr-finanzen
|
||||||
|
- mbr-personal
|
||||||
|
- mbr-kamera
|
||||||
|
- mbr-admins
|
||||||
|
- vdk
|
||||||
|
- rias
|
||||||
|
- rias-finanzen-personal
|
||||||
|
- bgn
|
||||||
|
- bgn-finanzen-personal
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'KPk_Wf2F'
|
||||||
|
- name: alexander.rasumny
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'twT9Rjbv9mjq'
|
||||||
|
- name: anna.mueller1
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: '5xp5ll9ar13us!'
|
||||||
|
- name: anne
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
- mbr-finanzen
|
||||||
|
- mbr-personal
|
||||||
|
- mbr-kamera
|
||||||
|
- mbr-admins
|
||||||
|
- vdk
|
||||||
|
- rias
|
||||||
|
- rias-finanzen-personal
|
||||||
|
- bgn
|
||||||
|
- bgn-finanzen-personal
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'YA!LiLiC0MP5'
|
||||||
|
- name: axis
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: '20_axis_16'
|
||||||
|
- name: benjamin
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
- vdk
|
||||||
|
- rias
|
||||||
|
- rias-finanzen-personal
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'C2-0U#ch'
|
||||||
|
- name: bianca
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
- mbr-finanzen
|
||||||
|
- mbr-personal
|
||||||
|
- mbr-kamera
|
||||||
|
- mbr-admins
|
||||||
|
- vdk
|
||||||
|
- rias
|
||||||
|
- rias-finanzen-personal
|
||||||
|
- bgn
|
||||||
|
- bgn-finanzen-personal
|
||||||
|
is_samba_user: true
|
||||||
|
password: '73_BiBole_29'
|
||||||
|
- name: birgit.erhardt
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
- mbr-finanzen
|
||||||
|
- vdk
|
||||||
|
is_samba_user: true
|
||||||
|
password: '20_purpel!rain_17'
|
||||||
|
- name: bjoern.renkewitz
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'Tz9-Wq-51'
|
||||||
|
- name: carolin
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
- bgn-finanzen-personal
|
||||||
|
is_samba_user: true
|
||||||
|
password: '20_carol1n_14'
|
||||||
|
- name: christina.wendt
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
- mbr-finanzen
|
||||||
|
- vdk
|
||||||
|
- rias-finanzen-personal
|
||||||
|
- bgn-finanzen-personal
|
||||||
|
is_samba_user: true
|
||||||
|
password: '8!Varianten'
|
||||||
|
- name: daniel.poensgen
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'rcMRCm7jcpbp'
|
||||||
|
- name: doku_4
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'PwmNvPh9KM4T'
|
||||||
|
- name: doku_7
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'TFhCW9J4Vn4F'
|
||||||
|
- name: dorina.feldmann
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: '17?4XPQ_!abc'
|
||||||
|
- name: franziska
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'f49mCjbj3Jh7'
|
||||||
|
- name: frederick.kannenberg
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'riasFK2019!#'
|
||||||
|
- name: doku2
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: '*M0ss4d*'
|
||||||
|
- name: johannes.radke
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'Furzf4brik!'
|
||||||
|
- name: judith.heinmueller
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 't32_aHxV.'
|
||||||
|
- name: kristina.holzapfel
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'c7PvX_39.'
|
||||||
|
- name: lavinia.schwedersky
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'xJw.3R9vKf/N'
|
||||||
|
- name: manja.kasten
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'Rasili_&n'
|
||||||
|
- name: mathias
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'p3r*45p3r4*4d*45tr4m'
|
||||||
|
- name: matthias.mueller
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
- mbr-personal
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'V1v@H@f3rdr1nk'
|
||||||
|
- name: michael.sulies
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'Cryst4lp4l4c3'
|
||||||
|
- name: michael.trube
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
- mbr-kamera
|
||||||
|
is_samba_user: true
|
||||||
|
password: '*R13sl1ng*'
|
||||||
|
- name: pia.lamberty
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'oasd31*as+Q%'
|
||||||
|
- name: praktikum
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: '_F313r4b3nd*'
|
||||||
|
- name: praktikum_rias
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: '7z7F%d3cv_dfjz'
|
||||||
|
- name: praktikum2
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: '20praktikum213'
|
||||||
|
- name: praktikum2_rias
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'ctnrk3CczcJ9'
|
||||||
|
- name: praktikum3
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'Q56V.6kf/JLQ'
|
||||||
|
- name: praktikum4
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: '6jA,nmD,fdK!'
|
||||||
|
- name: sabine.kritter
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: '#17_abc_?!'
|
||||||
|
- name: samuel.signer
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'S4mmyC0mput3r!'
|
||||||
|
- name: scan
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: '20scan13'
|
||||||
|
- name: simon
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'S4u3rkr4ut!'
|
||||||
|
- name: ulf.balmer
|
||||||
|
groups:
|
||||||
|
- mbr-buero
|
||||||
|
- bgn
|
||||||
|
- bgn-finanzen-personal
|
||||||
|
is_samba_user: true
|
||||||
|
password: 'ALL3_e6ene#'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# vars used by roles/ansible_dependencies
|
||||||
|
# ---
|
||||||
|
|
||||||
|
apt_ansible_dependencies:
|
||||||
|
- python
|
||||||
|
- python-apt
|
||||||
|
- python3
|
||||||
|
- python3-apt
|
||||||
|
- lsb-release
|
||||||
|
- apt-transport-https
|
||||||
|
- dbus
|
||||||
|
- sudo
|
||||||
|
- vim
|
||||||
|
- net-tools
|
||||||
|
- vlan
|
||||||
|
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# vars used by roles/ansible_user
|
||||||
|
# ---
|
||||||
|
|
||||||
|
ssh_keys_admin:
|
||||||
|
- 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5IhVprsvVOcFPbZzD9xR0nCjZ/9qVG6RhLJ7QBSts81nRvLwnmvcMBHSf5Rfaigey7Ff5dLHfJnxRE0KDATn6n2yd/5mXpn2GAA8hDVfhdsmsb5U7bROjZNr8MmIUrP7c3msUGx1FtvzhwxtyvIWOFQpWx+W5biBa6hFjIxT1pkUJqe6fclp7xbGYKZiqZRBS4qKG5CpKnisuOYDsqYPND+OkU+PShoxGVzp1JywIVze7qeKv6GyYbRA9SP9Np+5Mit6B21Io4zOI81c2Rz6sPX7mwEAQEs7iCm2hzG8qJws45Lb4ERqDkVEVhGNUyHjHgGebS1sZx1mLExdurXlPm1l/EamkncDFDCutHXtLP7lsFFiym7fKUjSEgiiLmyu5Xm+mwZvesKa1FYNaeiFWfYZpCJrNzIk+ffs+mgg3kmL4Sd4Ooy7jXPX+WJe5Xyh1KLU/+Wj2TVrhN+LbmupYAti/Wgd3DA1v601svmG82aLmyJRtKC0rGMePH3kDbtqU72kYpzI8mXERe1TIQ00Z77kQBR/7BF/9y5/0YmYDcXt1wNCoSie+mzz3xYcEdLAc7T+DhYpd4M6VgWnuz/exzRzhQwoSdEKkEED8CpEoBrEWEiMdrlElGmlkVomLU7P9i9j1rshX/pAq0asnqeSoPdC3vNbU3keiJQnhIHECvw== chris@luna'
|
||||||
|
- 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCyWbdnjnN/xfy1F6kPbsRXp8zvJEh8uHfTZuZKyaRV/iRuhsvqRiDB+AhUAlIaPwgQ8itaI6t5hijD+sZf+2oXXbNy3hkOHTrCDKCoVAWfMRKPuA1m8RqS4ZXXgayaeCzVnPEq6UrC5z0wO/XBwAktT37RRSQ/Hq2zCHy36NQEQYrhF3+ytX7ayb10pJAMVGRctYmr5YnLEVMSIREbPxZTNc80H1zqNPVJwYZhl8Ox61U4MoNhJmJwbKWPRPZsJpbTh9W2EU37tdwRBVQP6yxhua3TR6C7JnNPVY0IK23BYlNtQEDY4PHcIuewkamEWpP0+jhEjtwy1TqjRPdU/y+2uQjC6FSOVMsSPxgd8mw4cSsfp+Ard7P+YOevUXD81+jFZ3Wz0PRXbWMWAm2OCe7n8jVvkXMz+KxSYtrsvKNw1WugJq1z//bJNMTK6ISWpqaXDevGYQRJJ8dPbMmbey40WpS5CA/l29P7fj/cOl59w3LZGshrMOm7lVz9qysVV0ylfE3OpfKCGitkpY0Asw4lSkuLHoNZnDo6I5/ulRuKi6gsLk27LO5LYS8Zm1VOis/qHk1Gg1+QY47C4RzdTUxlU1CGesPIiQ1uUX2Z4bD7ebTrrOuEFcmNs3Wu5nif21Qq0ELEWhWby6ChFrbFHPn+hWlDwNM0Nr11ftwg0+sqVw== root@luna'
|
||||||
|
|
||||||
|
ansible_remote_user:
|
||||||
|
- name: lokaladmin
|
||||||
|
password: $6$KLQUDbiw$qvsGUndXr2G3DxhML6maD/nsJtXfElSLQ7ufkMuJu2vACbYX7kqNXdiU17oX6CyN5L1xARZ.TiES/w7zfh0Cu/
|
||||||
|
shell: /bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# vars used by roles/common/tasks/basic.yml
|
||||||
|
# ---
|
||||||
|
|
||||||
|
time_zone: Europe/Berlin
|
||||||
|
|
||||||
|
locales:
|
||||||
|
- en_US.UTF-8
|
||||||
|
- de_DE.UTF-8
|
||||||
|
|
||||||
|
set_default_limit_nofile: false
|
||||||
|
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# vars used by roles/common/tasks/sudoers.yml
|
||||||
|
# ---
|
||||||
|
|
||||||
|
sudo_users:
|
||||||
|
- lokaladmin
|
||||||
|
|
||||||
|
|
||||||
|
# /etc/sudoers
|
||||||
|
#
|
||||||
|
sudoers_defaults:
|
||||||
|
- env_reset
|
||||||
|
- mail_badpass
|
||||||
|
- 'secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"'
|
||||||
|
|
||||||
|
sudoers_host_aliases: []
|
||||||
|
|
||||||
|
sudoers_user_aliases: []
|
||||||
|
|
||||||
|
sudoers_cmnd_aliases: []
|
||||||
|
|
||||||
|
sudoers_runas_aliases: []
|
||||||
|
|
||||||
|
sudoers_user_privileges:
|
||||||
|
- name: root
|
||||||
|
entry: 'ALL=(ALL:ALL) ALL'
|
||||||
|
|
||||||
|
sudoers_group_privileges: []
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# /etc/sudoers.d/50-user
|
||||||
|
#
|
||||||
|
sudoers_file_defaults: []
|
||||||
|
|
||||||
|
sudoers_file_host_aliases: []
|
||||||
|
|
||||||
|
sudoers_file_user_aliases: []
|
||||||
|
|
||||||
|
sudoers_file_cmnd_aliases:
|
||||||
|
- name: MOUNT
|
||||||
|
entry: '/bin/mount,/bin/umount'
|
||||||
|
|
||||||
|
sudoers_file_runas_aliases: []
|
||||||
|
|
1
roles/freedomofpress.signal-desktop/.gitignore
vendored
Executable file
1
roles/freedomofpress.signal-desktop/.gitignore
vendored
Executable file
@ -0,0 +1 @@
|
|||||||
|
.molecule/
|
11
roles/freedomofpress.signal-desktop/.yamllint
Executable file
11
roles/freedomofpress.signal-desktop/.yamllint
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
extends: default
|
||||||
|
|
||||||
|
rules:
|
||||||
|
braces:
|
||||||
|
max-spaces-inside: 1
|
||||||
|
level: error
|
||||||
|
brackets:
|
||||||
|
max-spaces-inside: 1
|
||||||
|
level: error
|
||||||
|
line-length: disable
|
||||||
|
truthy: disable
|
44
roles/freedomofpress.signal-desktop/README.md
Executable file
44
roles/freedomofpress.signal-desktop/README.md
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
Signal Desktop Ansible role
|
||||||
|
===========================
|
||||||
|
|
||||||
|
Installs [Signal Desktop] on Linux hosts via `apt`.
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
------------
|
||||||
|
|
||||||
|
Debian or Ubuntu.
|
||||||
|
|
||||||
|
Role Variables
|
||||||
|
--------------
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# GPG full fingerprint of apt repo key, retrieved from:
|
||||||
|
# https://updates.signal.org/desktop/apt/keys.asc
|
||||||
|
signal_desktop_gpg_fingerprint: "DBA36B5181D0C816F630E889D980A17457F6FB06"
|
||||||
|
|
||||||
|
# Prerequisites for configuring HTTPS apt repo.
|
||||||
|
signal_desktop_apt_dependencies:
|
||||||
|
- apt-transport-https
|
||||||
|
- gpg
|
||||||
|
|
||||||
|
# Pinning the Xenial repo, works fine on e.g. Debian Stretch.
|
||||||
|
# The Signal team does not maintain specific versions for other dists,
|
||||||
|
# so intentionally not using `{{ ansible_distribution }}`
|
||||||
|
signal_desktop_apt_repo: "deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main"
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Example Playbook
|
||||||
|
----------------
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- hosts: workstations
|
||||||
|
roles:
|
||||||
|
- role: freedomofpress.signal-desktop
|
||||||
|
```
|
||||||
|
|
||||||
|
License
|
||||||
|
-------
|
||||||
|
|
||||||
|
MIT
|
13
roles/freedomofpress.signal-desktop/defaults/main.yml
Executable file
13
roles/freedomofpress.signal-desktop/defaults/main.yml
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
# GPG full fingerprint of apt repo key, retrieved from:
|
||||||
|
# https://updates.signal.org/desktop/apt/keys.asc
|
||||||
|
signal_desktop_gpg_fingerprint: "DBA36B5181D0C816F630E889D980A17457F6FB06"
|
||||||
|
|
||||||
|
# Prerequisites for configuring HTTPS apt repo.
|
||||||
|
signal_desktop_apt_dependencies:
|
||||||
|
- apt-transport-https
|
||||||
|
|
||||||
|
# Pinning the Xenial repo, works fine on e.g. Debian Stretch.
|
||||||
|
# The Signal team does not maintain specific versions for other dists,
|
||||||
|
# so intentionally not using `{{ ansible_distribution }}`
|
||||||
|
signal_desktop_apt_repo: "deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main"
|
51
roles/freedomofpress.signal-desktop/files/signal-apt-key.asc
Executable file
51
roles/freedomofpress.signal-desktop/files/signal-apt-key.asc
Executable file
@ -0,0 +1,51 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
mQINBFjlSicBEACgho//0EzxuvuCn01LwFqGAgwPKcSSl4L+AWws5/YbsZZvmTBk
|
||||||
|
ggIiVOCIMh+d3cmGu5W3ydaeUbWbFGNsxO44EB5YBZcuLa5EzRKbNPVaOXKXmhp+
|
||||||
|
w0mEbkoKbF+3mz3lifwBnzcBpukyJDgcJSq8cXfq5JsDPR1KAL6ph/kwKeiDNg+8
|
||||||
|
oFgqfboukK56yPTYc9iM8hkTFdx9L6JCJaZGaDMfihoQm2caKAmqc+TlpgtKbBL0
|
||||||
|
t5hrzDpCPpJvCddu1NRysTcqfACSSocvoqY0dlbNPMN8j04LH8hcKGFipuLdI8qx
|
||||||
|
BFqlMIQJCVJhr05E8rEsI4nYEyG44YoPopTFLuQa+wewZsQkLwcfYeCecU1KxlpE
|
||||||
|
OI3xRtALJjA/C/AzUXVXsWn7Xpcble8i3CKkm5LgX5zvR6OxTbmBUmpNgKQiyxD6
|
||||||
|
TrP3uADm+0P6e8sJQtA7DlxZLA6HuSi+SQ2WNcuyLL3Q/lJE0qBRWVJ08nI9vvxR
|
||||||
|
vAs20LKxq+D1NDhZ2jfG2+5agY661fkx66CZNFdz5OgxJih1UXlwiHpn6qhP7Rub
|
||||||
|
OJ54CFb+EwyzDVVKj3EyIZ1FeN/0I8a0WZV6+Y/p08DsDLcKgqcDtK01ydWYP0tA
|
||||||
|
o1S2Z7Jsgya50W7ZuP/VkobDqhOmE0HDPggX3zEpXrZKuMnRAcz6Bgi6lwARAQAB
|
||||||
|
tDFPcGVuIFdoaXNwZXIgU3lzdGVtcyA8c3VwcG9ydEB3aGlzcGVyc3lzdGVtcy5v
|
||||||
|
cmc+iQI3BBMBCgAhBQJY5UonAhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJ
|
||||||
|
ENmAoXRX9vsGU00P/RBPPc5qx1EljTW3nnTtgugORrJhYl1CxNvrohVovAF4oP1b
|
||||||
|
UIGT5/3FoDsxJHSEIvorPFSaG2+3CBhMB1k950Ig2c2n+PTnNk6D0YIUbbEI0KTX
|
||||||
|
nLbCskdpy/+ICiaLfJZMe11wcQpkoNbG587JdQwnGegbQoo580CTSsYMdnvGzC8A
|
||||||
|
l1F7r37RVZToJMGgfMKK3oz8xIDXqOe5oiiKcV36tZ5V/PCDAu0hXYBRchtqHlHP
|
||||||
|
cKWeRTb1aDkbQ7SPlJ2bSvUjFdB6KahlSGJl3nIU5zAH2LA/tUQY16Z1QaJmfkEb
|
||||||
|
RY61B/LPv1TaA1SIUW32ej0NmeF09Ze4Cggdkacxv6E+CaBVbz5rLh6m91acBibm
|
||||||
|
pJdGWdZyQU90wYFRbSsqdDNB+0DvJy6AUg4e5f79JYDWT/Szdr0TLKmdPXOxa1Mb
|
||||||
|
i34UebYI7WF7q22e7AphpO/JbHcD+N6yYtN6FkUAmJskGkkgYzsM/G8OEbBRS7A+
|
||||||
|
eg3+NdQRFhKa7D7nIuufXDOTMUUkUqNYLC+qvZVPJrWnK9ZsGKsP0EUZTfEGkmEN
|
||||||
|
UzmASxyMMe6JHmm5Alk4evJeQ31U5jy7ntZSWEV1pSGmSEJLRNJtycciFJpsEp/p
|
||||||
|
LkL0iFb30R9bHBp6cg7gjXbqZ9ZpEsxtZMBuqS70ZZyQdu2yGDQCBk7eLKCjuQIN
|
||||||
|
BFjlSicBEACsxCLVUE7UuxsEjNblTpSEysoTD6ojc2nWP/eCiII5g6SwA/tQKiQI
|
||||||
|
ZcGZsTZB9kTbCw4T3hVEmzPl6u2G6sY9Kh1NHKMR3jXvMC+FHODhOGyAOPERjHCJ
|
||||||
|
g20XF2/Gg462iW8e3lS7CQBzbplUCW/oMajj2Qkc61NLtxxzsssXjCKExub2HxCQ
|
||||||
|
AYtenuDtLU73G75BoghWJ19dIkodnEI0/fzccsgiP5xeVgmkWJPo9xKJtrBS5gcS
|
||||||
|
s7yaGY9YYo71RFzkpJpeAeLrJJqt+2KqH1u0EJUbs8YVGXKlnYeSNisg4OaRsldW
|
||||||
|
JmDDCD5WUdFq2LNdVisfwirgjmwYpLrzVMbmzPvdmxQ1NYzJsX4ARSL/wuKCvEub
|
||||||
|
gh1AR5oV7mUEA9I3KRH0TIDOnH4nGG3kqArzrV2E1WtnNzFII0IN9/48xY7Vkxs7
|
||||||
|
Oil+E+wCpzUv/tF4ALx5TAXoPd66ddEOxzDrtBpEzsouszt7uUyncyT3X6ip5l9f
|
||||||
|
mI4uxbsjwkLVfd1WpD1uvp869oyx6wtHluswr1VY/cbnHO8J6J35JVMhYQdMOaTZ
|
||||||
|
rX6npe/YOHJ4a7YzLMfdrxyzK1wq5xu/9LgclMTdIhAKvnaXBg41jsid5n0GdIeW
|
||||||
|
ek8WAVNyvuvoTwm3GG6+/pkTwu0J79lAMD1mhJsuSca6SFNgYnd+PQARAQABiQIf
|
||||||
|
BBgBCgAJBQJY5UonAhsMAAoJENmAoXRX9vsGvRgQAJ4tWnK2TncCpu5nTCxYMXjW
|
||||||
|
LuvwORq8EBWczHS6SjLdwmSVKGKSYtl2n6nCkloVY6tONMoiCWmtcq7SJMJoyZw3
|
||||||
|
XIf82Z39tzn/conjQcP0aIOFzww1XG7YiaTAhsDZ62kchukI52jUYm2w8cTZMEZB
|
||||||
|
oIwIWBpmLlyaDhjIM5neY5RuL7IbIpS/fdk2lwfAwcNq6z/ri2E5RWl3AEINdLUO
|
||||||
|
gAiVMagNJaJ+ap7kMcwOLoI2GD84mmbtDWemdUZ3HnqLHv0mb1djsWL6LwjCuOgK
|
||||||
|
l2GDrWCh18mE+9mVB1Lo7jzYXNSHXQP6FlDE6FhGO1nNBs2IJzDvmewpnO+a/0pw
|
||||||
|
dCerATHWtrCKwMOHrbGLSiTKEjnNt/74gKjXxdFKQkpaEfMFCeiAOFP93tKjRRhP
|
||||||
|
5wf1JHBZ1r1+pgfZlS5F20XnM2+f/K1dWmgh+4Grx8pEHGQGLP+A22O7iWjg9pS+
|
||||||
|
LD3yikgyGGyQxgcN3sJBQ4yxakOUDZiljm3uNyklUMCiMjTvT/F02PalQMapvA5w
|
||||||
|
7Gwg5mSI8NDs3RtiG1rKl9Ytpdq7uHaStlHwGXBVfvayDDKnlpmndee2GBiU/hc2
|
||||||
|
ZsYHzEWKXME/ru6EZofUFxeVdev5+9ztYJBBZCGMug5Xp3Gxh/9JUWi6F1+9qAyz
|
||||||
|
N+O606NOXLwcmq5KZL0g
|
||||||
|
=zyVo
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
2
roles/freedomofpress.signal-desktop/handlers/main.yml
Executable file
2
roles/freedomofpress.signal-desktop/handlers/main.yml
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
# handlers file for signal-desktop
|
1
roles/freedomofpress.signal-desktop/meta/.galaxy_install_info
Executable file
1
roles/freedomofpress.signal-desktop/meta/.galaxy_install_info
Executable file
@ -0,0 +1 @@
|
|||||||
|
{install_date: 'Sun Jan 12 13:47:06 2020', version: master}
|
22
roles/freedomofpress.signal-desktop/meta/main.yml
Executable file
22
roles/freedomofpress.signal-desktop/meta/main.yml
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: Conor Schaefer (@conorsch)
|
||||||
|
description: Installs Signal Desktop on Linux hosts.
|
||||||
|
company: Freedom of the Press Foundation (@freedomofpress)
|
||||||
|
license: MIT
|
||||||
|
min_ansible_version: 2.4
|
||||||
|
platforms:
|
||||||
|
- name: Debian
|
||||||
|
versions:
|
||||||
|
- stretch
|
||||||
|
|
||||||
|
galaxy_tags:
|
||||||
|
- chat
|
||||||
|
- communications
|
||||||
|
- desktop
|
||||||
|
- encryption
|
||||||
|
- im
|
||||||
|
- secure
|
||||||
|
- signal
|
||||||
|
- workstation
|
||||||
|
dependencies: []
|
9
roles/freedomofpress.signal-desktop/molecule/default/Dockerfile.j2
Executable file
9
roles/freedomofpress.signal-desktop/molecule/default/Dockerfile.j2
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
# Molecule managed
|
||||||
|
|
||||||
|
FROM {{ item.image }}
|
||||||
|
|
||||||
|
RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get upgrade -y && apt-get install -y python sudo bash ca-certificates && apt-get clean; \
|
||||||
|
elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python python-devel python2-dnf bash && dnf clean all; \
|
||||||
|
elif [ $(command -v yum) ]; then yum makecache fast && yum update -y && yum install -y python sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \
|
||||||
|
elif [ $(command -v zypper) ]; then zypper refresh && zypper update -y && zypper install -y python sudo bash python-xml && zypper clean -a; \
|
||||||
|
elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; fi
|
16
roles/freedomofpress.signal-desktop/molecule/default/INSTALL.rst
Executable file
16
roles/freedomofpress.signal-desktop/molecule/default/INSTALL.rst
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
*******
|
||||||
|
Install
|
||||||
|
*******
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
============
|
||||||
|
|
||||||
|
* Docker Engine
|
||||||
|
* docker-py
|
||||||
|
|
||||||
|
Install
|
||||||
|
=======
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ sudo pip install docker-py
|
47
roles/freedomofpress.signal-desktop/molecule/default/create.yml
Executable file
47
roles/freedomofpress.signal-desktop/molecule/default/create.yml
Executable file
@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
- name: Create
|
||||||
|
hosts: localhost
|
||||||
|
connection: local
|
||||||
|
gather_facts: False
|
||||||
|
no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}"
|
||||||
|
vars:
|
||||||
|
molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}"
|
||||||
|
molecule_ephemeral_directory: "{{ lookup('env', 'MOLECULE_EPHEMERAL_DIRECTORY') }}"
|
||||||
|
molecule_scenario_directory: "{{ lookup('env', 'MOLECULE_SCENARIO_DIRECTORY') }}"
|
||||||
|
molecule_yml: "{{ lookup('file', molecule_file) | molecule_from_yaml }}"
|
||||||
|
tasks:
|
||||||
|
- name: Create Dockerfiles from image names
|
||||||
|
template:
|
||||||
|
src: "{{ molecule_scenario_directory }}/Dockerfile.j2"
|
||||||
|
dest: "{{ molecule_ephemeral_directory }}/Dockerfile_{{ item.image | regex_replace('[^a-zA-Z0-9_]', '_') }}"
|
||||||
|
with_items: "{{ molecule_yml.platforms }}"
|
||||||
|
register: platforms
|
||||||
|
|
||||||
|
- name: Discover local Docker images
|
||||||
|
docker_image_facts:
|
||||||
|
name: "molecule_local/{{ item.item.name }}"
|
||||||
|
with_items: "{{ platforms.results }}"
|
||||||
|
register: docker_images
|
||||||
|
|
||||||
|
- name: Build an Ansible compatible image
|
||||||
|
docker_image:
|
||||||
|
path: "{{ molecule_ephemeral_directory }}"
|
||||||
|
name: "molecule_local/{{ item.item.image }}"
|
||||||
|
dockerfile: "{{ item.item.dockerfile | default(item.invocation.module_args.dest) }}"
|
||||||
|
force: "{{ item.item.force | default(True) }}"
|
||||||
|
with_items: "{{ platforms.results }}"
|
||||||
|
when: platforms.changed or docker_images.results | map(attribute='images') | select('equalto', []) | list | count >= 0
|
||||||
|
|
||||||
|
- name: Create molecule instance(s)
|
||||||
|
docker_container:
|
||||||
|
name: "{{ item.name }}"
|
||||||
|
hostname: "{{ item.name }}"
|
||||||
|
image: "molecule_local/{{ item.image }}"
|
||||||
|
state: started
|
||||||
|
recreate: False
|
||||||
|
log_driver: syslog
|
||||||
|
command: "{{ item.command | default('sleep infinity') }}"
|
||||||
|
privileged: "{{ item.privileged | default(omit) }}"
|
||||||
|
volumes: "{{ item.volumes | default(omit) }}"
|
||||||
|
capabilities: "{{ item.capabilities | default(omit) }}"
|
||||||
|
with_items: "{{ molecule_yml.platforms }}"
|
16
roles/freedomofpress.signal-desktop/molecule/default/destroy.yml
Executable file
16
roles/freedomofpress.signal-desktop/molecule/default/destroy.yml
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
- name: Destroy
|
||||||
|
hosts: localhost
|
||||||
|
connection: local
|
||||||
|
gather_facts: False
|
||||||
|
no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}"
|
||||||
|
vars:
|
||||||
|
molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}"
|
||||||
|
molecule_yml: "{{ lookup('file', molecule_file) | molecule_from_yaml }}"
|
||||||
|
tasks:
|
||||||
|
- name: Destroy molecule instance(s)
|
||||||
|
docker_container:
|
||||||
|
name: "{{ item.name }}"
|
||||||
|
state: absent
|
||||||
|
force_kill: "{{ item.force_kill | default(True) }}"
|
||||||
|
with_items: "{{ molecule_yml.platforms }}"
|
20
roles/freedomofpress.signal-desktop/molecule/default/molecule.yml
Executable file
20
roles/freedomofpress.signal-desktop/molecule/default/molecule.yml
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
dependency:
|
||||||
|
name: galaxy
|
||||||
|
driver:
|
||||||
|
name: docker
|
||||||
|
lint:
|
||||||
|
name: yamllint
|
||||||
|
platforms:
|
||||||
|
- name: instance
|
||||||
|
image: debian:stretch
|
||||||
|
provisioner:
|
||||||
|
name: ansible
|
||||||
|
lint:
|
||||||
|
name: ansible-lint
|
||||||
|
scenario:
|
||||||
|
name: default
|
||||||
|
verifier:
|
||||||
|
name: testinfra
|
||||||
|
lint:
|
||||||
|
name: flake8
|
5
roles/freedomofpress.signal-desktop/molecule/default/playbook.yml
Executable file
5
roles/freedomofpress.signal-desktop/molecule/default/playbook.yml
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
- name: Converge
|
||||||
|
hosts: all
|
||||||
|
roles:
|
||||||
|
- role: signal-desktop
|
5
roles/freedomofpress.signal-desktop/molecule/default/prepare.yml
Executable file
5
roles/freedomofpress.signal-desktop/molecule/default/prepare.yml
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
- name: Prepare
|
||||||
|
hosts: all
|
||||||
|
gather_facts: False
|
||||||
|
tasks: []
|
15
roles/freedomofpress.signal-desktop/molecule/default/tests/test_default.py
Executable file
15
roles/freedomofpress.signal-desktop/molecule/default/tests/test_default.py
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
import testinfra.utils.ansible_runner
|
||||||
|
|
||||||
|
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
||||||
|
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('pkg', [
|
||||||
|
'apt-transport-https',
|
||||||
|
'signal-desktop',
|
||||||
|
])
|
||||||
|
def test_packages_installed(host, pkg):
|
||||||
|
assert host.package(pkg).is_installed
|
27
roles/freedomofpress.signal-desktop/tasks/main.yml
Executable file
27
roles/freedomofpress.signal-desktop/tasks/main.yml
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
# tasks file for signal-desktop
|
||||||
|
- name: Installs apt repo prerequisites.
|
||||||
|
become: yes
|
||||||
|
apt:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: present
|
||||||
|
with_items: "{{ signal_desktop_apt_dependencies }}"
|
||||||
|
|
||||||
|
- name: Install Signal apt repo GPG key.
|
||||||
|
become: yes
|
||||||
|
apt_key:
|
||||||
|
data: "{{ lookup('file', 'signal-apt-key.asc') }}"
|
||||||
|
state: present
|
||||||
|
keyring: /etc/apt/trusted.gpg.d/signal-desktop.gpg
|
||||||
|
|
||||||
|
- name: Add Signal apt repo.
|
||||||
|
become: yes
|
||||||
|
apt_repository:
|
||||||
|
repo: "{{ signal_desktop_apt_repo }}"
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Installs Signal desktop.
|
||||||
|
become: yes
|
||||||
|
apt:
|
||||||
|
name: signal-desktop
|
||||||
|
state: present
|
2
roles/freedomofpress.signal-desktop/vars/main.yml
Executable file
2
roles/freedomofpress.signal-desktop/vars/main.yml
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
# vars file for signal-desktop
|
10
roles/ontic.fonts/.gitignore
vendored
Executable file
10
roles/ontic.fonts/.gitignore
vendored
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
# IDE
|
||||||
|
/.cache/
|
||||||
|
/.externalToolBuilders/
|
||||||
|
/.idea/
|
||||||
|
/.settings/
|
||||||
|
/.buildpath
|
||||||
|
/.project
|
||||||
|
|
||||||
|
# Vagrant
|
||||||
|
/.vagrant/
|
30
roles/ontic.fonts/.travis.yml
Executable file
30
roles/ontic.fonts/.travis.yml
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
# Copyright (c) Ontic. (http://www.ontic.com.au). All rights reserved.
|
||||||
|
# See the COPYING file bundled with this package for license details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
services: 'docker'
|
||||||
|
|
||||||
|
env:
|
||||||
|
- distribution: 'centos'
|
||||||
|
version: '7'
|
||||||
|
- distribution: 'debian'
|
||||||
|
version: '9'
|
||||||
|
- distribution: 'ubuntu'
|
||||||
|
version: '16.04'
|
||||||
|
- distribution: 'ubuntu'
|
||||||
|
version: '18.04'
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- 'export container_id=$(date +%s)'
|
||||||
|
- 'export cleanup=false'
|
||||||
|
- 'wget -O ${PWD}/tests/docker.sh https://raw.githubusercontent.com/ontic/ansible-role-test/master/docker.sh'
|
||||||
|
- 'chmod +x ${PWD}/tests/docker.sh'
|
||||||
|
- '${PWD}/tests/docker.sh build'
|
||||||
|
|
||||||
|
script:
|
||||||
|
- '${PWD}/tests/docker.sh test'
|
||||||
|
- '${PWD}/tests/docker.sh verify'
|
||||||
|
|
||||||
|
notifications:
|
||||||
|
webhooks: 'https://galaxy.ansible.com/api/v1/notifications/'
|
5
roles/ontic.fonts/COPYING
Executable file
5
roles/ontic.fonts/COPYING
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
Copyright (c) 2010-2018 Ontic. (http://www.ontic.com.au). All rights reserved.
|
||||||
|
|
||||||
|
Each Ontic source file included in this distribution is subject to the New BSD license
|
||||||
|
that is bundled with this package in the LICENSE file. To understand any restrictions on
|
||||||
|
the use and redistribution of this package please see the LICENSE file for precise details.
|
26
roles/ontic.fonts/LICENSE
Executable file
26
roles/ontic.fonts/LICENSE
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
Copyright (c) 2010-2018 Ontic. (http://www.ontic.com.au). All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
* Neither the name of Ontic (http://www.ontic.com.au). nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived from this
|
||||||
|
software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
81
roles/ontic.fonts/README.md
Executable file
81
roles/ontic.fonts/README.md
Executable file
@ -0,0 +1,81 @@
|
|||||||
|
# Ontic Fonts 
|
||||||
|
|
||||||
|
| Branch | Build | Galaxy | Release |
|
||||||
|
| :----------------- | :------------------ | :------------------ | :------------------- |
|
||||||
|
| **master** | [](https://travis-ci.org/ontic/ansible-role-fonts) | [](https://galaxy.ansible.com/ontic/fonts) | [](https://github.com/ontic/ansible-role-fonts/releases) |
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
This role installs fonts on RedHat/CentOS and Debian/Ubuntu Linux servers.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
| Name | Version |
|
||||||
|
| :-------------------------------------------------------------------------------------------- | :------------ |
|
||||||
|
None | N/A |
|
||||||
|
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
We strongly suggest installing this role using [Ansible Galaxy](https://galaxy.ansible.com) so that any dependencies
|
||||||
|
will get resolved and downloaded automatically. However, we've listed a few other alternatives.
|
||||||
|
|
||||||
|
### 1.1 Downloading
|
||||||
|
|
||||||
|
Download the project files as a `.zip` archive, extracting them into your `./roles/` directory.
|
||||||
|
|
||||||
|
### 1.2 Cloning
|
||||||
|
|
||||||
|
Clone the project it into your `./roles/` directory.
|
||||||
|
|
||||||
|
### 1.3 Ansible Galaxy
|
||||||
|
|
||||||
|
The easiest way to install this module is via the command line:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ansible-galaxy install ontic.fonts
|
||||||
|
```
|
||||||
|
|
||||||
|
If you have multiple roles to install, the ansible-galaxy CLI can be fed a `requirements.yml` file.
|
||||||
|
|
||||||
|
```yml
|
||||||
|
- src: ontic.fonts
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ansible-galaxy install -r requirements.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternatively you could download the source by setting the repository in your `requirements.yml` file:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
- src: git+https://github.com/ontic/ansible-role-fonts.git
|
||||||
|
version: master
|
||||||
|
name: ontic.fonts
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.1 Enabling
|
||||||
|
|
||||||
|
Enable the role in your playbook file.
|
||||||
|
|
||||||
|
```yml
|
||||||
|
- name: Example web server
|
||||||
|
hosts: web_servers
|
||||||
|
roles:
|
||||||
|
- { role: ontic.fonts }
|
||||||
|
```
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
Full documentation is available in the [docs](/docs) directory.
|
||||||
|
|
||||||
|
## Contributors
|
||||||
|
|
||||||
|
Below lists all individuals having contributed to the repository. If you would like to get involved, we encourage
|
||||||
|
you to do so by making a [pull](../../pulls) request or submitting an [issue](../../issues).
|
||||||
|
|
||||||
|
* [Adam Dyson](https://github.com/adamdyson)
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Licensed under the BSD License. See the [LICENSE](/LICENSE) file for details.
|
7
roles/ontic.fonts/defaults/main.yml
Executable file
7
roles/ontic.fonts/defaults/main.yml
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
# Copyright (c) Ontic. (http://www.ontic.com.au). All rights reserved.
|
||||||
|
# See the COPYING file bundled with this package for license details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
fonts_shared:
|
||||||
|
fonts_user:
|
20
roles/ontic.fonts/docs/README.md
Executable file
20
roles/ontic.fonts/docs/README.md
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
# Documentation
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
```
|
||||||
|
fonts_shared:
|
||||||
|
- type: 'truetype'
|
||||||
|
src: 'Fabulous.ttf'
|
||||||
|
dest: 'dafont/Fabulous.ttf'
|
||||||
|
fonts_user:
|
||||||
|
- name: 'johndoe'
|
||||||
|
type: 'opentype'
|
||||||
|
src: 'Aulyars.otf'
|
||||||
|
dest: 'dafont/Aulyars.otf'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Role Variables
|
||||||
|
|
||||||
|
Available variables are listed below, along with default values (see [defaults/main.yml](/defaults/main.yml)):
|
||||||
|
|
8
roles/ontic.fonts/handlers/main.yml
Executable file
8
roles/ontic.fonts/handlers/main.yml
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
# Copyright (c) Ontic. (http://www.ontic.com.au). All rights reserved.
|
||||||
|
# See the COPYING file bundled with this package for license details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: 'rebuild fonts cache'
|
||||||
|
become: yes
|
||||||
|
shell: 'fc-cache -v -f'
|
1
roles/ontic.fonts/meta/.galaxy_install_info
Executable file
1
roles/ontic.fonts/meta/.galaxy_install_info
Executable file
@ -0,0 +1 @@
|
|||||||
|
{install_date: 'Fri Jan 10 18:39:38 2020', version: v2.4.0}
|
31
roles/ontic.fonts/meta/main.yml
Executable file
31
roles/ontic.fonts/meta/main.yml
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
# Copyright (c) Ontic. (http://www.ontic.com.au). All rights reserved.
|
||||||
|
# See the COPYING file bundled with this package for license details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
dependencies: []
|
||||||
|
|
||||||
|
galaxy_info:
|
||||||
|
author: 'Adam Dyson'
|
||||||
|
description: 'This role installs fonts on RedHat/CentOS and Debian/Ubuntu Linux servers.'
|
||||||
|
company: 'Ontic'
|
||||||
|
license: 'BSD-3-Clause'
|
||||||
|
min_ansible_version: '2.4'
|
||||||
|
platforms:
|
||||||
|
- name: 'Ubuntu'
|
||||||
|
versions:
|
||||||
|
- 'xenial'
|
||||||
|
- 'bionic'
|
||||||
|
- name: 'Debian'
|
||||||
|
versions:
|
||||||
|
- 'stretch'
|
||||||
|
- name: 'EL'
|
||||||
|
versions:
|
||||||
|
- '7'
|
||||||
|
galaxy_tags:
|
||||||
|
- 'ontic'
|
||||||
|
- 'system'
|
||||||
|
- 'typography'
|
||||||
|
- 'font'
|
||||||
|
- 'truetype'
|
||||||
|
- 'opentype'
|
52
roles/ontic.fonts/tasks/configure.yml
Executable file
52
roles/ontic.fonts/tasks/configure.yml
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
# Copyright (c) Ontic. (http://www.ontic.com.au). All rights reserved.
|
||||||
|
# See the COPYING file bundled with this package for license details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: 'Fonts | Configure shared font directories.'
|
||||||
|
become: yes
|
||||||
|
file:
|
||||||
|
path: '/usr/local/share/fonts/{{ item.type }}/{{ item.dest | dirname }}'
|
||||||
|
state: 'directory'
|
||||||
|
group: 'root'
|
||||||
|
owner: 'root'
|
||||||
|
mode: '0755'
|
||||||
|
with_items: '{{ fonts_shared }}'
|
||||||
|
when: 'fonts_shared | default(None) != None'
|
||||||
|
|
||||||
|
- name: 'Fonts | Configure shared fonts.'
|
||||||
|
become: yes
|
||||||
|
copy:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: '/usr/local/share/fonts/{{ item.type }}/{{ item.dest }}'
|
||||||
|
owner: 'root'
|
||||||
|
group: 'root'
|
||||||
|
mode: '0644'
|
||||||
|
register: 'fonts_shared_installed'
|
||||||
|
notify: 'rebuild fonts cache'
|
||||||
|
with_items: '{{ fonts_shared }}'
|
||||||
|
when: 'fonts_shared | default(None) != None'
|
||||||
|
|
||||||
|
- name: 'Fonts | Configure user font directories.'
|
||||||
|
become: yes
|
||||||
|
file:
|
||||||
|
path: '/home/{{ item.name }}/.fonts/{{ item.type }}/{{ item.dest | dirname }}'
|
||||||
|
state: 'directory'
|
||||||
|
owner: '{{ item.owner | default(item.name) }}'
|
||||||
|
group: '{{ item.group | default(omit) }}'
|
||||||
|
mode: '0755'
|
||||||
|
with_items: '{{ fonts_user }}'
|
||||||
|
when: 'fonts_user | default(None) != None'
|
||||||
|
|
||||||
|
- name: 'Fonts | Configure user fonts.'
|
||||||
|
become: yes
|
||||||
|
copy:
|
||||||
|
src: '{{ item.src }}'
|
||||||
|
dest: '/home/{{ item.name }}/.fonts/{{ item.type }}/{{ item.dest }}'
|
||||||
|
owner: '{{ item.owner | default(item.name) }}'
|
||||||
|
group: '{{ item.group | default(omit) }}'
|
||||||
|
mode: '{{ item.mode | default(omit) }}'
|
||||||
|
register: 'fonts_user_installed'
|
||||||
|
notify: 'rebuild fonts cache'
|
||||||
|
with_items: '{{ fonts_user }}'
|
||||||
|
when: 'fonts_user | default(None) != None'
|
28
roles/ontic.fonts/tasks/main.yml
Executable file
28
roles/ontic.fonts/tasks/main.yml
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
# Copyright (c) Ontic. (http://www.ontic.com.au). All rights reserved.
|
||||||
|
# See the COPYING file bundled with this package for license details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: 'Fonts | Include OS-specific variables.'
|
||||||
|
include_vars: '{{ item }}'
|
||||||
|
with_first_found:
|
||||||
|
- '{{ ansible_distribution }}.yml'
|
||||||
|
- '{{ ansible_os_family }}.yml'
|
||||||
|
tags:
|
||||||
|
- 'fonts'
|
||||||
|
- 'fonts-package'
|
||||||
|
- 'fonts-configure'
|
||||||
|
- 'package'
|
||||||
|
- 'configure'
|
||||||
|
|
||||||
|
- import_tasks: 'package.yml'
|
||||||
|
tags:
|
||||||
|
- 'fonts'
|
||||||
|
- 'fonts-package'
|
||||||
|
- 'package'
|
||||||
|
|
||||||
|
- import_tasks: 'configure.yml'
|
||||||
|
tags:
|
||||||
|
- 'fonts'
|
||||||
|
- 'fonts-configure'
|
||||||
|
- 'configure'
|
78
roles/ontic.fonts/tasks/package.yml
Executable file
78
roles/ontic.fonts/tasks/package.yml
Executable file
@ -0,0 +1,78 @@
|
|||||||
|
# Copyright (c) Ontic. (http://www.ontic.com.au). All rights reserved.
|
||||||
|
# See the COPYING file bundled with this package for license details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: 'Fonts | Debian | Install HTTPS transport.'
|
||||||
|
become: yes
|
||||||
|
apt:
|
||||||
|
name: 'apt-transport-https'
|
||||||
|
state: 'latest'
|
||||||
|
when: 'ansible_os_family == "Debian"'
|
||||||
|
|
||||||
|
- name: 'Fonts | Debian | Update repository list.'
|
||||||
|
become: yes
|
||||||
|
apt_repository:
|
||||||
|
repo: '{{ item }}'
|
||||||
|
state: 'present'
|
||||||
|
update_cache: false
|
||||||
|
register: 'fonts_multiverse_installed'
|
||||||
|
notify: 'rebuild fonts cache'
|
||||||
|
with_items: '{{ fonts_repositories }}'
|
||||||
|
when: 'ansible_distribution == "Debian"'
|
||||||
|
|
||||||
|
- name: 'Fonts | Debian | Update APT cache.'
|
||||||
|
become: yes
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
when: 'ansible_os_family == "Debian" and fonts_multiverse_installed.changed'
|
||||||
|
|
||||||
|
- name: 'Fonts | Debian | Install Microsoft Core Fonts prerequisites.'
|
||||||
|
become: yes
|
||||||
|
apt:
|
||||||
|
name: '{{ item }}'
|
||||||
|
state: 'present'
|
||||||
|
with_items:
|
||||||
|
- 'libfreetype6'
|
||||||
|
- 'libfreetype6-dev'
|
||||||
|
- 'fontconfig'
|
||||||
|
when: 'ansible_os_family == "Debian"'
|
||||||
|
|
||||||
|
- name: 'Fonts | Debian | Accept Microsoft Core Fonts EULA.'
|
||||||
|
become: yes
|
||||||
|
debconf:
|
||||||
|
name: 'ttf-mscorefonts-installer'
|
||||||
|
question: 'msttcorefonts/accepted-mscorefonts-eula'
|
||||||
|
value: 'true'
|
||||||
|
vtype: 'select'
|
||||||
|
when: 'ansible_os_family == "Debian"'
|
||||||
|
|
||||||
|
- name: 'Fonts | Debian | Install Microsoft Core Fonts.'
|
||||||
|
become: yes
|
||||||
|
apt:
|
||||||
|
name: 'ttf-mscorefonts-installer'
|
||||||
|
state: 'present'
|
||||||
|
register: 'fonts_microsoft_installed'
|
||||||
|
notify: 'rebuild fonts cache'
|
||||||
|
when: 'ansible_os_family == "Debian"'
|
||||||
|
|
||||||
|
- name: 'Fonts | RedHat | Install Microsoft Core Fonts prerequisites.'
|
||||||
|
become: yes
|
||||||
|
yum:
|
||||||
|
name: '{{ item }}'
|
||||||
|
state: 'present'
|
||||||
|
with_items:
|
||||||
|
- 'curl'
|
||||||
|
- 'cabextract'
|
||||||
|
- 'xorg-x11-font-utils'
|
||||||
|
- 'fontconfig'
|
||||||
|
when: 'ansible_os_family == "RedHat"'
|
||||||
|
|
||||||
|
- name: 'Fonts | RedHat | Install Microsoft Core Fonts.'
|
||||||
|
become: yes
|
||||||
|
yum:
|
||||||
|
name: 'https://raw.githubusercontent.com/therevoman/mscorefonts2-code/master/RPMS/noarch/msttcore-fonts-installer-2.6-1.noarch.rpm'
|
||||||
|
state: 'present'
|
||||||
|
validate_certs: no
|
||||||
|
notify: 'rebuild fonts cache'
|
||||||
|
when: 'ansible_os_family == "RedHat"'
|
BIN
roles/ontic.fonts/tests/fonts/Aulyars.otf
Executable file
BIN
roles/ontic.fonts/tests/fonts/Aulyars.otf
Executable file
Binary file not shown.
BIN
roles/ontic.fonts/tests/fonts/Fabulous.ttf
Executable file
BIN
roles/ontic.fonts/tests/fonts/Fabulous.ttf
Executable file
Binary file not shown.
6
roles/ontic.fonts/tests/test-verify.sh
Executable file
6
roles/ontic.fonts/tests/test-verify.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Copyright (c) Ontic. (http://www.ontic.com.au). All rights reserved.
|
||||||
|
# See the COPYING file bundled with this package for license details.
|
||||||
|
|
||||||
|
# Verify the installed fonts.
|
||||||
|
docker exec --tty ${container_id} env TERM=xterm fc-list | grep true | sed -e "s|^.*/||" -e "s/:style=\(\<.*\>\).*$/ - \1/" -e "s/,.*$//" | sort
|
18
roles/ontic.fonts/tests/test.yml
Executable file
18
roles/ontic.fonts/tests/test.yml
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
# Copyright (c) Ontic. (http://www.ontic.com.au). All rights reserved.
|
||||||
|
# See the COPYING file bundled with this package for license details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
- hosts: 'localhost'
|
||||||
|
vars:
|
||||||
|
fonts_shared:
|
||||||
|
- type: 'truetype'
|
||||||
|
src: '{{ role_path }}/tests/fonts/Fabulous.ttf'
|
||||||
|
dest: 'dafont/Fabulous.ttf'
|
||||||
|
fonts_user:
|
||||||
|
- name: 'root'
|
||||||
|
type: 'opentype'
|
||||||
|
src: '{{ role_path }}/tests/fonts/Aulyars.otf'
|
||||||
|
dest: 'dafont/Aulyars.otf'
|
||||||
|
roles:
|
||||||
|
- { role: 'role_under_test' }
|
8
roles/ontic.fonts/vars/Debian.yml
Executable file
8
roles/ontic.fonts/vars/Debian.yml
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
# Copyright (c) Ontic. (http://www.ontic.com.au). All rights reserved.
|
||||||
|
# See the COPYING file bundled with this package for license details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
fonts_repositories:
|
||||||
|
- 'deb http://ftp.debian.org/debian/ stable main non-free contrib'
|
||||||
|
- 'deb-src http://ftp.debian.org/debian/ stable main non-free contrib'
|
5
roles/ontic.fonts/vars/RedHat.yml
Executable file
5
roles/ontic.fonts/vars/RedHat.yml
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
# Copyright (c) Ontic. (http://www.ontic.com.au). All rights reserved.
|
||||||
|
# See the COPYING file bundled with this package for license details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
10
roles/ontic.fonts/vars/Ubuntu.yml
Executable file
10
roles/ontic.fonts/vars/Ubuntu.yml
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
# Copyright (c) Ontic. (http://www.ontic.com.au). All rights reserved.
|
||||||
|
# See the COPYING file bundled with this package for license details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
fonts_repositories:
|
||||||
|
- 'deb http://archive.ubuntu.com/ubuntu {{ ansible_distribution_release }} multiverse'
|
||||||
|
- 'deb-src http://archive.ubuntu.com/ubuntu {{ ansible_distribution_release }} multiverse'
|
||||||
|
- 'deb http://archive.ubuntu.com/ubuntu {{ ansible_distribution_release }}-updates multiverse'
|
||||||
|
- 'deb-src http://archive.ubuntu.com/ubuntu {{ ansible_distribution_release }}-updates multiverse'
|
2
roles/weareinteractive.apt/.ansible-lint
Executable file
2
roles/weareinteractive.apt/.ansible-lint
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
exclude_paths:
|
||||||
|
- ./meta/readme.yml
|
4
roles/weareinteractive.apt/.clog.toml
Executable file
4
roles/weareinteractive.apt/.clog.toml
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
[clog]
|
||||||
|
changelog = "CHANGELOG.md"
|
||||||
|
repository = "https://github.com/weareinteractive/ansible-apt"
|
||||||
|
from-latest-tag = true
|
19
roles/weareinteractive.apt/.editorconfig
Executable file
19
roles/weareinteractive.apt/.editorconfig
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
# EditorConfig helps developers define and maintain consistent
|
||||||
|
# coding styles between different editors and IDEs
|
||||||
|
# editorconfig.org
|
||||||
|
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
# Change these settings to your own preference
|
||||||
|
indent_size = 2
|
||||||
|
indent_style = space
|
||||||
|
|
||||||
|
# We recommend you to keep these unchanged
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[Makefile]
|
||||||
|
indent_style = tab
|
8
roles/weareinteractive.apt/.gitignore
vendored
Executable file
8
roles/weareinteractive.apt/.gitignore
vendored
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
*.log
|
||||||
|
*.retry
|
||||||
|
.DS_Store
|
||||||
|
.vagrant
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/settings.json
|
||||||
|
!.vscode/extensions.json
|
||||||
|
.idea
|
60
roles/weareinteractive.apt/.travis.yml
Executable file
60
roles/weareinteractive.apt/.travis.yml
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
sudo: required
|
||||||
|
language: python
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
|
env:
|
||||||
|
global:
|
||||||
|
- role: weareinteractive.apt
|
||||||
|
matrix:
|
||||||
|
- distribution: Ubuntu
|
||||||
|
distribution_version: "18.04"
|
||||||
|
init: /lib/systemd/systemd
|
||||||
|
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
||||||
|
- distribution: Ubuntu
|
||||||
|
distribution_version: "16.04"
|
||||||
|
init: /lib/systemd/systemd
|
||||||
|
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
||||||
|
- distribution: Ubuntu
|
||||||
|
distribution_version: "14.04"
|
||||||
|
init: /sbin/init
|
||||||
|
run_opts: ""
|
||||||
|
- distribution: Debian
|
||||||
|
distribution_version: "9"
|
||||||
|
init: /lib/systemd/systemd
|
||||||
|
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
||||||
|
- distribution: Debian
|
||||||
|
distribution_version: "8"
|
||||||
|
init: /lib/systemd/systemd
|
||||||
|
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- sudo apt-get update
|
||||||
|
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
|
||||||
|
- docker pull ansiblecheck/ansiblecheck:"${distribution,,}"-"${distribution_version}"
|
||||||
|
|
||||||
|
script:
|
||||||
|
- container_id=$(mktemp)
|
||||||
|
# Start The Built Container In The Background
|
||||||
|
- docker run -d -v "${PWD}":/etc/ansible/roles/${role}:ro ${run_opts} ansiblecheck/ansiblecheck:"${distribution,,}"-"${distribution_version}" "${init}" > "${container_id}"
|
||||||
|
|
||||||
|
# Print ansible version
|
||||||
|
- docker exec -t "$(cat ${container_id})" env TERM=xterm ansible --version
|
||||||
|
|
||||||
|
# Ansible syntax check.
|
||||||
|
- 'docker exec -t "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/${role}/tests/main.yml --syntax-check'
|
||||||
|
|
||||||
|
# Test role.
|
||||||
|
- 'docker exec "$(cat ${container_id})" env ANSIBLE_FORCE_COLOR=1 ansible-playbook /etc/ansible/roles/${role}/tests/main.yml'
|
||||||
|
|
||||||
|
# Test Idempotence
|
||||||
|
- idempotence=$(mktemp)
|
||||||
|
- docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/${role}/tests/main.yml | tee -a ${idempotence}
|
||||||
|
- >
|
||||||
|
tail ${idempotence}
|
||||||
|
| grep -q 'failed=0'
|
||||||
|
&& (echo 'Idempotence test: pass' && exit 0)
|
||||||
|
|| (echo 'Idempotence test: fail' && exit 1)
|
||||||
|
|
||||||
|
notifications:
|
||||||
|
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
5
roles/weareinteractive.apt/.vscode/extensions.json
vendored
Executable file
5
roles/weareinteractive.apt/.vscode/extensions.json
vendored
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"recommendations": [
|
||||||
|
"vscoss.vscode-ansible"
|
||||||
|
]
|
||||||
|
}
|
5
roles/weareinteractive.apt/.vscode/settings.json
vendored
Executable file
5
roles/weareinteractive.apt/.vscode/settings.json
vendored
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"files.associations": {
|
||||||
|
"*.yml": "ansible"
|
||||||
|
}
|
||||||
|
}
|
230
roles/weareinteractive.apt/CHANGELOG.md
Executable file
230
roles/weareinteractive.apt/CHANGELOG.md
Executable file
@ -0,0 +1,230 @@
|
|||||||
|
<a name="2.9.1"></a>
|
||||||
|
### 2.9.1 (2019-12-08)
|
||||||
|
|
||||||
|
|
||||||
|
#### Bug Fixes
|
||||||
|
|
||||||
|
* fix lint error ([65f889bd](https://github.com/weareinteractive/ansible-apt/commit/65f889bd07e3a7fd33e7df42023e7543b8af7c4a))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.9.0"></a>
|
||||||
|
## 2.9.0 (2019-12-08)
|
||||||
|
|
||||||
|
|
||||||
|
#### Bug Fixes
|
||||||
|
|
||||||
|
* fix logic with apt_remove_recommends variable ([eaea78e1](https://github.com/weareinteractive/ansible-apt/commit/eaea78e1fb43f86b2a27db23ba121e805de8d835))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.8.0"></a>
|
||||||
|
## 2.8.0 (2019-10-18)
|
||||||
|
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* remove depricated apt_remount_filesystem ([7ca12fb4](https://github.com/weareinteractive/ansible-apt/commit/7ca12fb483e0cd8272589e5b1393e4c74611fb2a))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.7.0"></a>
|
||||||
|
## 2.7.0 (2019-09-16)
|
||||||
|
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* extend unattended update config Merge branch 'pbessonies-feature/update_unattended_template' ([7b2c0e4f](https://github.com/weareinteractive/ansible-apt/commit/7b2c0e4fadf07feb8ef3a97425a282b38315a44b))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.6.1"></a>
|
||||||
|
### 2.6.1 (2019-09-16)
|
||||||
|
|
||||||
|
|
||||||
|
#### Bug Fixes
|
||||||
|
|
||||||
|
* ensure unattended-upgrades package installation ([03740eea](https://github.com/weareinteractive/ansible-apt/commit/03740eea70fdf744256e708798ea048be22a2a9e))
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* add bool check ([1f9f71d3](https://github.com/weareinteractive/ansible-apt/commit/1f9f71d32df59563ebb2fb40b82ddc2e916e9de8))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.5.1"></a>
|
||||||
|
### 2.5.1 (2019-06-17)
|
||||||
|
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* update syntax to ansible 2.8 ([fa5f8740](https://github.com/weareinteractive/ansible-apt/commit/fa5f87400d1d1db233bffcf8ced0b82c6460fd4d))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.5.0"></a>
|
||||||
|
## 2.5.0 (2018-12-12)
|
||||||
|
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* add apt pinning ([349d5b09](https://github.com/weareinteractive/ansible-apt/commit/349d5b09a9b90513da4b66829eca1172da692e96))
|
||||||
|
* added apt pinning ([d66994de](https://github.com/weareinteractive/ansible-apt/commit/d66994de87a291cb5a2ebfe2ed4867e290ad68fb))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.4.2"></a>
|
||||||
|
### 2.4.2 (2018-11-01)
|
||||||
|
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* add options to apt_keys and apt_repositories ([f2ce4e0e](https://github.com/weareinteractive/ansible-apt/commit/f2ce4e0e6d41f539610adb34e0ac1093e482677c))
|
||||||
|
* added options ([bb80fe88](https://github.com/weareinteractive/ansible-apt/commit/bb80fe8804ee2bac18065b89a8abcadc14f0ed9b))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.4.1"></a>
|
||||||
|
### 2.4.1 (2018-11-01)
|
||||||
|
|
||||||
|
|
||||||
|
#### Bug Fixes
|
||||||
|
|
||||||
|
* fix deprication warning for ansible 2.7 and apt package loops ([556b6445](https://github.com/weareinteractive/ansible-apt/commit/556b6445e748004846c6e16248d9d92b69afd0c3))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.5.0"></a>
|
||||||
|
## 2.5.0 (2018-10-08)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.3.1"></a>
|
||||||
|
### 2.3.1 (2017-12-18)
|
||||||
|
|
||||||
|
|
||||||
|
#### Bug Fixes
|
||||||
|
|
||||||
|
* rename missing include to include_tasks ([da051d29](https://github.com/weareinteractive/ansible-apt/commit/da051d29e279e48061e7e6b41f504a00f1508b16))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.3.0"></a>
|
||||||
|
## 2.3.0 (2017-12-18)
|
||||||
|
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* upgrade tasks for ansible 2.4 ([6e5a1ca4](https://github.com/weareinteractive/ansible-apt/commit/6e5a1ca49a855e7c183446cb4a2d817d58bab59f))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.2.0"></a>
|
||||||
|
## 2.2.0 (2017-08-24)
|
||||||
|
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* add option to alter solution cost ([cfaf694c](https://github.com/weareinteractive/ansible-apt/commit/cfaf694c6ea921e6d6209db0e851c84dd35c8fe2))
|
||||||
|
* allow multiple file systems to be remounted ([5cb5a96c](https://github.com/weareinteractive/ansible-apt/commit/5cb5a96cfbdce66f7b5f4d2f7716e1e30279ac98))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.1.0"></a>
|
||||||
|
## 2.1.0 (2017-01-27)
|
||||||
|
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* use builtin autoremove option ([87a34935](https://github.com/weareinteractive/ansible-apt/commit/87a34935874f78d4752f2557c9094496eb51a391))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.0.3"></a>
|
||||||
|
### 2.0.3 (2016-08-18)
|
||||||
|
|
||||||
|
|
||||||
|
#### Bug Fixes
|
||||||
|
|
||||||
|
* fix proxy config conditions ([27787e80](https://github.com/weareinteractive/ansible-apt/commit/27787e80dc805a828af35b7206aae835e9d8b0aa))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.0.2"></a>
|
||||||
|
### 2.0.2 (2016-04-25)
|
||||||
|
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* always get latest unattended-upgrades instead of just present ([a927d6af](https://github.com/weareinteractive/ansible-apt/commit/a927d6afbc0b35481c5eea3623cd5eebf7a3d415))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.0.1"></a>
|
||||||
|
### 2.0.1 (2016-03-22)
|
||||||
|
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* escape bare variables ([96525b39](https://github.com/weareinteractive/ansible-apt/commit/96525b393671352973d81abfcb942272f70dc6bd))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="2.0.0"></a>
|
||||||
|
## 2.0.0 (2016-03-15)
|
||||||
|
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* update to ansible 2.0 ([052bc675](https://github.com/weareinteractive/ansible-apt/commit/052bc675f01ded71c7bd9bd7e8154ecb2f600c4a))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.8.0"></a>
|
||||||
|
## 1.8.0 (2016-01-11)
|
||||||
|
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* add support for proxy servers ([91ae92f5](https://github.com/weareinteractive/ansible-apt/commit/91ae92f56e7f3fa2f9851adc03235d3985dd7b7e))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.7.1"></a>
|
||||||
|
### 1.7.1 (2015-12-03)
|
||||||
|
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* adds variables to configure apt ([3ec652be](https://github.com/weareinteractive/ansible-apt/commit/3ec652be9513b0d8b9b1bb7f317aa6a4c30256ff))
|
||||||
|
* only adds 50unattended-upgrades config if enabled ([14742e5e](https://github.com/weareinteractive/ansible-apt/commit/14742e5ee87bf135edf8756ce9cd197ca65b346d))
|
||||||
|
* updates travis tests ([2d1873da](https://github.com/weareinteractive/ansible-apt/commit/2d1873daec0e1b76e4bcafbb898ac63c4b12e91f))
|
||||||
|
* using ansible-role to generate README ([3abe7246](https://github.com/weareinteractive/ansible-apt/commit/3abe72463af5d4d101570e233d497a96e910e4ea))
|
||||||
|
* adds CHANGELOG ([5f4c6673](https://github.com/weareinteractive/ansible-apt/commit/5f4c66734445e239fb96faec557a6c5e708cd5b3))
|
||||||
|
|
||||||
|
#### Bug Fixes
|
||||||
|
|
||||||
|
* fixes quotation marks on 'APT::Periodic::Enable' value ([bf19c900](https://github.com/weareinteractive/ansible-apt/commit/bf19c90034badb1173ad9b204d815d17cd33ba9d))
|
||||||
|
* fixes the usage of unattended upgrades ([04f25734](https://github.com/weareinteractive/ansible-apt/commit/04f25734fa29aba48ec3f9461c9488785bfe8ae3))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="1.7.0"></a>
|
||||||
|
## 1.7.0 (2015-11-30)
|
||||||
|
|
||||||
|
|
||||||
|
#### Features
|
||||||
|
|
||||||
|
* adds variables to configure apt ([3ec652be](https://github.com/weareinteractive/ansible-apt/commit/3ec652be9513b0d8b9b1bb7f317aa6a4c30256ff))
|
||||||
|
* only adds 50unattended-upgrades config if enabled ([14742e5e](https://github.com/weareinteractive/ansible-apt/commit/14742e5ee87bf135edf8756ce9cd197ca65b346d))
|
||||||
|
* updates travis tests ([2d1873da](https://github.com/weareinteractive/ansible-apt/commit/2d1873daec0e1b76e4bcafbb898ac63c4b12e91f))
|
||||||
|
* using ansible-role to generate README ([3abe7246](https://github.com/weareinteractive/ansible-apt/commit/3abe72463af5d4d101570e233d497a96e910e4ea))
|
||||||
|
* adds CHANGELOG ([5f4c6673](https://github.com/weareinteractive/ansible-apt/commit/5f4c66734445e239fb96faec557a6c5e708cd5b3))
|
||||||
|
|
||||||
|
#### Bug Fixes
|
||||||
|
|
||||||
|
* fixes the usage of unattended upgrades ([04f25734](https://github.com/weareinteractive/ansible-apt/commit/04f25734fa29aba48ec3f9461c9488785bfe8ae3))
|
||||||
|
|
||||||
|
|
||||||
|
|
22
roles/weareinteractive.apt/LICENSE
Executable file
22
roles/weareinteractive.apt/LICENSE
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
Copyright (c) We Are Interactive
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person
|
||||||
|
obtaining a copy of this software and associated documentation
|
||||||
|
files (the "Software"), to deal in the Software without
|
||||||
|
restriction, including without limitation the rights to use,
|
||||||
|
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following
|
||||||
|
conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
41
roles/weareinteractive.apt/Makefile
Executable file
41
roles/weareinteractive.apt/Makefile
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
PWD=$(shell pwd)
|
||||||
|
ROLE_NAME=weareinteractive.apt
|
||||||
|
ROLE_PATH=/etc/ansible/roles/$(ROLE_NAME)
|
||||||
|
TEST_VERSION=ansible --version
|
||||||
|
TEST_SYNTAX=ansible-playbook -v -i 'localhost,' -c local $(ROLE_PATH)/tests/main.yml --syntax-check
|
||||||
|
TEST_PLAYBOOK=ansible-playbook -v -i 'localhost,' -c local $(ROLE_PATH)/tests/main.yml
|
||||||
|
TEST_IDEMPOTENT=$(TEST_PLAYBOOK) | grep -q 'changed=0.*failed=0' && (echo 'Idempotence test: pass' && exit 0) || (echo 'Idempotence test: fail' && exit 1)
|
||||||
|
TEST_CMD=$(TEST_VERSION); $(TEST_SYNTAX); $(TEST_DEPS); $(TEST_PLAYBOOK); $(TEST_IDEMPOTENT)
|
||||||
|
|
||||||
|
docs:
|
||||||
|
ansible-role docgen
|
||||||
|
|
||||||
|
lint:
|
||||||
|
ansible-lint .
|
||||||
|
|
||||||
|
ubuntu%: TEST_DEPS=apt-get update && \
|
||||||
|
apt-get install -y python
|
||||||
|
|
||||||
|
ubuntu18.04: dist=ubuntu-18.04
|
||||||
|
ubuntu18.04: .run
|
||||||
|
|
||||||
|
ubuntu16.04: dist=ubuntu-16.04
|
||||||
|
ubuntu16.04: .run
|
||||||
|
|
||||||
|
ubuntu14.04: dist=ubuntu-14.04
|
||||||
|
ubuntu14.04: .run
|
||||||
|
|
||||||
|
debian%: TEST_DEPS=apt-get update && \
|
||||||
|
apt-get install -y python
|
||||||
|
|
||||||
|
debian9: dist=debian-9
|
||||||
|
debian9: .run
|
||||||
|
|
||||||
|
debian8: dist=debian-8
|
||||||
|
debian8: .run
|
||||||
|
|
||||||
|
.run:
|
||||||
|
@echo "RUN:"
|
||||||
|
@echo " docker run -it --rm -v $(PWD):$(ROLE_PATH) ansiblecheck/ansiblecheck:$(dist) /bin/bash"
|
||||||
|
@echo " $(TEST_CMD)"
|
||||||
|
@docker run -it --rm -v $(PWD):$(ROLE_PATH) ansiblecheck/ansiblecheck:$(dist) /bin/bash -c "$(TEST_CMD)"
|
268
roles/weareinteractive.apt/README.md
Executable file
268
roles/weareinteractive.apt/README.md
Executable file
@ -0,0 +1,268 @@
|
|||||||
|
# Ansible weareinteractive.apt role
|
||||||
|
|
||||||
|
[](https://travis-ci.org/weareinteractive/ansible-apt)
|
||||||
|
[](https://galaxy.ansible.com/weareinteractive/apt)
|
||||||
|
[](https://github.com/weareinteractive/ansible-apt)
|
||||||
|
[](https://github.com/weareinteractive/ansible-apt)
|
||||||
|
|
||||||
|
> `weareinteractive.apt` is an [Ansible](http://www.ansible.com) role which:
|
||||||
|
>
|
||||||
|
> * updates apt
|
||||||
|
> * cleans up apt
|
||||||
|
> * configures apt
|
||||||
|
> * installs packages
|
||||||
|
> * add repositories
|
||||||
|
> * add keys
|
||||||
|
> * apt pinning
|
||||||
|
> * manages unattended upgrades
|
||||||
|
> * optionally alters solution cost
|
||||||
|
> * optionally allows filesystems to be remounted
|
||||||
|
|
||||||
|
**Note:**
|
||||||
|
|
||||||
|
> Since Ansible Galaxy supports [organization](https://www.ansible.com/blog/ansible-galaxy-2-release) now, this role has moved from `franklinkim.apt` to `weareinteractive.apt`!
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Using `ansible-galaxy`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ ansible-galaxy install weareinteractive.apt
|
||||||
|
```
|
||||||
|
|
||||||
|
Using `requirements.yml`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- src: weareinteractive.apt
|
||||||
|
```
|
||||||
|
|
||||||
|
Using `git`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ git clone https://github.com/weareinteractive/ansible-apt.git weareinteractive.apt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
* Ansible >= 2.4
|
||||||
|
|
||||||
|
## Variables
|
||||||
|
|
||||||
|
Here is a list of all the default variables for this role, which are also available in `defaults/main.yml`.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
# apt_unattended_upgrades_blacklist:
|
||||||
|
# - vim
|
||||||
|
# - libc6
|
||||||
|
# apt_mails:
|
||||||
|
# - root
|
||||||
|
# - foo@dev.null
|
||||||
|
# apt_keys:
|
||||||
|
# - id: 473041FA
|
||||||
|
# file: /tmp/apt.gpg
|
||||||
|
# data: "{{ lookup('file', 'apt.asc') }}"
|
||||||
|
# keyring: /etc/apt/trusted.gpg.d/debian.gpg
|
||||||
|
# keyserver: keyserver.ubuntu.com
|
||||||
|
# url: https://ftp-master.debian.org/keys/archive-key-6.0.asc
|
||||||
|
# validate_certs: yes
|
||||||
|
# state: present
|
||||||
|
# apt_repositories:
|
||||||
|
# - codename: trusty
|
||||||
|
# filename: google-chrome
|
||||||
|
# mode: 0644
|
||||||
|
# repo: 'ppa:nginx/stable'
|
||||||
|
# state: present
|
||||||
|
# update_cache: yes
|
||||||
|
|
||||||
|
|
||||||
|
# sets the amount of time the cache is valid
|
||||||
|
apt_cache_valid_time: 3600
|
||||||
|
# upgrade system: safe | full | dist
|
||||||
|
apt_upgrade: no
|
||||||
|
# packages to install
|
||||||
|
apt_packages: []
|
||||||
|
# remove packages that are no longer needed for dependencies
|
||||||
|
apt_autoremove: yes
|
||||||
|
# remove .deb files for packages no longer on your system
|
||||||
|
apt_autoclean: yes
|
||||||
|
# .deb packages to install.
|
||||||
|
apt_deb_packages: []
|
||||||
|
|
||||||
|
# whether or not suggested packages should be installed.
|
||||||
|
apt_install_suggests: no
|
||||||
|
# do not install Recommended packages by default
|
||||||
|
apt_install_recommends: no
|
||||||
|
# allow 'apt-get autoremove' to remove recommended packages
|
||||||
|
apt_remove_recommends: no
|
||||||
|
# Enable the update/upgrade script
|
||||||
|
apt_periodic: yes
|
||||||
|
# Do “apt-get update” automatically every n-days (0=disable)
|
||||||
|
apt_update_package_lists: 1
|
||||||
|
# Do “apt-get upgrade –download-only” every n-days (0=disable)
|
||||||
|
apt_download_upgradeable_packages: 0
|
||||||
|
# Do “apt-get autoclean” every n-days (0=disable)
|
||||||
|
apt_auto_clean_interval: 0
|
||||||
|
|
||||||
|
# enable unattended-upgrades
|
||||||
|
apt_unattended_upgrades: yes
|
||||||
|
# list of origins patterns to control which packages are upgraded
|
||||||
|
# replaces allowed-origins, kept for compatibility
|
||||||
|
apt_unattended_upgrades_origins: []
|
||||||
|
# List of allowed-origins, default value kept for compatibility
|
||||||
|
# set to null to use origins-pattern
|
||||||
|
apt_unattended_upgrades_allowed:
|
||||||
|
- ${distro_id}:${distro_codename}-security
|
||||||
|
# list of packages to not update (regexp are supported)
|
||||||
|
apt_unattended_upgrades_blacklist: []
|
||||||
|
# Split the upgrade into the smallest possible chunks so that
|
||||||
|
# they can be interrupted with SIGUSR1. This makes the upgrade
|
||||||
|
# a bit slower but it has the benefit that shutdown while a upgrade
|
||||||
|
# is running is possible (with a small delay)
|
||||||
|
apt_unattended_upgrades_minimal_steps: no
|
||||||
|
# Send email to this address for problems or packages upgrades
|
||||||
|
# If empty or unset then no email is sent, make sure that you
|
||||||
|
# have a working mail setup on your system. A package that provides
|
||||||
|
# 'mailx' must be installed. E.g. "user@example.com"
|
||||||
|
apt_mails: []
|
||||||
|
# Set this value to "true" to get emails only on errors. Default
|
||||||
|
# is to always send a mail if Unattended-Upgrade::Mail is set
|
||||||
|
apt_unattended_upgrades_notify_error_only: yes
|
||||||
|
# Do automatic removal of new unused dependencies after the upgrade
|
||||||
|
# (equivalent to apt-get autoremove)
|
||||||
|
apt_unattended_upgrades_autoremove: yes
|
||||||
|
# Automatically reboot *WITHOUT CONFIRMATION*
|
||||||
|
# if the file /var/run/reboot-required is found after the upgrade
|
||||||
|
apt_unattended_upgrades_automatic_reboot: no
|
||||||
|
# Automatically reboot even if there are users currently logged in.
|
||||||
|
apt_unattended_upgrades_automatic_reboot_with_users: no
|
||||||
|
# If automatic reboot is enabled and needed, reboot at the specific
|
||||||
|
# time instead of immediately
|
||||||
|
# Values: now | 02:00 | ...
|
||||||
|
apt_unattended_upgrades_automatic_reboot_time: now
|
||||||
|
# Enable logging to syslog.
|
||||||
|
apt_unattended_upgrades_syslog_enable: no
|
||||||
|
# Specify syslog facility.
|
||||||
|
apt_unattended_upgrades_syslog_facility: daemon
|
||||||
|
|
||||||
|
# Override download timer ? Default no
|
||||||
|
apt_unattended_upgrades_download_timer_override: null
|
||||||
|
# In case of override :
|
||||||
|
# apt_unattended_upgrades_download_timer_override:
|
||||||
|
# on_calendar_replace: (true|false) If true, delete default system schedule. If not, default and new schedules will be merged
|
||||||
|
# on_calendar: new schedule, see man systemd.time.7, example : 'Mon..Fri *-*-* 6:00'
|
||||||
|
# randomized_delay_sec: random delay in sec
|
||||||
|
# persistent: (true|false)
|
||||||
|
# See systemd.time.5 for random delay and persistent
|
||||||
|
|
||||||
|
# Override upgrade timer the same way
|
||||||
|
apt_unattended_upgrades_upgrade_timer_override: null
|
||||||
|
# apt_unattended_upgrades_upgrade_timer_override:
|
||||||
|
# on_calendar_replace:
|
||||||
|
# on_calendar:
|
||||||
|
# randomized_delay_sec:
|
||||||
|
# persistent:
|
||||||
|
|
||||||
|
# remount file system: currently supported options are rootfs and tmpfs
|
||||||
|
# tmpfs: remount tmp before running if mounted noexec
|
||||||
|
# rootfs: remount root filesystem r/w before running if mounted r/o
|
||||||
|
apt_remount_filesystems: []
|
||||||
|
|
||||||
|
# repositories to register
|
||||||
|
apt_repositories: []
|
||||||
|
# gpg keys for external repositories
|
||||||
|
apt_keys: []
|
||||||
|
# HTTP proxy server (optional)
|
||||||
|
# apt_http_proxy_address:
|
||||||
|
# HTTP pipeline depth (optional)
|
||||||
|
# apt_http_pipeline_depth: 5
|
||||||
|
|
||||||
|
# Change Aptitudes solution costs, default is not to change anything
|
||||||
|
# Mirror https://lists.debian.org/543FF3BD.1020609@zen.co.uk
|
||||||
|
# apt_aptitude_solution_cost:
|
||||||
|
# - priority
|
||||||
|
# - removals
|
||||||
|
# - canceled-actions
|
||||||
|
apt_aptitude_solution_cost: []
|
||||||
|
|
||||||
|
# List of preferences options.
|
||||||
|
# apt_preferences:
|
||||||
|
# - file: perl
|
||||||
|
# package: perl
|
||||||
|
# pin: "version 5.20*"
|
||||||
|
# priority: 1001
|
||||||
|
apt_preferences: []
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Handlers
|
||||||
|
|
||||||
|
These are the handlers that are defined in `handlers/main.yml`.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: reload systemd
|
||||||
|
systemd:
|
||||||
|
daemon_reload: true
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
This is an example playbook:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
|
||||||
|
- hosts: all
|
||||||
|
become: yes
|
||||||
|
roles:
|
||||||
|
- weareinteractive.apt
|
||||||
|
vars:
|
||||||
|
apt_cache_valid_time: 7200
|
||||||
|
apt_packages:
|
||||||
|
- vim
|
||||||
|
- tree
|
||||||
|
- ca-certificates
|
||||||
|
apt_deb_packages:
|
||||||
|
- "https://releases.hashicorp.com/vagrant/2.1.5/vagrant_2.1.5_x86_64.deb"
|
||||||
|
apt_mails:
|
||||||
|
- root
|
||||||
|
apt_preferences:
|
||||||
|
- file: perl
|
||||||
|
package: perl
|
||||||
|
pin: "version 5.20*"
|
||||||
|
priority: 1001
|
||||||
|
apt_unattended_upgrades_notify_error_only: no
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ git clone https://github.com/weareinteractive/ansible-apt.git
|
||||||
|
$ cd ansible-apt
|
||||||
|
$ make test
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
In lieu of a formal style guide, take care to maintain the existing coding style. Add unit tests and examples for any new or changed functionality.
|
||||||
|
|
||||||
|
1. Fork it
|
||||||
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
||||||
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
||||||
|
4. Push to the branch (`git push origin my-new-feature`)
|
||||||
|
5. Create new Pull Request
|
||||||
|
|
||||||
|
*Note: To update the `README.md` file please install and run `ansible-role`:*
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ gem install ansible-role
|
||||||
|
$ ansible-role docgen
|
||||||
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
Copyright (c) We Are Interactive under the MIT license.
|
141
roles/weareinteractive.apt/defaults/main.yml
Executable file
141
roles/weareinteractive.apt/defaults/main.yml
Executable file
@ -0,0 +1,141 @@
|
|||||||
|
---
|
||||||
|
# apt_unattended_upgrades_blacklist:
|
||||||
|
# - vim
|
||||||
|
# - libc6
|
||||||
|
# apt_mails:
|
||||||
|
# - root
|
||||||
|
# - foo@dev.null
|
||||||
|
# apt_keys:
|
||||||
|
# - id: 473041FA
|
||||||
|
# file: /tmp/apt.gpg
|
||||||
|
# data: "{{ lookup('file', 'apt.asc') }}"
|
||||||
|
# keyring: /etc/apt/trusted.gpg.d/debian.gpg
|
||||||
|
# keyserver: keyserver.ubuntu.com
|
||||||
|
# url: https://ftp-master.debian.org/keys/archive-key-6.0.asc
|
||||||
|
# validate_certs: yes
|
||||||
|
# state: present
|
||||||
|
# apt_repositories:
|
||||||
|
# - codename: trusty
|
||||||
|
# filename: google-chrome
|
||||||
|
# mode: 0644
|
||||||
|
# repo: 'ppa:nginx/stable'
|
||||||
|
# state: present
|
||||||
|
# update_cache: yes
|
||||||
|
|
||||||
|
|
||||||
|
# sets the amount of time the cache is valid
|
||||||
|
apt_cache_valid_time: 3600
|
||||||
|
# upgrade system: safe | full | dist
|
||||||
|
apt_upgrade: no
|
||||||
|
# packages to install
|
||||||
|
apt_packages: []
|
||||||
|
# remove packages that are no longer needed for dependencies
|
||||||
|
apt_autoremove: yes
|
||||||
|
# remove .deb files for packages no longer on your system
|
||||||
|
apt_autoclean: yes
|
||||||
|
# .deb packages to install.
|
||||||
|
apt_deb_packages: []
|
||||||
|
|
||||||
|
# whether or not suggested packages should be installed.
|
||||||
|
apt_install_suggests: no
|
||||||
|
# do not install Recommended packages by default
|
||||||
|
apt_install_recommends: no
|
||||||
|
# allow 'apt-get autoremove' to remove recommended packages
|
||||||
|
apt_remove_recommends: no
|
||||||
|
# Enable the update/upgrade script
|
||||||
|
apt_periodic: yes
|
||||||
|
# Do “apt-get update” automatically every n-days (0=disable)
|
||||||
|
apt_update_package_lists: 1
|
||||||
|
# Do “apt-get upgrade –download-only” every n-days (0=disable)
|
||||||
|
apt_download_upgradeable_packages: 0
|
||||||
|
# Do “apt-get autoclean” every n-days (0=disable)
|
||||||
|
apt_auto_clean_interval: 0
|
||||||
|
|
||||||
|
# enable unattended-upgrades
|
||||||
|
apt_unattended_upgrades: yes
|
||||||
|
# list of origins patterns to control which packages are upgraded
|
||||||
|
# replaces allowed-origins, kept for compatibility
|
||||||
|
apt_unattended_upgrades_origins: []
|
||||||
|
# List of allowed-origins, default value kept for compatibility
|
||||||
|
# set to null to use origins-pattern
|
||||||
|
apt_unattended_upgrades_allowed:
|
||||||
|
- ${distro_id}:${distro_codename}-security
|
||||||
|
# list of packages to not update (regexp are supported)
|
||||||
|
apt_unattended_upgrades_blacklist: []
|
||||||
|
# Split the upgrade into the smallest possible chunks so that
|
||||||
|
# they can be interrupted with SIGUSR1. This makes the upgrade
|
||||||
|
# a bit slower but it has the benefit that shutdown while a upgrade
|
||||||
|
# is running is possible (with a small delay)
|
||||||
|
apt_unattended_upgrades_minimal_steps: no
|
||||||
|
# Send email to this address for problems or packages upgrades
|
||||||
|
# If empty or unset then no email is sent, make sure that you
|
||||||
|
# have a working mail setup on your system. A package that provides
|
||||||
|
# 'mailx' must be installed. E.g. "user@example.com"
|
||||||
|
apt_mails: []
|
||||||
|
# Set this value to "true" to get emails only on errors. Default
|
||||||
|
# is to always send a mail if Unattended-Upgrade::Mail is set
|
||||||
|
apt_unattended_upgrades_notify_error_only: yes
|
||||||
|
# Do automatic removal of new unused dependencies after the upgrade
|
||||||
|
# (equivalent to apt-get autoremove)
|
||||||
|
apt_unattended_upgrades_autoremove: yes
|
||||||
|
# Automatically reboot *WITHOUT CONFIRMATION*
|
||||||
|
# if the file /var/run/reboot-required is found after the upgrade
|
||||||
|
apt_unattended_upgrades_automatic_reboot: no
|
||||||
|
# Automatically reboot even if there are users currently logged in.
|
||||||
|
apt_unattended_upgrades_automatic_reboot_with_users: no
|
||||||
|
# If automatic reboot is enabled and needed, reboot at the specific
|
||||||
|
# time instead of immediately
|
||||||
|
# Values: now | 02:00 | ...
|
||||||
|
apt_unattended_upgrades_automatic_reboot_time: now
|
||||||
|
# Enable logging to syslog.
|
||||||
|
apt_unattended_upgrades_syslog_enable: no
|
||||||
|
# Specify syslog facility.
|
||||||
|
apt_unattended_upgrades_syslog_facility: daemon
|
||||||
|
|
||||||
|
# Override download timer ? Default no
|
||||||
|
apt_unattended_upgrades_download_timer_override: null
|
||||||
|
# In case of override :
|
||||||
|
# apt_unattended_upgrades_download_timer_override:
|
||||||
|
# on_calendar_replace: (true|false) If true, delete default system schedule. If not, default and new schedules will be merged
|
||||||
|
# on_calendar: new schedule, see man systemd.time.7, example : 'Mon..Fri *-*-* 6:00'
|
||||||
|
# randomized_delay_sec: random delay in sec
|
||||||
|
# persistent: (true|false)
|
||||||
|
# See systemd.time.5 for random delay and persistent
|
||||||
|
|
||||||
|
# Override upgrade timer the same way
|
||||||
|
apt_unattended_upgrades_upgrade_timer_override: null
|
||||||
|
# apt_unattended_upgrades_upgrade_timer_override:
|
||||||
|
# on_calendar_replace:
|
||||||
|
# on_calendar:
|
||||||
|
# randomized_delay_sec:
|
||||||
|
# persistent:
|
||||||
|
|
||||||
|
# remount file system: currently supported options are rootfs and tmpfs
|
||||||
|
# tmpfs: remount tmp before running if mounted noexec
|
||||||
|
# rootfs: remount root filesystem r/w before running if mounted r/o
|
||||||
|
apt_remount_filesystems: []
|
||||||
|
|
||||||
|
# repositories to register
|
||||||
|
apt_repositories: []
|
||||||
|
# gpg keys for external repositories
|
||||||
|
apt_keys: []
|
||||||
|
# HTTP proxy server (optional)
|
||||||
|
# apt_http_proxy_address:
|
||||||
|
# HTTP pipeline depth (optional)
|
||||||
|
# apt_http_pipeline_depth: 5
|
||||||
|
|
||||||
|
# Change Aptitudes solution costs, default is not to change anything
|
||||||
|
# Mirror https://lists.debian.org/543FF3BD.1020609@zen.co.uk
|
||||||
|
# apt_aptitude_solution_cost:
|
||||||
|
# - priority
|
||||||
|
# - removals
|
||||||
|
# - canceled-actions
|
||||||
|
apt_aptitude_solution_cost: []
|
||||||
|
|
||||||
|
# List of preferences options.
|
||||||
|
# apt_preferences:
|
||||||
|
# - file: perl
|
||||||
|
# package: perl
|
||||||
|
# pin: "version 5.20*"
|
||||||
|
# priority: 1001
|
||||||
|
apt_preferences: []
|
5
roles/weareinteractive.apt/handlers/main.yml
Executable file
5
roles/weareinteractive.apt/handlers/main.yml
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: reload systemd
|
||||||
|
systemd:
|
||||||
|
daemon_reload: true
|
2
roles/weareinteractive.apt/meta/.galaxy_install_info
Executable file
2
roles/weareinteractive.apt/meta/.galaxy_install_info
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
install_date: Sat Jan 11 17:32:26 2020
|
||||||
|
version: 2.9.1
|
142
roles/weareinteractive.apt/meta/main.yml
Executable file
142
roles/weareinteractive.apt/meta/main.yml
Executable file
@ -0,0 +1,142 @@
|
|||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: franklin
|
||||||
|
company: We Are Interactive
|
||||||
|
description: Configures apt and installs/updates packages
|
||||||
|
min_ansible_version: 2.4
|
||||||
|
license: MIT
|
||||||
|
# Optionally specify the branch Galaxy will use when accessing the GitHub
|
||||||
|
# repo for this role. During role install, if no tags are available,
|
||||||
|
# Galaxy will use this branch. During import Galaxy will access files on
|
||||||
|
# this branch. If travis integration is cofigured, only notification for this
|
||||||
|
# branch will be accepted. Otherwise, in all cases, the repo's default branch
|
||||||
|
# (usually master) will be used.
|
||||||
|
github_branch: master
|
||||||
|
#
|
||||||
|
# Below are all platforms currently available. Just uncomment
|
||||||
|
# the ones that apply to your role. If you don't see your
|
||||||
|
# platform on this list, let us know and we'll get it added!
|
||||||
|
#
|
||||||
|
platforms:
|
||||||
|
#- name: EL
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - 5
|
||||||
|
# - 6
|
||||||
|
# - 7
|
||||||
|
#- name: GenericUNIX
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - any
|
||||||
|
#- name: Solaris
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - 10
|
||||||
|
# - 11.0
|
||||||
|
# - 11.1
|
||||||
|
# - 11.2
|
||||||
|
# - 11.3
|
||||||
|
#- name: Fedora
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - 16
|
||||||
|
# - 17
|
||||||
|
# - 18
|
||||||
|
# - 19
|
||||||
|
# - 20
|
||||||
|
# - 21
|
||||||
|
# - 22
|
||||||
|
# - 23
|
||||||
|
#- name: Windows
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - 2012R2
|
||||||
|
#- name: SmartOS
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - any
|
||||||
|
#- name: opensuse
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - 12.1
|
||||||
|
# - 12.2
|
||||||
|
# - 12.3
|
||||||
|
# - 13.1
|
||||||
|
# - 13.2
|
||||||
|
#- name: Amazon
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - 2013.03
|
||||||
|
# - 2013.09
|
||||||
|
#- name: GenericBSD
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - any
|
||||||
|
#- name: FreeBSD
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - 10.0
|
||||||
|
# - 10.1
|
||||||
|
# - 10.2
|
||||||
|
# - 8.0
|
||||||
|
# - 8.1
|
||||||
|
# - 8.2
|
||||||
|
# - 8.3
|
||||||
|
# - 8.4
|
||||||
|
# - 9.0
|
||||||
|
# - 9.1
|
||||||
|
# - 9.1
|
||||||
|
# - 9.2
|
||||||
|
# - 9.3
|
||||||
|
- name: Ubuntu
|
||||||
|
versions:
|
||||||
|
- all
|
||||||
|
# - lucid
|
||||||
|
# - maverick
|
||||||
|
# - natty
|
||||||
|
# - oneiric
|
||||||
|
# - precise
|
||||||
|
# - quantal
|
||||||
|
# - raring
|
||||||
|
# - saucy
|
||||||
|
# - trusty
|
||||||
|
# - utopic
|
||||||
|
# - vivid
|
||||||
|
# - wily
|
||||||
|
#- name: SLES
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - 10SP3
|
||||||
|
# - 10SP4
|
||||||
|
# - 11
|
||||||
|
# - 11SP1
|
||||||
|
# - 11SP2
|
||||||
|
# - 11SP3
|
||||||
|
#- name: GenericLinux
|
||||||
|
# versions:
|
||||||
|
# - all
|
||||||
|
# - any
|
||||||
|
- name: Debian
|
||||||
|
versions:
|
||||||
|
- all
|
||||||
|
# - etch
|
||||||
|
# - jessie
|
||||||
|
# - lenny
|
||||||
|
# - squeeze
|
||||||
|
# - wheezy
|
||||||
|
#
|
||||||
|
# List tags for your role here, one per line. A tag is
|
||||||
|
# a keyword that describes and categorizes the role.
|
||||||
|
# Users find roles by searching for tags. Be sure to
|
||||||
|
# remove the '[]' above if you add tags to this list.
|
||||||
|
#
|
||||||
|
# NOTE: A tag is limited to a single word comprised of
|
||||||
|
# alphanumeric characters. Maximum 20 tags per role.
|
||||||
|
galaxy_tags:
|
||||||
|
- system
|
||||||
|
- apt
|
||||||
|
# List your role dependencies here, one per line. Only
|
||||||
|
# dependencies available via galaxy should be listed here.
|
||||||
|
# Be sure to remove the '[]' above if you add dependencies
|
||||||
|
# to this list.
|
||||||
|
dependencies: []
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user