diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9fdb4ec..97e4d49 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -76,7 +76,7 @@ security_scanner: services: - docker:dind script: - - make images/debian-stretch.squashfs + - make images/debian-buster.squashfs artifacts: paths: - images diff --git a/Makefile b/Makefile index f84b350..497fc3f 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,11 @@ -PACKER_VERSION ?= 1.2.0 +PACKER_VERSION ?= 1.3.5 ANNOUNCE ?= http://10.2.2.1:6969/announce WEBSEED ?= http://10.2.2.1 -DOCKER_IMAGE_BUILDER ?= labsync-builder -DOCKER_IMAGE_SECURITY_SCANNER ?= security-scanner +CI_COMMIT_REF_SLUG ?= master + +DOCKER_IMAGE_BUILDER ?= labsync-builder:$(CI_COMMIT_REF_SLUG) +DOCKER_IMAGE_SECURITY_SCANNER ?= security-scanner:$(CI_COMMIT_REF_SLUG) CWD=$(abspath $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST)))))) @@ -20,7 +22,7 @@ qemu_network = 10.2.2.0 qemu_netmask = 24 qemu_vm_ip = 10.2.2.10 qemu_disk = tmp/qemu-disk.img -qemu_target ?= debian-stretch +qemu_target ?= debian-buster qemu_kernel = $(qemu_target).linux qemu_torrent = $(qemu_target).torrent qemu_initramfs = $(shell \ @@ -33,7 +35,7 @@ fi \ ci_environment=$(shell env | sed -n 's/^\(CI_.*\)=.*/-e \1/p') .PHONY: default -default: builderimg images/debian-stretch.squashfs +default: builderimg images/debian-buster.squashfs .PHONY: clean clean: @@ -52,7 +54,7 @@ images: [ ! -d "$@" ] && mkdir "$@" touch "$@" -images/debian-stretch.squashfs: images +images/debian-buster.squashfs: images docker run \ --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ @@ -67,9 +69,9 @@ images/debian-stretch.squashfs: images -e "COMPRESSION_LEVEL=$(COMPRESSION_LEVEL)" \ $(ci_environment) \ "$(DOCKER_IMAGE_BUILDER)" \ - debian-stretch + debian-buster -images/debian-stretch.torrent: images +images/debian-buster.torrent: images docker run \ --rm \ -v "${PWD}/images:/images" \ @@ -79,7 +81,7 @@ images/debian-stretch.torrent: images -e "WEBSEED=$(WEBSEED)" \ -e "TASK=torrent" \ "$(DOCKER_IMAGE_BUILDER)" \ - debian-stretch + debian-buster .PHONY: ansible ansible: @@ -102,24 +104,24 @@ ansible: # updates the initramfs # only used for development -images/debian-stretch.initramfs.dev: tmp/initramfs-extracted/debian-stretch packer/initramfs/labsync - cp packer/initramfs/labsync tmp/initramfs-extracted/debian-stretch/scripts/labsync - (cd tmp/initramfs-extracted/debian-stretch && find . | cpio -H newc -o | gzip > $(CWD)/images/debian-stretch.initramfs.dev) +images/debian-buster.initramfs.dev: tmp/initramfs-extracted/debian-buster packer/initramfs/labsync + cp packer/initramfs/labsync tmp/initramfs-extracted/debian-buster/scripts/labsync + (cd tmp/initramfs-extracted/debian-buster && find . | cpio -H newc -o | gzip > $(CWD)/images/debian-buster.initramfs.dev) tmp: [ ! -d "$@" ] && mkdir "$@" || true -tmp/initramfs-extracted/debian-stretch: images/debian-stretch.initramfs - rm -rf tmp/initramfs-extracted/debian-stretch - mkdir -p tmp/initramfs-extracted/debian-stretch - (cd tmp/initramfs-extracted/debian-stretch && zcat "$(CWD)/images/debian-stretch.initramfs" | cpio -i) - touch tmp/initramfs-extracted/debian-stretch +tmp/initramfs-extracted/debian-buster: images/debian-buster.initramfs + rm -rf tmp/initramfs-extracted/debian-buster + mkdir -p tmp/initramfs-extracted/debian-buster + (cd tmp/initramfs-extracted/debian-buster && zcat "$(CWD)/images/debian-buster.initramfs" | cpio -i) + touch tmp/initramfs-extracted/debian-buster $(qemu_disk): tmp qemu-img create "$@" 20G tmp/netboot.tar.gz: tmp - wget -c -O "$@" https://cdn-aws.deb.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz + wget -c -O "$@" https://cdn-aws.deb.debian.org/debian/dists/buster/main/installer-amd64/current/images/netboot/netboot.tar.gz touch "$@" tmp/tftproot: tmp/netboot.tar.gz diff --git a/builder/Dockerfile b/builder/Dockerfile index 02627a5..89bcbc4 100644 --- a/builder/Dockerfile +++ b/builder/Dockerfile @@ -6,7 +6,7 @@ RUN apk add --no-cache \ mktorrent \ openssh-client \ openssl \ - python2 \ + python3 \ rsync \ squashfs-tools \ && apk add --no-cache --virtual .build-deps \ @@ -15,10 +15,9 @@ RUN apk add --no-cache \ make \ musl-dev \ openssl-dev \ - py2-pip \ - python-dev \ - && pip install --upgrade pip \ - && pip install ansible==2.7.0 \ + python3-dev \ + && pip3 install --upgrade pip \ + && pip3 install ansible==2.8.0 \ && apk del .build-deps ARG PACKER_VERSION diff --git a/packer/ansible/playbook.yml b/packer/ansible/playbook.yml index cf6177b..811aa31 100644 --- a/packer/ansible/playbook.yml +++ b/packer/ansible/playbook.yml @@ -14,6 +14,7 @@ - role: fablab - role: hardware - role: docker + - role: cups vars: auth: sudo: diff --git a/packer/ansible/roles/cups/files/kopierviech.ppd b/packer/ansible/roles/cups/files/kopierviech.ppd new file mode 100644 index 0000000..2544b4d --- /dev/null +++ b/packer/ansible/roles/cups/files/kopierviech.ppd @@ -0,0 +1,290 @@ +*PPD-Adobe: "4.3" +*% +*% For information on using this, and to obtain the required backend +*% script, consult http://www.openprinting.org/ +*% +*% This file is published under the GNU General Public License +*% +*% PPD-O-MATIC (4.0.0 or newer) generated this PPD file. It is for use with +*% all programs and environments which use PPD files for dealing with +*% printer capability information. The printer must be configured with the +*% "foomatic-rip" backend filter script of Foomatic 4.0.0 or newer. This +*% file and "foomatic-rip" work together to support PPD-controlled printer +*% driver option access with all supported printer drivers and printing +*% spoolers. +*% +*% To save this file on your disk, wait until the download has completed +*% (the animation of the browser logo must stop) and then use the +*% "Save as..." command in the "File" menu of your browser or in the +*% pop-up manu when you click on this document with the right mouse button. +*% DO NOT cut and paste this file into an editor with your mouse. This can +*% introduce additional line breaks which lead to unexpected results. +*% +*% You may save this file as 'Epson-LQ-850-lq850.ppd' +*% +*% +*FormatVersion: "4.3" +*FileVersion: "1.1" +*LanguageVersion: English +*LanguageEncoding: ISOLatin1 +*PCFileName: "LQ850.PPD" +*Manufacturer: "Epson" +*Product: "(LQ-850)" +*cupsVersion: 1.0 +*cupsManualCopies: True +*cupsModelNumber: 2 +*cupsFilter: "application/vnd.cups-postscript 100 foomatic-rip" +*cupsFilter: "application/vnd.cups-pdf 0 foomatic-rip" +*%pprRIP: foomatic-rip other +*ModelName: "Epson LQ-850" +*ShortNickName: "Epson LQ-850 lq850" +*NickName: "Epson LQ-850 Foomatic/lq850 (recommended)" +*PSVersion: "(3010.000) 550" +*PSVersion: "(3010.000) 651" +*PSVersion: "(3010.000) 652" +*PSVersion: "(3010.000) 653" +*PSVersion: "(3010.000) 704" +*PSVersion: "(3010.000) 705" +*PSVersion: "(3010.000) 800" +*PSVersion: "(3010.000) 815" +*PSVersion: "(3010.000) 850" +*PSVersion: "(3010.000) 860" +*PSVersion: "(3010.000) 861" +*PSVersion: "(3010.000) 862" +*PSVersion: "(3010.000) 863" +*PSVersion: "(3010.000) 864" +*PSVersion: "(3010.000) 870" +*LanguageLevel: "3" +*ColorDevice: False +*DefaultColorSpace: Gray +*FileSystem: False +*Throughput: "1" +*LandscapeOrientation: Plus90 +*TTRasterizer: Type42 +*1284DeviceID: "DRV:Dlq850,R1,M0,F1,P0,TG;" + +*driverName lq850: "" +*driverType G/Ghostscript built-in: "" +*driverUrl: "http://www.ghostscript.com/" +*driverObsolete: False +*driverManufacturerSupplied: False +*driverFreeSoftware: True + + + + +*HWMargins: 18 36 18 36 +*VariablePaperSize: True +*MaxMediaWidth: 100000 +*MaxMediaHeight: 100000 +*NonUIOrderDependency: 100 AnySetup *CustomPageSize +*CustomPageSize True: "pop pop pop pop pop +%% FoomaticRIPOptionSetting: PageSize=Custom" +*End +*FoomaticRIPOptionSetting PageSize=Custom: " -dDEVICEWIDTHPOINTS=0 -dD&& +EVICEHEIGHTPOINTS=0" +*End +*ParamCustomPageSize Width: 1 points 36 100000 +*ParamCustomPageSize Height: 2 points 36 100000 +*ParamCustomPageSize Orientation: 3 int 0 0 +*ParamCustomPageSize WidthOffset: 4 points 0 0 +*ParamCustomPageSize HeightOffset: 5 points 0 0 + +*FoomaticIDs: Epson-LQ-850 lq850 +*FoomaticRIPCommandLine: "gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPA&& +USE -dNOMEDIAATTRS -dNOINTERPOLATE -sDEVICE=lq850%A%Z -sOutputFile=- -&& +" +*End + +*OpenGroup: General/General + +*OpenUI *PageSize/Page Size: PickOne +*FoomaticRIPOption PageSize: enum CmdLine A +*OrderDependency: 100 AnySetup *PageSize +*DefaultPageSize: A4 +*PageSize Letter/US Letter: "%% FoomaticRIPOptionSetting: PageSize=Letter" +*FoomaticRIPOptionSetting PageSize=Letter: " -dDEVICEWIDTHPOINTS=612 -&& +dDEVICEHEIGHTPOINTS=792" +*End +*PageSize A4/A4: "%% FoomaticRIPOptionSetting: PageSize=A4" +*FoomaticRIPOptionSetting PageSize=A4: " -dDEVICEWIDTHPOINTS=595 -dDEV&& +ICEHEIGHTPOINTS=842" +*End +*PageSize 3x5/3x5: "%% FoomaticRIPOptionSetting: PageSize=3x5" +*FoomaticRIPOptionSetting PageSize=3x5: " -dDEVICEWIDTHPOINTS=216 -dDE&& +VICEHEIGHTPOINTS=360" +*End +*PageSize 4x6/4x6: "%% FoomaticRIPOptionSetting: PageSize=4x6" +*FoomaticRIPOptionSetting PageSize=4x6: " -dDEVICEWIDTHPOINTS=288 -dDE&& +VICEHEIGHTPOINTS=432" +*End +*PageSize 5x7/5x7: "%% FoomaticRIPOptionSetting: PageSize=5x7" +*FoomaticRIPOptionSetting PageSize=5x7: " -dDEVICEWIDTHPOINTS=360 -dDE&& +VICEHEIGHTPOINTS=504" +*End +*PageSize 5x8/5x8: "%% FoomaticRIPOptionSetting: PageSize=5x8" +*FoomaticRIPOptionSetting PageSize=5x8: " -dDEVICEWIDTHPOINTS=360 -dDE&& +VICEHEIGHTPOINTS=576" +*End +*PageSize 6x8/6x8: "%% FoomaticRIPOptionSetting: PageSize=6x8" +*FoomaticRIPOptionSetting PageSize=6x8: " -dDEVICEWIDTHPOINTS=432 -dDE&& +VICEHEIGHTPOINTS=576" +*End +*PageSize 8x10/8x10: "%% FoomaticRIPOptionSetting: PageSize=8x10" +*FoomaticRIPOptionSetting PageSize=8x10: " -dDEVICEWIDTHPOINTS=576 -dD&& +EVICEHEIGHTPOINTS=720" +*End +*PageSize 8x12/8x12: "%% FoomaticRIPOptionSetting: PageSize=8x12" +*FoomaticRIPOptionSetting PageSize=8x12: " -dDEVICEWIDTHPOINTS=576 -dD&& +EVICEHEIGHTPOINTS=864" +*End +*PageSize 11x14/11x14: "%% FoomaticRIPOptionSetting: PageSize=11x14" +*FoomaticRIPOptionSetting PageSize=11x14: " -dDEVICEWIDTHPOINTS=792 -d&& +DEVICEHEIGHTPOINTS=1008" +*End +*PageSize 11x14.Transverse/14x11: "%% FoomaticRIPOptionSetting: PageSize=11x14.Transverse" +*FoomaticRIPOptionSetting PageSize=11x14.Transverse: " -dDEVICEWIDTHPO&& +INTS=1008 -dDEVICEHEIGHTPOINTS=792" +*End +*PageSize 16x20/16x20: "%% FoomaticRIPOptionSetting: PageSize=16x20" +*FoomaticRIPOptionSetting PageSize=16x20: " -dDEVICEWIDTHPOINTS=1152 -&& +dDEVICEHEIGHTPOINTS=1440" +*End +*PageSize 16x24/16x24: "%% FoomaticRIPOptionSetting: PageSize=16x24" +*FoomaticRIPOptionSetting PageSize=16x24: " -dDEVICEWIDTHPOINTS=1152 -&& +dDEVICEHEIGHTPOINTS=1728" +*End +*PageSize 210x305mm/210x305mm (8.3x12): "%% FoomaticRIPOptionSetting: PageSize=210x305mm" +*FoomaticRIPOptionSetting PageSize=210x305mm: " -dDEVICEWIDTHPOINTS=59&& +5 -dDEVICEHEIGHTPOINTS=864" +*End +*PageSize 378x279mm.Transverse/US Standard Fanfold (14.875x11): "%% FoomaticRIPOptionSetting: PageSize=378x279mm.Transverse" +*FoomaticRIPOptionSetting PageSize=378x279mm.Transverse: " -dDEVICEWID&& +THPOINTS=1071 -dDEVICEHEIGHTPOINTS=792" +*End +*PageSize A3/A3: "%% FoomaticRIPOptionSetting: PageSize=A3" +*FoomaticRIPOptionSetting PageSize=A3: " -dDEVICEWIDTHPOINTS=842 -dDEV&& +ICEHEIGHTPOINTS=1191" +*End +*PageSize FanFoldGerman/German Standard Fanfold (8.5x12): "%% FoomaticRIPOptionSetting: PageSize=FanFoldGerman" +*FoomaticRIPOptionSetting PageSize=FanFoldGerman: " -dDEVICEWIDTHPOINT&& +S=612 -dDEVICEHEIGHTPOINTS=864" +*End +*PageSize Legal/US Legal: "%% FoomaticRIPOptionSetting: PageSize=Legal" +*FoomaticRIPOptionSetting PageSize=Legal: " -dDEVICEWIDTHPOINTS=612 -d&& +DEVICEHEIGHTPOINTS=1008" +*End +*PageSize SuperB/Super B (13x19): "%% FoomaticRIPOptionSetting: PageSize=SuperB" +*FoomaticRIPOptionSetting PageSize=SuperB: " -dDEVICEWIDTHPOINTS=936 -&& +dDEVICEHEIGHTPOINTS=1368" +*End +*CloseUI: *PageSize + +*OpenUI *PageRegion: PickOne +*OrderDependency: 100 AnySetup *PageRegion +*DefaultPageRegion: A4 +*PageRegion Letter/US Letter: "%% FoomaticRIPOptionSetting: PageSize=Letter" +*PageRegion A4/A4: "%% FoomaticRIPOptionSetting: PageSize=A4" +*PageRegion 3x5/3x5: "%% FoomaticRIPOptionSetting: PageSize=3x5" +*PageRegion 4x6/4x6: "%% FoomaticRIPOptionSetting: PageSize=4x6" +*PageRegion 5x7/5x7: "%% FoomaticRIPOptionSetting: PageSize=5x7" +*PageRegion 5x8/5x8: "%% FoomaticRIPOptionSetting: PageSize=5x8" +*PageRegion 6x8/6x8: "%% FoomaticRIPOptionSetting: PageSize=6x8" +*PageRegion 8x10/8x10: "%% FoomaticRIPOptionSetting: PageSize=8x10" +*PageRegion 8x12/8x12: "%% FoomaticRIPOptionSetting: PageSize=8x12" +*PageRegion 11x14/11x14: "%% FoomaticRIPOptionSetting: PageSize=11x14" +*PageRegion 11x14.Transverse/14x11: "%% FoomaticRIPOptionSetting: PageSize=11x14.Transverse" +*PageRegion 16x20/16x20: "%% FoomaticRIPOptionSetting: PageSize=16x20" +*PageRegion 16x24/16x24: "%% FoomaticRIPOptionSetting: PageSize=16x24" +*PageRegion 210x305mm/210x305mm (8.3x12): "%% FoomaticRIPOptionSetting: PageSize=210x305mm" +*PageRegion 378x279mm.Transverse/US Standard Fanfold (14.875x11): "%% FoomaticRIPOptionSetting: PageSize=378x279mm.Transverse" +*PageRegion A3/A3: "%% FoomaticRIPOptionSetting: PageSize=A3" +*PageRegion FanFoldGerman/German Standard Fanfold (8.5x12): "%% FoomaticRIPOptionSetting: PageSize=FanFoldGerman" +*PageRegion Legal/US Legal: "%% FoomaticRIPOptionSetting: PageSize=Legal" +*PageRegion SuperB/Super B (13x19): "%% FoomaticRIPOptionSetting: PageSize=SuperB" +*CloseUI: *PageRegion + +*DefaultImageableArea: A4 +*ImageableArea Letter/US Letter: "18 36 594 756" +*ImageableArea A4/A4: "18 36 577 806" +*ImageableArea 3x5/3x5: "18 36 198 324" +*ImageableArea 4x6/4x6: "18 36 270 396" +*ImageableArea 5x7/5x7: "18 36 342 468" +*ImageableArea 5x8/5x8: "18 36 342 540" +*ImageableArea 6x8/6x8: "18 36 414 540" +*ImageableArea 8x10/8x10: "18 36 558 684" +*ImageableArea 8x12/8x12: "18 36 558 828" +*ImageableArea 11x14/11x14: "18 36 774 972" +*ImageableArea 11x14.Transverse/14x11: "18 36 990 756" +*ImageableArea 16x20/16x20: "18 36 1134 1404" +*ImageableArea 16x24/16x24: "18 36 1134 1692" +*ImageableArea 210x305mm/210x305mm (8.3x12): "18 36 577 828" +*ImageableArea 378x279mm.Transverse/US Standard Fanfold (14.875x11): "18 36 1053 756" +*ImageableArea A3/A3: "18 36 824 1155" +*ImageableArea FanFoldGerman/German Standard Fanfold (8.5x12): "18 36 594 828" +*ImageableArea Legal/US Legal: "18 36 594 972" +*ImageableArea SuperB/Super B (13x19): "18 36 918 1332" + +*DefaultPaperDimension: A4 +*PaperDimension Letter/US Letter: "612 792" +*PaperDimension A4/A4: "595 842" +*PaperDimension 3x5/3x5: "216 360" +*PaperDimension 4x6/4x6: "288 432" +*PaperDimension 5x7/5x7: "360 504" +*PaperDimension 5x8/5x8: "360 576" +*PaperDimension 6x8/6x8: "432 576" +*PaperDimension 8x10/8x10: "576 720" +*PaperDimension 8x12/8x12: "576 864" +*PaperDimension 11x14/11x14: "792 1008" +*PaperDimension 11x14.Transverse/14x11: "1008 792" +*PaperDimension 16x20/16x20: "1152 1440" +*PaperDimension 16x24/16x24: "1152 1728" +*PaperDimension 210x305mm/210x305mm (8.3x12): "595 864" +*PaperDimension 378x279mm.Transverse/US Standard Fanfold (14.875x11): "1071 792" +*PaperDimension A3/A3: "842 1191" +*PaperDimension FanFoldGerman/German Standard Fanfold (8.5x12): "612 864" +*PaperDimension Legal/US Legal: "612 1008" +*PaperDimension SuperB/Super B (13x19): "936 1368" + +*CloseGroup: General + + +*% Generic boilerplate PPD stuff as standard PostScript fonts and so on + +*DefaultFont: Courier +*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM +*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM +*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM +*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM +*Font Bookman-Demi: Standard "(001.004S)" Standard ROM +*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM +*Font Bookman-Light: Standard "(001.004S)" Standard ROM +*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM +*Font Courier: Standard "(002.004S)" Standard ROM +*Font Courier-Bold: Standard "(002.004S)" Standard ROM +*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM +*Font Courier-Oblique: Standard "(002.004S)" Standard ROM +*Font Helvetica: Standard "(001.006S)" Standard ROM +*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM +*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM +*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM +*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM +*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM +*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM +*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM +*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM +*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM +*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM +*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM +*Font Palatino-Bold: Standard "(001.005S)" Standard ROM +*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM +*Font Palatino-Italic: Standard "(001.005S)" Standard ROM +*Font Palatino-Roman: Standard "(001.005S)" Standard ROM +*Font Symbol: Special "(001.007S)" Special ROM +*Font Times-Bold: Standard "(001.007S)" Standard ROM +*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM +*Font Times-Italic: Standard "(001.007S)" Standard ROM +*Font Times-Roman: Standard "(001.007S)" Standard ROM +*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM +*Font ZapfDingbats: Special "(001.004S)" Standard ROM + diff --git a/packer/ansible/roles/cups/tasks/main.yml b/packer/ansible/roles/cups/tasks/main.yml new file mode 100644 index 0000000..56326d5 --- /dev/null +++ b/packer/ansible/roles/cups/tasks/main.yml @@ -0,0 +1,18 @@ +--- +- block: + - name: install cups + apt: + name: cups + + - name: copy ppd file + copy: + src: files/kopierviech.ppd + dest: /etc/cups/ppd/kopierviech.ppd + + - name: configure cups + template: + src: printers.conf.j2 + dest: /etc/cups/printers.conf + + tags: + - cups diff --git a/packer/ansible/roles/cups/templates/printers.conf.j2 b/packer/ansible/roles/cups/templates/printers.conf.j2 new file mode 100644 index 0000000..73bc981 --- /dev/null +++ b/packer/ansible/roles/cups/templates/printers.conf.j2 @@ -0,0 +1,28 @@ +# Printer configuration file for CUPS v2.2.1 +# Written by cupsd +# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING + +UUID urn:uuid:1dbeb741-74bb-3bc8-6db1-46f96cb2e82f +Info kopierviech +Location Kyocera Mita KM-1650 KM-1650 +MakeModel Epson LQ-850 Foomatic/lq850 (recommended) +{#DeviceURI ipp://kopierviech.lab.fablab-nea.de#} +DeviceURI dnssd://kopierviech._pdl-datastream._tcp.local/ +State Idle +StateTime 1541805049 +ConfigTime 1541805149 +Type 8433668 +Accepting Yes +Shared No +JobSheets none none +QuotaPeriod 0 +PageLimit 0 +KLimit 0 +OpPolicy default +ErrorPolicy retry-job +Attribute marker-colors none,none +Attribute marker-levels -1,-1 +Attribute marker-names Toner Container,Waste Toner Box +Attribute marker-types toner,waste-toner +Attribute marker-change-time 1541806630 + diff --git a/packer/ansible/roles/docker/files/docker.asc b/packer/ansible/roles/docker/files/docker.asc deleted file mode 100644 index ee7872e..0000000 --- a/packer/ansible/roles/docker/files/docker.asc +++ /dev/null @@ -1,62 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -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 -YT90qFF93M3v01BbxP+EIY2/9tiIPbrd -=0YYh ------END PGP PUBLIC KEY BLOCK----- diff --git a/packer/ansible/roles/docker/tasks/packages.yml b/packer/ansible/roles/docker/tasks/packages.yml index 0a31361..9a89248 100644 --- a/packer/ansible/roles/docker/tasks/packages.yml +++ b/packer/ansible/roles/docker/tasks/packages.yml @@ -1,23 +1,7 @@ --- -- name: install dependencies +- name: install docker packages apt: name: - - apt-transport-https - - ca-certificates - state: present - -- name: Add apt key - apt_key: - data: "{{ lookup('file', 'docker.asc') }}" - state: present - -- name: Add repository - apt_repository: - repo: "deb [arch=amd64] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable" - filename: docker - state: present - -- name: install docker-ce - apt: - name: "docker-ce=18.06.1~ce~3-0~debian" + - docker.io + - docker-compose state: present diff --git a/packer/ansible/roles/fablab/files/cura.desktop b/packer/ansible/roles/fablab/files/cura.desktop deleted file mode 100644 index 0c5e228..0000000 --- a/packer/ansible/roles/fablab/files/cura.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=Cura -GenericName=Cura -Comment=3D slicer -Exec=/opt/cura.AppImage -Icon=/opt/cura.png -Terminal=false -Type=Application -Categories=Graphics diff --git a/packer/ansible/roles/fablab/files/cura.png b/packer/ansible/roles/fablab/files/cura.png deleted file mode 100644 index 8fd6f41..0000000 Binary files a/packer/ansible/roles/fablab/files/cura.png and /dev/null differ diff --git a/packer/ansible/roles/fablab/tasks/cura.yml b/packer/ansible/roles/fablab/tasks/cura.yml index b77cc83..a2f3d2f 100644 --- a/packer/ansible/roles/fablab/tasks/cura.yml +++ b/packer/ansible/roles/fablab/tasks/cura.yml @@ -1,16 +1,5 @@ --- - name: install cura - get_url: - url: "https://download.ultimaker.com/current/Cura-{{ fablab.cura.version }}.AppImage" - dest: /opt/cura.AppImage - mode: 775 - -- name: get cura icon - copy: - src: cura.png - dest: /opt/cura.png - -- name: install cura dekstop file - copy: - src: cura.desktop - dest: /usr/share/applications/cura.desktop + apt: + name: cura + state: present diff --git a/packer/ansible/roles/fablab/tasks/main.yml b/packer/ansible/roles/fablab/tasks/main.yml index 3e50409..891123b 100644 --- a/packer/ansible/roles/fablab/tasks/main.yml +++ b/packer/ansible/roles/fablab/tasks/main.yml @@ -21,5 +21,8 @@ - import_tasks: metalcut.yml tags: - fablab:metalcut + - import_tasks: prusa.yml + tags: + - fablab:prusa tags: - fablab diff --git a/packer/ansible/roles/fablab/tasks/prusa.yml b/packer/ansible/roles/fablab/tasks/prusa.yml new file mode 100644 index 0000000..31a992c --- /dev/null +++ b/packer/ansible/roles/fablab/tasks/prusa.yml @@ -0,0 +1,5 @@ +--- +- name: install slic3r-prusa + apt: + name: slic3r-prusa + state: present diff --git a/packer/ansible/roles/packages/tasks/sources.yml b/packer/ansible/roles/packages/tasks/sources.yml index d6befbc..0392177 100644 --- a/packer/ansible/roles/packages/tasks/sources.yml +++ b/packer/ansible/roles/packages/tasks/sources.yml @@ -11,20 +11,20 @@ - name: configure main repo apt_repository: - filename: "{{ ansible_distribution_release }}" - repo: "deb {{ debian_mirror }} {{ ansible_distribution_release }} {{ debian_sections | join(' ') }}" + filename: "{{ ansible_lsb.codename }}" + repo: "deb {{ debian_mirror }} {{ ansible_lsb.codename }} {{ debian_sections | join(' ') }}" state: present - name: configure updates repo apt_repository: - filename: "{{ ansible_distribution_release }}-updates" - repo: "deb {{ mirror }} {{ ansible_distribution_release }}-updates {{ debian_sections | join(' ') }}" + filename: "{{ ansible_lsb.codename }}-updates" + repo: "deb {{ mirror }} {{ ansible_lsb.codename }}-updates {{ debian_sections | join(' ') }}" state: present vars: mirror: "{{ debian_mirror_updates | default(debian_mirror) }}" - name: configure security updates repo apt_repository: - filename: "{{ ansible_distribution_release }}-security" - repo: "deb {{ debian_mirror_security }} {{ ansible_distribution_release }}/updates {{ debian_sections | join(' ') }}" + filename: "{{ ansible_lsb.codename }}-security" + repo: "deb {{ debian_mirror_security }} {{ ansible_lsb.codename }}/updates {{ debian_sections | join(' ') }}" state: present diff --git a/packer/debian-stretch.json b/packer/debian-buster.json similarity index 92% rename from packer/debian-stretch.json rename to packer/debian-buster.json index 6ec13b0..7e60f8c 100644 --- a/packer/debian-stretch.json +++ b/packer/debian-buster.json @@ -22,7 +22,7 @@ [ { "type": "docker", - "image": "debian:stretch", + "image": "debian:buster", "discard": true, "run_command": [ "-d", @@ -73,14 +73,14 @@ "echo overlay >> /etc/initramfs-tools/modules", "echo 'RESUME=none' > /etc/initramfs-tools/conf.d/resume", "mkdir /usr/local/boot", - "apt-get -f -y install aria2 linux-image-amd64 lvm2", + "apt-get -f -y install aria2 linux-image-amd64 lvm2 haveged", "cp $(find /boot/ -name 'initrd.img-*' | sort -V | tail -n 1) '/tmp/images/{{user `initramfs_file`}}'", "cp $(find /boot/ -name 'vmlinuz-*' | sort -V | tail -n 1) '/tmp/images/{{user `linux_file`}}'" ] }, { "type": "shell", - "inline": [ "apt-get -y install openssh-server python" ] + "inline": [ "apt-get -y install openssh-server python lsb-release" ] }, { "type": "ansible", @@ -102,7 +102,9 @@ "echo '/etc/hostname' >> /tmp/ignore_files", "echo '/etc/hosts' >> /tmp/ignore_files", "echo '/var/lib/docker' >> /tmp/ignore_files", - "mkdir -p /tmp/extra/tmp /tmp/extra/proc /tmp/extra/sys /tmp/extra/etc" + "echo '/var/cache/apt/archives' >> /tmp/ignore_files", + "echo '/var/lib/apt' >> /tmp/ignore_files", + "mkdir -p /tmp/extra/tmp /tmp/extra/proc /tmp/extra/sys" ] }, { diff --git a/packer/initramfs/labsync b/packer/initramfs/labsync index e202689..2b92337 100755 --- a/packer/initramfs/labsync +++ b/packer/initramfs/labsync @@ -92,6 +92,8 @@ labsync_configure_dns() { labsync_mount_root() { + haveged + export PATH="/usr/local/bin:$PATH" [ "$labsync_debug" = 1 ] && set -x sed -i 's/use_lvmetad = 1/use_lvmetad = 0/' /etc/lvm/lvm.conf @@ -217,7 +219,7 @@ PARTTABLE "") ;; pause) - read x + sh -i ;; *) sleep $labsync_wait diff --git a/packer/initramfs/labsync-prereqs b/packer/initramfs/labsync-prereqs index 120cd77..bcd57c0 100755 --- a/packer/initramfs/labsync-prereqs +++ b/packer/initramfs/labsync-prereqs @@ -6,10 +6,12 @@ case $1 in # GETS EXECUTED WHEN BUILDING INITRAMFS ## . /usr/share/initramfs-tools/hook-functions - copy_exec /sbin/mke2fs + rm -f "$DESTDIR/sbin/mke2fs" copy_exec /sbin/e2fsck - copy_exec /usr/bin/aria2c + copy_exec /sbin/mke2fs copy_exec /sbin/sfdisk + copy_exec /usr/bin/aria2c + copy_exec /usr/sbin/haveged copy_file cert /etc/ssl/certs/ca-certificates.crt exit 0 ;; diff --git a/security-scanner/Dockerfile b/security-scanner/Dockerfile index d72732c..3b1eb74 100644 --- a/security-scanner/Dockerfile +++ b/security-scanner/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:stretch-slim +FROM debian:buster-slim RUN apt-get update \ && apt-get -y install \ diff --git a/txt.cfg b/txt.cfg index 98ca8e5..2f544a4 100644 --- a/txt.cfg +++ b/txt.cfg @@ -1,7 +1,7 @@ label labsync menu label ^labsync - kernel images/debian-stretch.linux - append initrd=images/debian-stretch.initramfs.dev boot=labsync labsync_disk=sda labsync_partsize_boot=512 labsync_torrent=http://10.2.2.1/debian-stretch.torrent quiet vga=792 ip=10.2.2.10:::255.255.255.0:qemu-host:ens3:off labsync_wait=pause + kernel images/debian-buster.linux + append initrd=images/debian-buster.initramfs.dev boot=labsync labsync_disk=sda labsync_partsize_boot=512 labsync_torrent=http://10.2.2.1/debian-buster.torrent quiet vga=792 ip=10.2.2.10:::255.255.255.0:qemu-host:ens3:off labsync_wait=pause label install menu label ^Install