<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Zycie Kodera]]></title><description><![CDATA[Od Programisty dla wszystkich]]></description><link>https://zycie-kodera.pl/</link><image><url>https://zycie-kodera.pl/favicon.png</url><title>Zycie Kodera</title><link>https://zycie-kodera.pl/</link></image><generator>Ghost 4.3</generator><lastBuildDate>Tue, 06 Dec 2022 12:21:00 GMT</lastBuildDate><atom:link href="https://zycie-kodera.pl/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Removing DNS records in bulk from Cloudflare]]></title><description><![CDATA[<p>This week I was moving my test domains to cloudflare. The process is quick and easy. By default cloudflare is trying to migrate all of your DNS records and that is cool. Unfortunately when you have wildcard domain <code>*</code> it can add 200 uneeded <code>A records</code> to your domains. My first</p>]]></description><link>https://zycie-kodera.pl/removing-dns-records-in-bulk-from-cloudflare/</link><guid isPermaLink="false">61d4891ca7f850029f7a0655</guid><category><![CDATA[devops]]></category><category><![CDATA[cloud computing]]></category><dc:creator><![CDATA[Wojciech Woźniak]]></dc:creator><pubDate>Tue, 04 Jan 2022 18:20:20 GMT</pubDate><media:content url="https://zycie-kodera.pl/content/images/2022/01/nasa-1lfI7wkGWZ4-unsplash-1-.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://zycie-kodera.pl/content/images/2022/01/nasa-1lfI7wkGWZ4-unsplash-1-.jpg" alt="Removing DNS records in bulk from Cloudflare"><p>This week I was moving my test domains to cloudflare. The process is quick and easy. By default cloudflare is trying to migrate all of your DNS records and that is cool. Unfortunately when you have wildcard domain <code>*</code> it can add 200 uneeded <code>A records</code> to your domains. My first thought was ok not big deal I will remove them in bulk but you can remove entries only one by one... :) </p><p>Fortunetly to overcome this issue we can use cloudflare API! First step will be to create API token with<strong> DNS zone edi</strong>t priviliges. The step by step manual is in the <a href="https://developers.cloudflare.com/api/tokens/create">docs</a>. We can verify the token using CURL:</p><pre><code>curl -X GET &quot;https://api.cloudflare.com/client/v4/user/tokens/verify&quot; \
     -H &quot;Authorization: Bearer &lt;token secret&gt;&quot; \
     -H &quot;Content-Type:application/json&quot;</code></pre><p>Next we have to retrive our DNS Zone id. we can find it dashboard. To get it we have to go to <strong>Websites -&gt;our domain-&gt;Overview </strong>and on the right there will be <strong>Zone ID .</strong></p><p>After that we will be interested in two specyfic API endpoints.<br>- List DNS records: <a href="https://api.cloudflare.com/#dns-records-for-a-zone-list-dns-records">https://api.cloudflare.com/#dns-records-for-a-zone-list-dns-records</a><br>- Delete DNS record: <a href="https://api.cloudflare.com/#dns-records-for-a-zone-delete-dns-record">https://api.cloudflare.com/#dns-records-for-a-zone-delete-dns-record</a><br><br>To list all records we in the zone we have to make this call:</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">curl -X GET &quot;https://api.cloudflare.com/client/v4/zones/&lt;ZONE_ID/dns_records?page=1&amp;per_page=300&quot; \
	-H &quot;Authorization: Bearer &lt;API TOKEN&gt;&quot; \
	-H &quot;Content-Type: application/json&quot;</code></pre><figcaption>API call to list records</figcaption></figure><p>and to remove:</p><figure class="kg-card kg-code-card"><pre><code>curl -X DELETE &quot;https://api.cloudflare.com/client/v4/zones/&lt;ZONE_ID&gt;/dns_records/&lt;RECORD_ID&gt;&quot;
	-H &quot;Content-Type: application/json&quot; \
	-H &quot;Authorization: Bearer &lt;API TOKEN&gt;&quot;</code></pre><figcaption>API call to remove record</figcaption></figure><p>With those two API requests, little support from <code>jq</code> and <code>for</code> loop we are able to make small script that will clean it up for us :) </p><pre><code class="language-bash">for dns_record in $(curl -X GET &quot;https://api.cloudflare.com/client/v4/zones/&lt;ZONE_ID/dns_records?page=1&amp;per_page=300&quot; -H &quot;Authorization: Bearer &lt;API TOKEN&gt;&quot; -H &quot;Content-Type: application/json&quot; | jq -r &quot;.result [] .id&quot;)
do
	curl -X DELETE &quot;https://api.cloudflare.com/client/v4/zones/&lt;ZONE_ID&gt;/dns_records/$dns_record&quot; -H &quot;Content-Type: application/json&quot; -H &quot;Authorization: Bearer &lt;API TOKEN&gt;&quot;
done</code></pre><p>And that is ready bash snippet that will remove all DNS records from selected zone :) </p>]]></content:encoded></item><item><title><![CDATA[Quick remote shell in Kubernetes Cluster]]></title><description><![CDATA[<p>How to quickly debug anything on cluster? You can quickly run any linux oci image using <code>kubectl</code> :<br>Jak szybko zdebugowa&#x107; co&#x15B; na klastrze? Nic trudnego wystarczy odpali&#x107; poda na zdalnej maszynie przy wykorzystaniu <code>kubectl</code>:</p><pre><code>kubectl run shell --rm -i --tty --image ubuntu -- bash</code></pre><p><br><code>kubectl run</code> -</p>]]></description><link>https://zycie-kodera.pl/quick-remote-shell-in-kubernetes/</link><guid isPermaLink="false">613297f1a0fc863a400be1ff</guid><category><![CDATA[kubectl]]></category><category><![CDATA[kubernets]]></category><category><![CDATA[linux]]></category><category><![CDATA[devops]]></category><category><![CDATA[cloud computing]]></category><dc:creator><![CDATA[Wojciech Woźniak]]></dc:creator><pubDate>Thu, 07 Jan 2021 17:01:03 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1518432031352-d6fc5c10da5a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MXwxMTc3M3wwfDF8c2VhcmNofDF8fGxpbnV4fGVufDB8fHw&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1080" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1518432031352-d6fc5c10da5a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MXwxMTc3M3wwfDF8c2VhcmNofDF8fGxpbnV4fGVufDB8fHw&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1080" alt="Quick remote shell in Kubernetes Cluster"><p>How to quickly debug anything on cluster? You can quickly run any linux oci image using <code>kubectl</code> :<br>Jak szybko zdebugowa&#x107; co&#x15B; na klastrze? Nic trudnego wystarczy odpali&#x107; poda na zdalnej maszynie przy wykorzystaniu <code>kubectl</code>:</p><pre><code>kubectl run shell --rm -i --tty --image ubuntu -- bash</code></pre><p><br><code>kubectl run</code> - Create and run a particular image in a pod.<br><code>shell</code> - pod name <br><code>--rm</code> - delete resources created in this command for attached containers.<br><code>-i</code> - Keep stdin open on the container(s) in the pod, even if nothing is attached. <br><code>--tty</code> - Allocated a TTY for each container in the pod. <br><code>--image</code> - The image for the container to run. <br><code>ubuntu</code> - ubuntu image name<br><code>-- bash</code> - command to run.</p><p>And that is it :) After disconnecting pod should be automatically removed!</p>]]></content:encoded></item><item><title><![CDATA[Tekton CI/CD (Część 1: Wstęp)]]></title><description><![CDATA[<p>Tekton to natywny dla Kubernetesa system CI/CD. Oznacza to &#x17C;e wszystkie zadania i konfiguracje przechowujemy jako obiekty Kubernetesa. W poni&#x17C;szym artyklule postaram si&#x119; pokr&#xF3;tce przedstawi&#x107; jego za&#x142;o&#x17C;enia a w kolejnych cz&#x119;sciach przedstawi&#x119; jak korzysta&#x107;</p>]]></description><link>https://zycie-kodera.pl/tekton-cd/</link><guid isPermaLink="false">613297f1a0fc863a400be1fe</guid><category><![CDATA[devops]]></category><category><![CDATA[cloud computing]]></category><category><![CDATA[kubernets]]></category><category><![CDATA[programowanie]]></category><dc:creator><![CDATA[Wojciech Woźniak]]></dc:creator><pubDate>Mon, 29 Jun 2020 20:28:24 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1428585227457-326f25f9cee2?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1428585227457-326f25f9cee2?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Tekton CI/CD (Cz&#x119;&#x15B;&#x107; 1: Wst&#x119;p)"><p>Tekton to natywny dla Kubernetesa system CI/CD. Oznacza to &#x17C;e wszystkie zadania i konfiguracje przechowujemy jako obiekty Kubernetesa. W poni&#x17C;szym artyklule postaram si&#x119; pokr&#xF3;tce przedstawi&#x107; jego za&#x142;o&#x17C;enia a w kolejnych cz&#x119;sciach przedstawi&#x119; jak korzysta&#x107; z tego wygodnego rozwi&#x105;zania. </p><p>Ka&#x17C;de zadanie w Tektonowym pipeline mo&#x17C;emy podzieli&#x107; na kroki(<strong>step</strong>) kt&#xF3;re sk&#x142;adaj&#x105; sie na zadania(<strong>task</strong>) a te sk&#x142;adaj&#x105; si&#x119; na pipeline. Zadania i pipeliney s&#x105; `custom resources`. </p><figure class="kg-card kg-image-card"><img src="https://zycie-kodera.pl/content/images/2020/06/concept-tasks-pipelines.png" class="kg-image" alt="Tekton CI/CD (Cz&#x119;&#x15B;&#x107; 1: Wst&#x119;p)" loading="lazy"></figure><h3 id="obiekty-wej-cia-i-wyj-cia">Obiekty wej&#x15B;cia i wyj&#x15B;cia</h3><p>Ka&#x17C;dy zadanie i pipeline mo&#x17C;e mie&#x107; swoje wej&#x15B;cie i wyj&#x15B;cie. Na przyk&#x142;ad zadanie buduj&#x105;ce obraz Docker na wej&#x15B;ciu bedzie mia&#x142;o repozytorium gita a na wyj&#x15B;ciu obraz Dockera.<br>Tekton wspiera nast&#x119;puj&#x105;ce:<br>	- repozytorium gita<br>	- Pull Request <br>	- Obraz kontenera<br>	- Klaster Kubernetesa<br>	- Przechowanie, obiekt lub katalog i w pami&#x119;ci<br>	- CloudEvent</p><figure class="kg-card kg-image-card"><img src="https://zycie-kodera.pl/content/images/2020/06/concept-resources.png" class="kg-image" alt="Tekton CI/CD (Cz&#x119;&#x15B;&#x107; 1: Wst&#x119;p)" loading="lazy"></figure><p>Uruchomienie Zada&#x144; i Pipeline&#xF3;w.</p><p>W Tektonie istniej&#x105; dwa kolejne obiekty <strong>TaskRuns</strong> i <strong>PipelineRuns</strong>. S&#x142;u&#x17C;&#x105; one odopwiednia do uruchomienia zadania b&#x105;d&#x17A; ca&#x142;ego pipelina. Uruchomienia mo&#x17C;na tworzy&#x107; manualnie b&#x105;d&#x17A; automatyzowa&#x107; przy pomocy Tekton Triggers o czym napisz&#x119; wi&#x119;cej w kolejnej cz&#x119;&#x15B;ci.</p><figure class="kg-card kg-image-card"><img src="https://zycie-kodera.pl/content/images/2020/06/concept-runs.png" class="kg-image" alt="Tekton CI/CD (Cz&#x119;&#x15B;&#x107; 1: Wst&#x119;p)" loading="lazy"></figure><p>Tekton jest &#x15B;wietn&#x105; alternatyw&#x105; dla wielu innych system&#xF3;w CI/CD takich jak np. Jenkins. Mam nadziej&#x119; &#x17C;e w tej serii uda mi si&#x119; pokaza&#x107; Ci jego zalety i przekona&#x107; do wypr&#xF3;bowania w nowym b&#x105;d&#x17A; istniej&#x105;cym projekcie.</p>]]></content:encoded></item><item><title><![CDATA[Z życia DevOpsa: Jak pobrać publiczne klucze użytkowników z GitHuba.]]></title><description><![CDATA[<p>Przy automatyzacji pewnych proces&#xF3;w, takich jak na przyk&#x142;ad dost&#x119;py do bastion&#xF3;w pojawia si&#x119; problem dodawania kluczy SSHa. Niestety bardzo cz&#x119;sto nie mo&#x17C;na polega&#x107; na u&#x17C;ytkownikach aby poprawnie wklejali klucze. Na szcz&#x119;&#x15B;cie</p>]]></description><link>https://zycie-kodera.pl/z-zycia-devopsa-jak-pobrac-publiczne-klucze-uzytkownikow-z-githuba/</link><guid isPermaLink="false">613297f1a0fc863a400be1fb</guid><category><![CDATA[git]]></category><category><![CDATA[devops]]></category><category><![CDATA[github]]></category><dc:creator><![CDATA[Wojciech Woźniak]]></dc:creator><pubDate>Mon, 01 Jul 2019 21:30:01 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1512309739986-032cbacdb618?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1512309739986-032cbacdb618?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Z &#x17C;ycia DevOpsa: Jak pobra&#x107; publiczne klucze u&#x17C;ytkownik&#xF3;w z GitHuba."><p>Przy automatyzacji pewnych proces&#xF3;w, takich jak na przyk&#x142;ad dost&#x119;py do bastion&#xF3;w pojawia si&#x119; problem dodawania kluczy SSHa. Niestety bardzo cz&#x119;sto nie mo&#x17C;na polega&#x107; na u&#x17C;ytkownikach aby poprawnie wklejali klucze. Na szcz&#x119;&#x15B;cie z pomoc&#x105; przychodzi nam github. Aby pobra&#x107; publiczne klucze z githuba potrzebujemy wykona&#x107; porste polecenie:</p><pre><code>curl https://github.com/&lt;username&gt;.keys</code></pre><p>I w ten oto spos&#xF3;b mo&#x17C;emy szybko i wygodnie dodawa&#x107; klucze z GH.</p>]]></content:encoded></item><item><title><![CDATA[Debugowanie PVC w kubernetesie]]></title><description><![CDATA[<p>Czasami zdarza si&#x119; &#x17C;e co&#x15B; p&#xF3;jdzie nie tak i nasz dysk PVC b&#x119;dzie mia&#x142; b&#x142;edy b&#x105;d&#x17A; zape&#x142;ni si&#x119; tak &#x17C;e nie mo&#x17C;emy uruchomi&#x107; naszej us&#x142;ugi. </p><p>Ostanio mia&#x142;</p>]]></description><link>https://zycie-kodera.pl/debugowanie-pvc-w-kubernetesie/</link><guid isPermaLink="false">613297f1a0fc863a400be1fa</guid><category><![CDATA[kubernets]]></category><category><![CDATA[linux]]></category><category><![CDATA[cloud computing]]></category><category><![CDATA[kubectl]]></category><dc:creator><![CDATA[Wojciech Woźniak]]></dc:creator><pubDate>Mon, 06 May 2019 18:42:55 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1510853180832-3ec95c16627f?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1510853180832-3ec95c16627f?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Debugowanie PVC w kubernetesie"><p>Czasami zdarza si&#x119; &#x17C;e co&#x15B; p&#xF3;jdzie nie tak i nasz dysk PVC b&#x119;dzie mia&#x142; b&#x142;edy b&#x105;d&#x17A; zape&#x142;ni si&#x119; tak &#x17C;e nie mo&#x17C;emy uruchomi&#x107; naszej us&#x142;ugi. </p><p>Ostanio mia&#x142;em taki problem ze &#x17A;le skonfigurowan&#x105; us&#x142;ug&#x105; Prometheus. Przestrze&#x144; zape&#x142;ni&#x142;a si&#x119; tak bardzo &#x17C;e kontener nie m&#xF3;g&#x142; wsta&#x107;. Poni&#x17C;ej przedstawiam co wtedy zrobi&#x107;.</p><h3 id="odepnij-wolumen">Odepnij wolumen</h3><p>Kontener utkn&#x105;&#x142; w reboot loopie wi&#x119;c musimy przeskalowa&#x107; deployment do zera.</p><p><code>kubectl scale deployment my-deployment --replicas=0</code></p><h3 id="utw-rz-pod-do-debuggowania">Utw&#xF3;rz pod do debuggowania</h3><p>Najpierw musimy namierzy&#x107; PVC kt&#xF3;re nas interesuje</p><pre><code>$ kubectl describe deployment my-deployment | grep ClaimName
ClaimName:  data</code></pre><p>teraz musimy utworzy&#x107; nowego poda kt&#xF3;ry podepnie istniej&#x105;ce PVC.</p><p>utw&#xF3;rz plik <code>debug.yaml</code>:</p><pre><code>kind: Pod
apiVersion: v1
metadata:
  name: volume-debugger
spec:
  volumes:
    - name: debug-volume
      persistentVolumeClaim:
       claimName: &lt;TU PODAJ CLAIM NAME&gt;
  containers:
    - name: debugger
      image: busybox
      command: [&apos;sleep&apos;, &apos;3600&apos;]
      volumeMounts:
        - mountPath: &quot;/data&quot;
          name: debug-volume</code></pre><p>teraz musimy utworzy&#x107; nowego poda pami&#x119;taj&#x105;c aby by&#x142; w tej samej przestrzeni nazw co PVC.</p><pre><code>$ kubectl -n &lt;NAZWA PRZESTRZENI&gt; create -f debug.yaml
pod &quot;volume-debugger&quot; created
$ kubectl -n &lt;NAZWA PRZESTRZENI&gt; exec -it volume-debugger sh
/ # cd /data
/data # </code></pre><p>Teraz mo&#x17C;emy naprawi&#x107; pliki b&#x105;d&#x17A; usun&#x105;&#x107; nadmiarowe.</p><h3 id="przywracanie-us-ugi">Przywracanie us&#x142;ugi</h3><p>Po naprawie plik&#xF3;w mo&#x17C;emy przywr&#xF3;ci&#x107; nasz&#x105; us&#x142;ug&#x119; do &#x17C;ycia. Na pocz&#x105;tku wyjd&#x17A;my z naszego debug poda.</p><pre><code>/data # exit</code></pre><p>Nast&#x119;pnie powinni&#x15B;my usn&#x105;&#x107; naszego debug poda:</p><pre><code>$ kubectl -n &lt;NAZWA PRZESTRZENI&gt; delete -f debug.yaml</code></pre><p>I na koniec mo&#x17C;emy spowrotem przeskalowa&#x107; nasz&#x105; us&#x142;ug&#x119;:</p><pre><code>$ kubectl scale deployment my-deployment --replicas=1</code></pre><p>Teraz wszystko powinno by&#x107; w porz&#x105;dku</p><h3 id="podsumowanie">Podsumowanie</h3><p>W idealnym &#x15B;wecie nigdy nie powinni&#x15B;my musie&#x107; korzysta&#x107; z tej metody ale jak wiemy nie wszystko idzie idealnie. Warto wi&#x119;c zna&#x107; tak&#x105; szybk&#x105; metode jak dosta&#x107; si&#x119; do skorumpowanych danych.</p>]]></content:encoded></item><item><title><![CDATA[Instalacja Minikube na Linuxie]]></title><description><![CDATA[<p>Jako system hosta u&#x17C;yejmy dystrybucji Linux Mint 19. </p><p>Pierwszy krok jaki musimy wykona&#x107; to sprawdzenie czy sprz&#x119;towe wsparcie wirtualizacji jest w&#x142;&#x105;czone na naszym komputerze. W tym celu nale&#x17C;y wykona&#x107; polecenie:</p><pre><code>egrep --color &apos;vmx|svm&apos; /proc/cpuinfo</code></pre><p>je&</p>]]></description><link>https://zycie-kodera.pl/instalacja-minikube-na-linuxie/</link><guid isPermaLink="false">613297f1a0fc863a400be1f9</guid><category><![CDATA[kubernets]]></category><category><![CDATA[linux]]></category><category><![CDATA[programowanie]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[cloud computing]]></category><dc:creator><![CDATA[Wojciech Woźniak]]></dc:creator><pubDate>Tue, 30 Apr 2019 18:21:04 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1553792012-5c75e251255e?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1553792012-5c75e251255e?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=1080&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Instalacja Minikube na Linuxie"><p>Jako system hosta u&#x17C;yejmy dystrybucji Linux Mint 19. </p><p>Pierwszy krok jaki musimy wykona&#x107; to sprawdzenie czy sprz&#x119;towe wsparcie wirtualizacji jest w&#x142;&#x105;czone na naszym komputerze. W tym celu nale&#x17C;y wykona&#x107; polecenie:</p><pre><code>egrep --color &apos;vmx|svm&apos; /proc/cpuinfo</code></pre><p>je&#x15B;li wynik nie b&#x119;dzie pusty to mo&#x17C;emy przej&#x15B;&#x107; dalej.</p><p> Nast&#x119;pnym krokiem b&#x119;dzie instalacja narz&#x119;dzia do wirtualizacji. Do wyboru mamy dwa(VirtualBox i KVM). Z racji lepszej wydajno&#x15B;ci zainstalujemy KVM.</p><p>`<code>sudo apt install -y -o &apos;apt::install-recommends=true&apos; qemu-kvm libvirt0 libvirt-bin virt-manager libguestfs-tools</code></p><p>Oraz sterownik:</p><p><code>curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 \ &#xA0; &amp;&amp; sudo install docker-machine-driver-kvm2 /usr/local/bin/</code></p><p>nast&#x119;pnie musimy doda&#x107; naszego u&#x17C;ytkownika do grupy:</p><p><code>$ sudo gpasswd libvirt -a &lt;username&gt;</code> <br><code>$ sudo reboot</code></p><p>kolejny krok to instalacja narz&#x119;dzia <strong>kubectl</strong>, pe&#x142;na instrukcja znajduje si&#x119; tutaj: <a href="https://kubernetes.io/docs/tasks/tools/install-kubectl/">https://kubernetes.io/docs/tasks/tools/install-kubectl/</a></p><p>nast&#x119;pnie zainstalujemy minikube&apos;a:</p><pre><code>curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
  &amp;&amp; chmod +x minikube
sudo cp minikube /usr/local/bin &amp;&amp; rm minikube</code></pre><p>Teraz ju&#x17C; wystarczy go uruchomi&#x107;:</p><p><code>minikube start --vm-driver=kvm2</code></p>]]></content:encoded></item><item><title><![CDATA[Jak szybko konwertować avchd do mp4]]></title><description><![CDATA[<p>M&#xF3;j aparat nagrywa filmy w formacie avchd, u&#x17C;ywa do tego kodeka x264 oraz aac do d&#x17A;wi&#x119;ku. U&#x17C;ywaj&#x105;c ffmpeg jeste&#x15B;my w stanie skonwertowa&#x107; taki plik szybko i bezstratnie do formatu mp4. </p><p>Aby to zrobi&#x107; nale&</p>]]></description><link>https://zycie-kodera.pl/jak-szybko-konwertowac-avchd-do-mp4/</link><guid isPermaLink="false">613297f1a0fc863a400be1f6</guid><category><![CDATA[linux]]></category><dc:creator><![CDATA[Wojciech Woźniak]]></dc:creator><pubDate>Mon, 18 Feb 2019 17:50:03 GMT</pubDate><media:content url="https://zycie-kodera.pl/content/images/2019/02/106.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://zycie-kodera.pl/content/images/2019/02/106.jpg" alt="Jak szybko konwertowa&#x107; avchd do mp4"><p>M&#xF3;j aparat nagrywa filmy w formacie avchd, u&#x17C;ywa do tego kodeka x264 oraz aac do d&#x17A;wi&#x119;ku. U&#x17C;ywaj&#x105;c ffmpeg jeste&#x15B;my w stanie skonwertowa&#x107; taki plik szybko i bezstratnie do formatu mp4. </p><p>Aby to zrobi&#x107; nale&#x17C;y zainstalowa&#x107; ffmpeg i wyda&#x107; nast&#x119;puj&#x105;ce polecenie</p><blockquote>ffmpeg -i input-file.MTS -vcodec copy -acodec libmp3lame -f mp4 output.mp4</blockquote><p>po kolej co si&#x119; tutaj dzieje:<br><em><strong>-i input-file.MTS</strong></em> plik wej&#x15B;ciowy<br><em><strong>-vcodec copy</strong></em> kodek wideo do konwersji, w naszym wypadku nie konwertujemy a kopiujemy <br><strong><em>-acodec libmp3lame</em></strong> &#xA0;kodek audio do konwersji, w naszym wypadku mp3<br><em><strong>-f mp4</strong></em> typ pliku wyj&#x15B;ciowego<br><strong><em>output.mp4</em></strong> plik wyj&#x15B;ciowy<br></p>]]></content:encoded></item><item><title><![CDATA[Witajcie]]></title><description><![CDATA[<p>O to pierwszy post na tym blogu :) </p><p>Z czasem postaram si&#x119;&#xA0;publikowa&#x107; tutaj ciekawe informacje i tutoriale zwi&#x105;zane z programowaniem oraz DevOps.</p>]]></description><link>https://zycie-kodera.pl/witajcie/</link><guid isPermaLink="false">613297f1a0fc863a400be1f3</guid><dc:creator><![CDATA[Wojciech Woźniak]]></dc:creator><pubDate>Wed, 02 Jan 2019 22:18:44 GMT</pubDate><media:content url="https://zycie-kodera.pl/content/images/2019/01/304.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://zycie-kodera.pl/content/images/2019/01/304.jpg" alt="Witajcie"><p>O to pierwszy post na tym blogu :) </p><p>Z czasem postaram si&#x119;&#xA0;publikowa&#x107; tutaj ciekawe informacje i tutoriale zwi&#x105;zane z programowaniem oraz DevOps.</p>]]></content:encoded></item></channel></rss>