Oneplus One Update von LineageOS

Als Erinnerung an mich selbst:

Update herunterladen (in den Einstellungen). Update starten führt ins Recovery. Install wählen und das neueste Update im Pfad

/data/data/org.lineageos.updater/app_updates

auswählen. Anschließen ggf. noch das SuperSU, das man im Download-Folder liegen hat (vorher downloaden), hinzufügen.  Update starten. Beim Reboot „do not install“ für gewünschtes SuperSU-Installation wählen.

Erster Boot dauert etwas länger.

 

 

Proxy in einem (LXC)-Container setzen

Da ein paar Server in meinem Netz nicht direkt, sondern nur via Reverse-Proxy erreichbar sind haben diese auch keinen direkten Internetzugang. Sie müssen sich also auch Updates etc. via Proxy holen.

Dafür setze ich zum einen APT-Cacher-NG, und zum Anderen einen Squid ein. Apt könnte natürlich auch über den Squid laufen, aber da ja mehrere Server laufen muss ich nicht alle Updates zig mal herunterladen.

Den Proxy für APT setzt man einfach indem man eine Datei erstellt

$ nano /etc/apt/apt.conf.d/00aptproxy

Hier wird nun der Proxy eingetragen

Acquire::http::Proxy "http://aptproxy.domain.de:3142“;
Acquire::https::Proxy "https://aptproxy.domain.de:3142“;

Damit wget z.B. aber auch via Proxy raus geht kann man den „normalen“ Proxy beispielsweise ins Environment setzen. Dies geschieht durch

$ nano /etc/enviroment

und eintragen der Werte

$ nano /etc/environment
http_proxy=http://proxy.domain.de:3128
https_proxy=https://proxy.domain.de:3128
ftp_proxy=ftp://proxy.domain.de
no_proxy=localhost,intranet.domain.de
soap_use_proxy=on

Nun hatte ich das Problem das ein Container das so gesetzte Environment nicht übernimmt, sondern offensichtlich das des Host auf dem er läuft. Da sich Host und Gast aber in unterschiedlichen Netzen befinden kann der Proxy nicht aufgelöst werden.

Deswegen setzt man den Proxy für wget in dessen Config-Datei

$ nano /etc/wgetrc
https_proxy = https://proxy.domain.de:3128/
http_proxy = http://proxy.domain.de:3128/
ftp_proxy = http://proxy.domain.de:3128/

Separaten (SSD) Root unter Ceph einrichten

In meinem (Proxmox)-Ceph Cluster möchte ich mit ein paar SSD einen separaten Root Bereich zur Ablage von VM-Images realisieren. Früher musste man dazu die Crush-Map noch von Hand extrahieren, anpassen und wieder einspielen. In der von mir eingesetzten Jewel-Version geht das auch schon mit dem CLI.

Zunächst ein neuen Root-Container erzeugen:

$ ceph osd crush add-bucket ssds root

Da in Ceph-Servern schon SATA Platten verbaut und genutzt sind, muss man für den neuen Pool gefakten Hostnamen anlegen

$ ceph osd crush add-bucket ceph01-ssd host
$ ceph osd crush add-bucket ceph02-ssd host
$ ceph osd crush add-bucket ceph03-ssd host

In die ceph.conf (/etc/pve/ceph.conf wird im [osd]-Abschnitt der folgende Eintrag gemacht, damit nach einem Reboot die OSD nicht wieder in den default-Pool gelegt werden.

[osd]
osd crush update on start = false

In meinem Fall hat dies schon gelangt, damit die OSD permanent im SSD-Container bleiben. Falls das nicht klappt kann man probieren den jeweiligen OSD direkt anzuweisen wo er liegt. Dazu ebenfalls in der ceph.conf einen Eintrag pro OSD machen.

[osd.13]
host = ceph01
osd_journal = /dev/disk/by-id/ata-SATA_SSD_67F584760C2400150026-part1
crush_location = root=ssds host=ceph01-ssd

Nun kann man die neuen OSD anlegen. Entweder via GUI oder

ceph osd crush add 13 0.64 root=ssds

Hierbei ist „13“ die OSD-Nummer und 1.5 gibt die weight an. Eine weight von 1 entspricht 1TB.

Im Anschluss verschiebt man die OSD in den neuen Container.

ceph osd crush set osd.13 0.64 root=ssds host=ceph01-ssd

Nun kann man einen neuen Pool erzeugen. Via Webinterface oder

ceph osd pool create ssdpool 64 64

Anschließend muss noch eine Crush-Rule erzeugt werden

ceph osd crush rule create-simple ssdpool ssds host

Der letzte Schritt ist die Cruh-Rule dem neuen Pool zuzuweisen

ceph osd pool set ssdpool crush_ruleset 3

 

Einfache Config für Squid

In einem internen Netz sollen die Server nur via Proxy „nach draußen“. Unter Debian wird Squid z.B. mit

$ apt-get install squid3

installiert. Für CentOS wäre dies

yum -y install squid

Anschließend kann man in der Konfigurationsdatei /etc/squid/squid.conf folgende Einträge machen

#Recommended minimum configuration:
acl manager proto cache_object
acl localhost src 127.0.0.1/32
# acl to_localhost dst 10.0.0.0/8
acl localnet src 10.0.0.0/8
# 0.0.0.0/8 192.168.100.0/24 192.168.101.0/24
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http

acl CONNECT method CONNECT

http_access allow manager localhost localnet
http_access deny manager
http_access deny !Safe_ports

#http_access deny to_localhost
http_access always_direct localnet
icp_access deny all
htcp_access deny all

http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid


#Suggested default:
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid3

# Allow all machines to all sites
http_access allow all

Vagrant unter Windows hinter einem Proxy nutzen

Um Vagrant unter Windows hinter einem Proxy sinnvoll zu nutzen bedient man sich am Besten des Vagrant-Plugins „vagrant-proxyconf“.

Dies installiert man mit

vagrant plugin install vagrant-proxyconf

Wenn man nun aber z.B. in der Firma hinter einem Proxy sitzt, so klappt natürlich auch die Plugin-Installation aufgrund fehlenden Internet-Zugriffs nicht. Also muss zunächst für die Plugin-Installation der verwendete Proxy erstmal in der Shell bekannt gemacht werden. Unter Unix wäre das mit Export der Umgebungsvariable erledigt. Unter Windows bedienen wir uns des SET-Befehls:

SET HTTP_PROXY=http://user:passwort@proxy:port
SET HTTPS_PROXY=http://user:passwort@proxy:port

Nun einfach die entsprechenden Werte einsetzen und in der Shell eingeben. Danach kann man dann das Plugin wie oben beschrieben installieren.

Nun kann man die Proxy-Settings entweder in sein privates User-Vagrantfile einbinden, oder aber z.B. in das Vagrantfile der aktuellen Maschine:

config.proxy.http = "http://user:passwort@proxy:port"
config.proxy.https = "http://user:passwort@proxy:port"
config.proxy.no_proxy = "localhost,127.0.0.1"

Nun sollte beim nächsten „vagrant up“ der Zugriff klappen und z.B. das Image heruntergeladen werden.

Sollte für den Zugriff kein User/Passwort nötig sein, wird der entsprechende Teil in der Proxy-URL einfach weggelassen.