Võimalik

Kuidas peatada kõik Dockeri konteinerid rakenduse Ansible abil

Kuidas peatada kõik Dockeri konteinerid rakenduse Ansible abil
Ansible'l on palju mooduleid teie Dockeri hosti, konteinerite, mahtude, võrkude jne automatiseerimiseks. Kui soovite oma Dockeri konteinerid töötama peatada, saate ka seda teha.

Selles artiklis näitan teile, kuidas konkreetset Dockeri konteinerit peatada. Samuti näitan teile, kuidas peatada kõik töötavad Dockeri konteinerid või kõik Dockeri konteinerid, mis töötavad konkreetset Dockeri pilti, kasutades rakendust Ansible. Alustame siis.

Eeldused:

Kui soovite proovida selle artikli näiteid,

1) Teie arvutisse peab olema installitud Ansible.
2) Docker peab olema arvutisse või Ubuntu kaughosti installitud.
3) Teie Dockeri hosti peab olema installitud Python Dockeri teek.
4) Dockeri hosti peate konfigureerima Ansible automatiseerimise jaoks.

MÄRGE: Dockeri peremees on arvuti, kuhu olete installinud Dockeri.

LinuxHintis on palju artikleid, mis on pühendatud Ansible'i installimisele ja hostide konfigureerimisele Ansible'i automatiseerimiseks ning Dockeri installimiseks. Vajadusel võite neid vaadata.

Projektikataloogi loomine:

Kõigi selles artiklis loodavate failide ja kataloogide korrastamiseks on mõistlik luua projekti kataloog.

Projektikataloogi loomiseks docker1 / käivitage oma praeguses töökataloogis järgmine käsk:

$ mkdir -pv docker1 / playbooks

Nüüd navigeerige jaotisesse docker1 / projekti kataloog järgmiselt:

$ cd dokkija1 /

Dockeri hosti kaugautomaatika jaoks lubatava seadistamine:

Kui teil on Docker installitud Ubuntu kaughosti, mida soovite automatiseerida Ansible abil, siis on see jaotis teie jaoks.

Kõigepealt looge Ansible inventuuri fail võõrustajad järgmise käsuga:

$ nano hostid

Nüüd lisage oma Dockeri hosti IP-aadress või DNS-nimi võõrustajad varude toimik järgmiselt.

[dokkija]
vm4.nodekite.com

Minu puhul on minu Ubuntu Dockeri hosti DNS-nimi vm4.nodekite.com. Teie jaoks on see erinev. Niisiis, asendage see vastavalt vajadusele.

Kui olete valmis, vajutage + X järgneb Y ja salvestada võõrustajad faili.

Nüüd looge Ansible konfiguratsioonifail võimalik.vrd järgnevalt:

$ nano on võimalik.vrd

Sisestage nüüd järgmised read võimalik.vrd konfiguratsioonifail.

[dokkija]
vm4.nodekite.com

Kui olete valmis, vajutage + X järgneb Y ja salvestada võimalik.vrd faili.

Nüüd kontrollige, kas saate Dockeri kaughosti oma arvutist pingida järgmise käsuga:

$ ansible all -u ansible -m ping

Nagu näete, saan oma Dockeri kaughosti pingida.

Nagu näete, on mul Docker 19.03.11 installitud minu kaug Ubuntu Dockeri hostile.

Nüüd peab Ansible dockeri moodulite töötamiseks olema teie Dockeri kaughosti arvutisse installitud Python Dockeri teek. Selles artiklis kasutan Ubuntu. Niisiis kajastan seda.

Python Dockeri teegi installimiseks oma kaug-Dockeri hosti (Ubuntu) looge uus Ansible playbook install_docker_python_lib.yaml aastal mänguraamatud / kataloogi järgmiselt:

$ nano playbooks / install_docker_python_lib.yaml

Sisestage nüüd järgmised read install_docker_python_lib.yaml faili.

- võõrustajad: dokk
kasutaja: ansible
muutunud: Tõsi
ülesanded:
- nimi: Veenduge, et pakett python3-docker oleks installitud
asjakohane:
nimi: python3-docker
olek: kohal
update_cache: Tõsi

Kui olete valmis, vajutage + X järgneb Y ja salvestada install_docker_python_lib.yaml faili.

Nüüd käivitage install_docker_python_lib.yaml järgmine raamat:

$ ansible-playbook playbooks / install_docker_python_lib.yaml

Esiraamat peaks edukalt töötama ja see installib teie kaugdoktorisse Dockeri Python Dockeri teegi.

Kohaliku Dockeri hosti automatiseerimise jaoks konfigureerimine:

Kui teil on Docker installitud hostile, kuhu olete installinud Ansible, ja soovite seda automatiseerida, kasutades Ansible'i, siis on see jaotis teie jaoks.

Kõigepealt looge uus Ansible mänguraamat install_docker_python_lib.yaml aastal mänguraamatud / kataloogi järgmiselt:

$ nano playbooks / install_docker_python_lib.yaml

Sisestage nüüd järgmised read install_docker_python_lib.yaml faili.

- hostid: localhost
ühendus: kohalik
kasutaja: shovon
muutunud: Tõsi
ülesanded:
- nimi: Veenduge, et pakett python3-docker oleks installitud
asjakohane:
nimi: python3-docker
olek: kohal
update_cache: Tõsi

Siin, rida kasutaja: shovon komplektid kühvel kasutajana, kes täidab ülesandeid. Teie jaoks on see erinev. Muutke see kindlasti oma sisselogimise kasutajanimeks.

Dockeri hosti sisselogimisnime leiate järgmise käsuga:

$ whoami

Kui olete valmis, vajutage + X järgneb Y ja salvestada install_docker_python_lib.yaml faili.

Nüüd käivitage install_docker_python_lib.yaml järgmine raamat:

$ ansible-playbook - ask-pass - ask-muutunud-pass
playbooks / install_docker_python_lib.yaml

Ansible küsib teilt selle esitusraamatusse määratud kasutaja sisselogimisparooli. Sisestage sisselogimisparool ja vajutage .

Ansible küsib teilt ka BECOME / sudo parooli. See peaks olema sama parool kui teie sisselogimisparool. Niisiis, jätke see tühjaks ja vajutage .

Playbook peaks hakkama jooksma. Selle täitmine võib võtta mõnda aega.

Siinkohal peaks esitusraamat olema edukas ja Python Dockeri teek tuleks installida.

Esitusraamatute vajalike kohanduste tegemine:

Sõltuvalt sellest, kas haldate Dockeri konteinereid oma kohalikus Dockeri hostis või kaughokis Docker, peate oma esitusraamatud vastavalt kohandama.

Selle artikli järgmistest jaotistest käitan Dockeri kaughostis näidisraamatuid. Niisiis algavad kõik mänguraamatud järgmiste ridadega:

- võõrustajad: dokk
kasutaja: ansible
ülesanded:

Kui soovite esitusraamatuid käitada kohalikus Dockeri hostis, siis veenduge, et esitusraamatud algaksid hoopis järgmiste ridadega.

- hostid: localhost
ühendus: kohalik
kasutaja: shovon
muutunud: Tõsi
ülesanded:

Seejärel asendage koos toimingutega, mida soovite käivitada, ja salvestage esitusraamat, vajutades + X järgneb Y ja .

Kui kavatsete Dockeri hosti kohalikult hallata, kasutades Ansible'i, peate ka Ansible'i esitusraamatuid natuke teisiti käitama.

Ansible Playbooki saate kohalikult käitada järgmiselt:

$ ansible-playbook - ask-pass - ask-muutunud-pass

Muutke kindlasti oma Ansible playbook YAML-faili teele.

Dockeri konteineri peatamine:

Kui teil on töötav Dockeri konteiner ja teate Dockeri konteineri ID või nime, saate selle Dockeri konteineri hõlpsalt peatada.

Selles jaotises näitan teile, kuidas seda teha.

Esiteks kavatsen luua Nginx (pildi nimi) Dockeri konteiner http_server1 (konteineri nimi) järgmiselt:

$ docker run -p 8080: 80 -d - nimi http_server1 nginx

Nagu näete, Dockeri konteiner http_server1 töötab.

$ dokkija ps

Dockeri konteineri peatamiseks http_server1 rakenduse Ansible abil saate luua uue mänguraamatu stop_container.yaml aastal mänguraamatud / kataloogi järgmiselt:

Esitusraamatud $ nano / stop_container.yaml

Seejärel tippige väljale järgmised read stop_container.yaml mänguraamat.

- võõrustajad: dokk
kasutaja: ansible
ülesanded:
- nimi: peatage konteiner http_server1
docker_container:
nimi: http_server1
riik: peatatud

Kui olete valmis, vajutage + X järgneb Y ja salvestada stop_container.yaml faili.

Siin, Ansible docker_container moodulit kasutatakse Dockeri konteineri peatamiseks http_server1.

Nüüd käivitage stop_container.yaml esitusraamat järgmise käsuga:

$ ansible-playbook playbooks / stop_container.yaml

Nagu näete, Dockeri konteiner http_server1 ei tööta enam minu kaug-Dockeri hostis.

$ dokkija ps

Kõigi Dockeri konteinerite (töötavad, peatatud, peatatud) saate loetleda järgmise käsuga:

$ docker ps - kõik

Nagu näete, peatunud Dockeri konteiner http_server1 on loetletud.

Kõigi töötavate dokkerikonteinerite peatamine:

Kui soovite peatada kõik teie Dockeri hostis töötavad Dockeri konteinerid rakenduse Ansible abil, on see jaotis teie jaoks.

Esiteks kavatsen luua 3 Dockeri konteinerit (server1, server2, ja server3), et saaksin neid kõiki Ansible'i hiljem peatada.

Selle loomiseks server1 Dockeri konteiner, käivitage järgmine käsk:

$ docker run -p 8081: 80 -d --name server1 nginx

Selle loomiseks server2 Dockeri konteiner, käivitage järgmine käsk:

$ docker run -p 8082: 80 -d --name server2 nginx

Selle loomiseks server3 Dockeri konteiner, käivitage järgmine käsk:

$ docker run -p 8083: 80 -d --name server3 nginx

Nagu näete, server1, server2, ja server3 Dockeri konteinerid töötavad minu kaug-Dockeri hostis.

$ dokkija ps

Kõigi nende Dockeri konteinerite peatamiseks looge uus mänguraamat stop_all_container.yaml oma mänguraamatud / kataloogi järgmiselt:

Esitusraamatud $ nano / stop_all_container.yaml

Sisestage nüüd järgmised read stop_all_container.yaml esitusraamatu fail.

- võõrustajad: dokk
kasutaja: ansible
ülesanded:
- nimi: hankige kõigi töötavate konteinerite loend
docker_host_info:
konteinerid: tõsi
register: docker_info
- nimi: peatage kõik töötavad konteinerid
docker_container:
nimi: 'üksus.Nimed [0] | regex_replace ("^ /", "") '
riik: peatatud
silmus: 'docker_info.konteinerid '

Salvestamiseks stop_all_container.yaml faili, vajutage + X järgneb Y ja .

Siin olen määranud 2 ülesannet.

Esimene ülesanne kasutab Ansible'i docker_host_info moodulist kõigi töötavate Dockeri konteinerite loendi saamiseks ja selle salvestamiseks docker_info muutuv.

Teine ülesanne viib läbi docker_info.konteinerid array leiab töötavate Dockeri konteinerite nimed ja peatab need ükshaaval.

Nüüd käivitage stop_all_container.yaml esitusraamat järgmise käsuga:

$ ansible-playbook playbooks / stop_all_container.yaml

Esitusraamat peaks edukalt töötama, nagu näete alloleval ekraanipildil.

Nagu näete, pole minu kaugemas Dockeri hostis ühtegi töötavat Dockeri konteinerit.

$ dokkija ps

Kõigi Dockeri konteinerite (töötavad, peatatud, peatatud) saate loetleda järgmise käsuga:

$ docker ps - kõik

Nagu näete, peatatud Dockeri konteinerid server1, server2, ja server3 on loetletud.

Peatage kõik Dockeri konteinerid konkreetse pildi käitamisel:

Kui soovite peatada kõik Dockeri konteinerid, mis töötavad kindlat Dockeri pilti, on see jaotis teie jaoks.

Kõigepealt loome mõned näivad Dockeri konteinerid.

Loon 2 Dockeri konteinerit (nginx1 ja nginx2) kasutades Nginx Dockeri pilt ja 2 Dockeri konteinerit (http1 ja http2) kasutades httpd Dockeri pilt demonstratsiooniks.

Selle loomiseks nginx1 Dockeri konteiner, kasutades Nginx Dockeri pilt, käivitage järgmine käsk:

$ dockeri käivitus -d -p 8081: 80 - nimi nginx1 nginx

Selle loomiseks nginx2 Dockeri konteiner, kasutades Nginx Dockeri pilt, käivitage järgmine käsk:

$ dockeri käivitus -d -p 8082: 80 - nimi nginx2 nginx

Selle loomiseks http1 Dockeri konteiner, kasutades httpd Dockeri pilt, käivitage järgmine käsk:

$ dockeri käivitus -d -p 8091: 80 - nimi http1 httpd

Selle loomiseks http2 Dockeri konteiner, kasutades httpd Dockeri pilt, käivitage järgmine käsk:

$ dockeri käivitus -d -p 8092: 80 - nimi http2 httpd

Nagu näete, nginx1, nginx2, http1, ja http2 Dockeri konteinerid töötavad minu kaug-Dockeri hostis.

Kõigi Dockeri konteinerite peatamine, mis töötavad konkreetset Dockeri pilti (oletame, et, nginx), looge uus Dockeri mänguraamat stop_all_image_containers.yaml aastal mänguraamatud / kataloogi järgmiselt:

Esitusraamatud $ nano / stop_all_image_containers.yaml

Sisestage nüüd järgmised read stop_all_image_containers.yaml faili.

- võõrustajad: dokk
kasutaja: ansible
ülesanded:
- nimi: hankige kõigi töötavate konteinerite loend
docker_host_info:
konteinerid: tõsi
register: docker_info
- nimi: peatage kõik konteinerid, mis töötavad nginx-pilti
docker_container:
nimi: 'üksus.Nimed [0] | regex_replace ("^ /", "") '
riik: peatatud
millal: kirje.Pilt == 'nginx'
silmus: 'docker_info.konteinerid '

Kui olete valmis, vajutage + X järgneb Y ja salvestada stop_all_image_containers.yaml faili.

Siin olen lisanud 2 ülesannet.

Esimene ülesanne kasutab Ansible'i docker_host_info moodulist kõigi töötavate Dockeri konteinerite loendi saamiseks ja selle salvestamiseks docker_info muutuv.

Teine ülesanne viib läbi docker_info.konteinerid array leiab töötavate Dockeri konteinerite nimed ja käivitab docker_container moodulit iga jooksva konteineri jaoks ainult juhul, kui konteineri pildi nimi on Nginx. Seejärel peatab see sobitatud Dockeri konteinerid.

Teises ülesandes kasutatakse järgmist rida kontrollimaks, kas Dockeri konteiner töötab Nginx pilt. Soovi korral saate selle muuta teiseks Dockeri pildi nimeks.

Nüüd käivitage stop_all_image_containers.yaml järgmine raamat:

$ ansible-playbook playbooks / stop_all_image_containers.yaml

Nagu näete, on ainult Nginx konteinerid (nginx1 ja nginx2) on muudetud (peatatud). The httpd konteinerid (http1 ja http2) jäetakse vahele.

Nagu näete, ei Nginx Dockeri konteinerid töötavad minu kaug-Dockeri hostis. Ainult httpd Dokkeri konteinerid (http1 ja http2) töötab.

$ dokkija ps

Kõigi Dockeri konteinerite (töötavad, peatatud, peatatud) saate loetleda järgmise käsuga:

$ docker ps - kõik

Nagu näete, peatatud Dockeri konteinerid nginx1 ja nginx2 on loetletud.

Järeldus:

Selles artiklis olen teile näidanud, kuidas peatada töötav Dockeri konteiner, kõik Dockeri konteinerid, millel töötab konkreetne Dockeri pilt, ja kõik teie Dockeri hosti töötavad Dockeri konteinerid. Selleks olen kasutanud Ansible'i docker_container ja docker_host_info selle artikli moodulid.

Nende moodulite kohta lisateabe saamiseks külastage järgmisi Ansible ametliku dokumentatsiooni lehti.

[1] docker_container - haldage dockeri konteinereid
[2] docker_host_info - saab fakte doki hosti kohta ja teenuste objektide loendeid

Viis parimat ergonoomilist arvutihiiretoodet Linuxile
Kas pikaajaline arvuti kasutamine põhjustab valu randmes või sõrmedes?? Kas teil on liigeste jäikus ja peate pidevalt käsi suruma? Kas tunnete põletav...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
X-Mouse Button Control abil saate hiire nupud erinevates tarkvarades erinevalt ümber teha
Võib-olla vajate tööriista, mis võiks muuta teie hiire juhtimissüsteemi iga kasutatava rakendusega. Sel juhul võite proovida rakendust nimega X hiiren...