asanger.dev

1 5 6 7

Regeln mit Zeilennummern auflisten

sudo iptables -L --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain FORWARD (policy DROP)
num  target     prot opt source               destination         
1    DOCKER-USER  all  --  anywhere             anywhere            
2    DOCKER-ISOLATION-STAGE-1  all  --  anywhere             anywhere            
3    ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
4    DOCKER     all  --  anywhere             anywhere            
5    ACCEPT     all  --  anywhere             anywhere            
6    ACCEPT     all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination   

NAT Regeln mit Zeilennummern auflisten

sudo iptables -tnat -L --line-numbers
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    DOCKER     all  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DOCKER     all  --  anywhere            !localhost/8          ADDRTYPE match dst-type LOCAL
2    DNAT       tcp  --  anywhere             anywhere             tcp dpt:ldap to:10.185.131.139:443

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    MASQUERADE  all  --  172.17.0.0/16        anywhere            
2    MASQUERADE  all  --  anywhere             anywhere            

Die gewünschte Regel löschen (Chain und Zeilennummer angeben)

sudo iptables -D FORWARD 5

Die gewünschte NAT Regel löschen (Chain und Zeilennummer angeben)

sudo iptables -t nat -D POSTROUTING 2

Eingehenden Traffic auf Port 443 weiterleiten an 10.98.193.201:389

sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to 10.98.193.201:389
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Eingehenden Traffic auf Port 443 und IP 46.25.33.12 weiterleiten an 10.98.193.201:389

sudo iptables -t nat -A PREROUTING -p tcp -d 46.25.33.12 --dport 22101 -j DNAT --to 10.10.0.101:22
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Ausgehenden Traffic an Port 389 (ldap) nach 10.98.193.200:389 umleiten

sudo iptables -t nat -A OUTPUT -p tcp  --dport 389 -j DNAT --to-destination 10.98.193.200:389
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Ausgehenden Traffic an IP 10.90.32.6 und Port 389 (ldap) nach 10.98.193.200:389 umleiten

sudo iptables -t nat -A OUTPUT -p tcp -d 10.90.32.6 --dport 443 -j DNAT --to-destination 10.98.193.200:389 
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
terraform state list
terraform state list | grep thomas
data.gitlab_user.members["thomas@asanger.dev"]
data.ldap_user.members["thomas@asanger.dev"]
module.upn_lookup["thomas@asanger.dev"].data.http.upn_lookup
terraform state rm 'data.ldap_user.members["thomas@asanger.dev"]'
terraform state show 'data.gitlab_user.members["thomas@asanger.dev"]'
# data.gitlab_user.members["thomas@asanger.dev"]:
data "gitlab_user" "members" {
    avatar_url         = "https://gitlab.asanger.dev/505/avatar.png"
    can_create_group   = false
    can_create_project = false
    color_scheme_id    = 0
    external           = false
    id                 = "505"
    is_admin           = false
    name               = "Asanger, Thomas"
    namespace_id       = 0
    projects_limit     = 0
    state              = "active"
    theme_id           = 0
    two_factor_enabled = false
    user_id            = 505
    username           = "asangert"
}
terraform state show 'gitlab_group_membership.maintainers["thomas@asanger.dev"]'
# gitlab_group_membership.maintainers["thomas@asanger.dev"]:
resource "gitlab_group_membership" "maintainers" {
    access_level                  = "maintainer"
    group_id                      = "6911"
    id                            = "6911:505"
    skip_subresources_on_destroy  = false
    unassign_issuables_on_destroy = false
    user_id                       = 505
}
terraform import -var-file ../../compiled/mp_content/team.tfvars 'gitlab_group_membership.maintainers["thomas@asanger.dev"]' "6911:505"

Continuous Delivery (CD) ist eine Erweiterung des Konzepts der Continuous Integration (CI) und bezieht sich auf den Prozess, bei dem Software in kurzen, iterativen Zyklen bereitgestellt werden kann, wobei jede Änderung potenziell in Produktion gebracht werden kann. Das Hauptziel von Continuous Delivery besteht darin, sicherzustellen, dass Software jederzeit und schnell bereitgestellt werden kann, während gleichzeitig die Risiken minimiert werden.

Im Continuous-Delivery-Prozess durchläuft die Software nach der Integration eine Reihe von automatisierten Tests und Validierungen, um sicherzustellen, dass sie den Anforderungen entspricht und keine unerwarteten Probleme in der Produktionsumgebung verursacht. Wenn die Tests erfolgreich sind, wird die Software automatisch in die Produktionsumgebung bereitgestellt.

Einige Schlüsselmerkmale von Continuous Delivery sind:

  1. Automatisierung: Die Bereitstellungsschritte werden weitgehend automatisiert, um den menschlichen Aufwand zu minimieren und die Konsistenz zu gewährleisten.
  2. Hohe Testabdeckung: Um das Vertrauen in den Bereitstellungsprozess zu stärken, wird eine umfassende Testabdeckung angestrebt, einschließlich Unit-Tests, Integrationstests, Akzeptanztests usw.
  3. Konfigurationsmanagement: Die Konfiguration der Produktionsumgebung wird verwaltet und automatisiert, um sicherzustellen, dass die Software in verschiedenen Umgebungen konsistent und zuverlässig funktioniert.
  4. Kontinuierliches Feedback: Teams erhalten kontinuierliches Feedback über den Bereitstellungsprozess und die Qualität der Software, um Verbesserungen vorzunehmen und Probleme frühzeitig zu identifizieren.

Durch Continuous Delivery können Entwicklerteams die Time-to-Market verkürzen, die Softwarequalität verbessern und die Auslieferung neuer Funktionen effizienter gestalten.

Continuous Integration (CI) ist eine Praxis im Softwareentwicklungsprozess, bei der Entwickler ihre Codeänderungen regelmäßig in ein gemeinsames Repository integrieren. Das Ziel von Continuous Integration ist es, häufige Integrationen von Codeänderungen zu ermöglichen, um potenzielle Konflikte frühzeitig zu erkennen und zu beheben sowie die Qualität der Software zu verbessern.

Im Rahmen von Continuous Integration führen Entwickler typischerweise folgende Schritte durch:

  1. Änderungen einchecken: Entwickler übertragen ihre Codeänderungen in das zentrale Repository, normalerweise mehrmals täglich.
  2. Automatisierte Builds: Nachdem Änderungen eingecheckt wurden, wird automatisch ein Build-Prozess gestartet, um den neuen Code zu kompilieren und zu testen.
  3. Automatisierte Tests: Es werden automatisierte Tests ausgeführt, um sicherzustellen, dass die neuen Änderungen keine bestehende Funktionalität beeinträchtigen.
  4. Feedback bereitstellen: Entwickler erhalten sofortiges Feedback über den Status ihres Codes. Wenn ein Build oder ein Test fehlschlägt, können Entwickler schnell reagieren, um das Problem zu beheben.

Durch die Implementierung von Continuous Integration können Teams Fehler früher im Entwicklungsprozess erkennen, die Softwarequalität verbessern, die Time-to-Market verkürzen und die Effizienz im Entwicklungsprozess steigern.

DevOps ist ein Konzept, das darauf abzielt, die Zusammenarbeit und Integration zwischen Softwareentwicklung (Dev) und IT-Betrieb (Ops) zu verbessern. Es handelt sich um einen kulturellen Wandel, der auf die Verkürzung des Softwareentwicklungszyklus, die kontinuierliche Bereitstellung von Software und die Verbesserung der Qualität von Software-Veröffentlichungen abzielt.

echo 'password' | kapitan refs --write awskms:tokens/grafana_ng_admin_password --key alias/r5s-kapitan -f -
kapitan refs --reveal --ref-file deploy/refs/tokens/grafana_ng_admin_password
1 5 6 7