Popraw wszystkie błędy w pliku date-flag-playbook.yml
(poniżej). Jak uruchomić ten plik? (napisz komendę w bash):
---
- host: localhost
task:
- name: create date_flagg file
lineifile:
creates: yes
lines: "{{ ansible_date_time.date }}"
dests: /tmp/date_flag
Rozwiązanie
---
- hosts: localhost
tasks:
- name: create date_flagg file
lineinfile:
path: /tmp/date_flagg
creates: yes
line: "{{ ansible_date_time.date }}"
- a) przeiteruj przez linie w pliku
./ttt
i wykonaj na każdej z nich polecenieecho
- b) ustaw limit otwartych plików na 1024 w obecnej sesji logowania
- c) Popraw wszystkie błędy w poniższym wywołaniu:
DOCKER_FLAGS="-ti ubuntu:latest cat /etc/resolf.conv"
docker runn "${DOCKER_FLAGS}"
Rozwiązanie
a) cat ttt | while read line; do echo $line; done
b) ulimit -S -n <liczba> (jednak nie wieksza niż HARD -> ulimit -n -H) / Chodź domyślnie SOFT wynosi 1024
DOCKER_FLAGS="-it ubuntu:latest cat /etc/resolv.conf"
docker run ${DOCKER_FLAGS}
Rozważ architekturę, w której na serwerze app01.local
uruchomiony jest Apache Tomcat, który na porcie 8080 wystawia aplikację webową "X". Maszyna app01.local
nie ma dostępu do Internetu, ale posiada serwer ssh (port 2222). Firewall blokuje wszystkie połączenia przychodzące do app01.local
oprócz połączeń z serwera jump.local
skierowanych na port 2222. W jaki sposób otworzysz aplikację "X" w przeglądarce na swoim laptopie biorąc pod uwagę fakt, że możesz połączyć się do [email protected]
za pomocą ssh, a użytkownik root z jump.local
ma dodany klucz ssh na app01.local?
Rozwiązanie
app01 [Apache 8080 & SSH 2222] jump [ SSH 22 & Whitelisted on app01 => SSH(2222)]
Naprojściej jest dodać klucz do ssh-agent'a eval "$(ssh-agent -s)"
a następnie dodać klucze do ssh-agenta ssh-add ~/.ssh/id_rsa
Następnie SSH tunneling z parametrami -f
-N
ssh -N -f -o "ProxyJump [email protected]" -p 2222 [email protected] -L 127.0.0.1:8080:0.0.0.0:8080
po -L
zastosowano 127.0.0.1
dodatkowo aby udostępnić stronę jedynie na naszym localhoscie
Proxy jump można podać z -o "ProxyJump
lub -J
bez options
czyli -o
. Używam dłuższej nazwy by było bardziej czytelne.
Napisz plik .gitlab-ci.yml
lub bitbucket-pipelines.yml
, który wykorzystywałby Mavena do zbudowania kodu i wysłania paczki war
do Artifactory, zakładając, że pom.xml
jest odpowiednio skonfigurowany. Opcjonalnie, jeśli nie jesteś zaznajomiony z Mavenem może to być Gradle i Artifactory, albo nawet Python i PyPi lub Composer i Satis.
Rozwiązanie
image: maven:latest
variables:
MAVEN_CLI_OPTS: "-s .m2/settings.xml --batch-mode"
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
cache:
paths:
- .m2/repository/
- target/
build:
stage: build
script:
- mvn $MAVEN_CLI_OPTS compile
test:
stage: test
script:
- mvn $MAVEN_CLI_OPTS test
deploy:
stage: deploy
script:
- mvn $MAVEN_CLI_OPTS deploy
only:
- master
Zaprojektuj infrastrukturę dla aplikacji webowej na AWS lub Azure, biorąc pod uwagę następujące warunki:
- frontend to aplikacja SPA w Angular
- bakcend to REST API w Python uruchomione na dockerze
- backend musi być samo-skalowalny, zależnie od liczby odwiedzających
- aplikacja korzysta z bazy danych Mysql
- aplikacja korzysta z Redis do zarządzania sesją
- aplikacja posiada funkcjonalność uploadowania plików przez użytkowników. Pliki te muszą być następnie dostępne dla serwerów backendowych
Forma odpowiedzi dowolna.
Rozwiązanie
Diagram infrastruktury