From d810a94bc165943d04114e61f8077e2dfc2a2e68 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Sun, 17 Mar 2024 08:27:38 -0700 Subject: [PATCH 01/14] New translations learning_selinux.md (French) --- docs/guides/security/learning_selinux.fr.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guides/security/learning_selinux.fr.md b/docs/guides/security/learning_selinux.fr.md index a77188b00e..f6d8890ca9 100644 --- a/docs/guides/security/learning_selinux.fr.md +++ b/docs/guides/security/learning_selinux.fr.md @@ -377,10 +377,10 @@ Exemple pour obtenir la cause du dernier rejet par SELinux : sudo cat /var/log/audit/audit.log | grep AVC | grep denied | tail -1 | audit2why ``` -| Options | Observations | -| ------- | --------------------------------------------------------------------------------------------------- | -| `-v` | Passer en mode détaillé | -| `-w` | Traduit la cause d'un rejet par SELinux et propose une solution pour y remédier (option par défaut) | +| Options | Observations | +| ------- | ------------------------------------------------------------------------------------------------------ | +| `-v` | Passer en mode détaillé | +| `-w` | Interprète la cause d'un rejet par SELinux et propose une solution pour y remédier (option par défaut) | ### Approfondir avec SELinux From ac59ee73a4729dd29ee7bc6c661794d903e0b037 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Sun, 17 Mar 2024 11:51:20 -0700 Subject: [PATCH 02/14] New translations 02-advanced.md (German) --- docs/books/learning_ansible/02-advanced.de.md | 744 ++++++++++++++++++ 1 file changed, 744 insertions(+) create mode 100644 docs/books/learning_ansible/02-advanced.de.md diff --git a/docs/books/learning_ansible/02-advanced.de.md b/docs/books/learning_ansible/02-advanced.de.md new file mode 100644 index 0000000000..56470c7a42 --- /dev/null +++ b/docs/books/learning_ansible/02-advanced.de.md @@ -0,0 +1,744 @@ +--- +title: Ansible Intermediate +--- + +# Ansible für Fortgeschrittene + +In diesem Kapitel lernen Sie weitere Themen, über die Arbeit mit Ansible. + +**** + +**Ziele**: In diesem Kapitel wird Folgendes behandelt: + +:heavy_check_mark: arbeiten mit Variablen; +:heavy_check_mark: Verwendung von Schleifen; +:heavy_check_mark: Statusänderungen verwalten und darauf reagieren; +:heavy_check_mark: asynchrone Aufgaben verwalten. + +:checkered_flag: **Ansible**, **Module**, **Playbook** + +**Vorkenntnisse**: :star: :star: :star: +**Schwierigkeitsgrad**: :star: :star: + +**Lesezeit**: 31 Minuten + +**** + +Im vorherigen Kapitel haben Sie gelernt, wie man Ansible installiert, in der Befehlszeile verwendet oder wie man Playbooks entwirft, um die Wiederverwendbarkeit Ihres Codes zu sichern. + +In diesem Kapitel können wir einige fortgeschrittenere Konzepte zur Verwendung von Ansible kennenlernen und interessante Vorgehensweisen entdecken, die Sie regelmäßig verwenden können. + +## Die Variablen + +!!! note "Anmerkung" + + Weitere Informationen finden Sie [hier](https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html). + +Unter Ansible gibt es verschiedene Arten Variablen als primitive: + +* Strings, +* ganze Zahlen: integers, +* Booleans. + +Diese Variablen können wie folgt organisiert werden: + +* als Wörterbücher: dictionaries, +* als Listen. + +Eine Variable kann an verschiedenen Orten definiert werden, wie in einem Playbook, in einer Rolle oder in der Kommandozeile zum Beispiel. + +Zum Beispiel in einem Playbook: + +``` +--- +- hosts: apache1 + vars: + port_http: 80 + service: + debian: apache2 + rhel: httpd +``` + +oder in der Kommandozeile: + +``` +$ ansible-playbook deploy-http.yml --extra-vars "service=httpd" +``` + +Einmal definiert, kann eine Variable verwendet werden, indem sie zwischen doppelten geschweiften Klammern aufgerufen wird: + +* `{{ port_http }}` für einen einfachen Wert, +* `{{ service['rhel'] }}` oder `{{ service.rhel }}` für ein Wörterbuch - dictionary. + +Zum Beispiel: + +``` +- name: make sure apache is started + ansible.builtin.systemd: + name: "{{ service['rhel'] }}" + state: started +``` + +Natürlich ist es auch möglich, auf die globalen Variablen (die **facts**) von Ansible (Betriebssystem, IP-Adressen, VM-Name usw.) zuzugreifen. + +### Outsourcing-Variablen + +Variablen können in eine externe Datei zum Playbook aufgenommen werden, in diesem Fall muss diese Datei im Playbook mit der `vars_files` Direktive definiert werden: + +``` +--- +- hosts: apache1 + vars_files: + - myvariables.yml +``` + +Die `myvariables.yml` Datei: + +``` +--- +port_http: 80 +ansible.builtin.systemd:: + debian: apache2 + rhel: httpd +``` + +Es kann auch dynamisch mithilfe des `include_vars`-Moduls hinzugefügt werden: + +``` +- name: Include secrets. + ansible.builtin.include_vars: + Datei: vault.yml +``` + +### Eine Variable anzeigen + +Um eine Variable anzuzeigen, müssen Sie das `debug` Modul wie folgt aktivieren: + +``` +- ansible.builtin.debug: + var: service['debian'] +``` + +Sie können auch die Variablen innerhalb eines Textes verwenden: + +``` +- ansible.builtin.debug: + msg: "Print a variable in a message : {{ service['debian'] }}" +``` + +### Rückgabe einer Aufgabe - task - speichern + +Um die Rückgabe einer Aufgabe - task - zu speichern und später darauf zugreifen zu können, müssen Sie das Schlüsselwort `register` in der Aufgabe selbst verwenden. + +Verwendung einer gespeicherten Variable: + +``` +- name: /home content + shell: ls /home + register: homes + +- name: Print the first directory name + ansible.builtin.debug: + var: homes.stdout_lines[0] + +- name: Print the first directory name + ansible.builtin.debug: + var: homes.stdout_lines[1] +``` + +!!! note "Anmerkung" + + Die Variable `homes.stdout_lines` ist eine Liste von Variablen des Typ String, eine Möglichkeit, Variablen zu organisieren, die wir bisher noch nicht gesehen hatten. + +Die Strings, aus denen die gespeicherte Variable besteht, können über den Wert von `stdout` abgerufen werden (der Ihnen Dinge wie `homes.stdout.find("core") != -1`ermöglicht), um sie mithilfe einer Schleife (siehe `loop`) oder einfach anhand ihrer Indizes abzugreifen, wie im vorherigen Beispiel gezeigt wurde. + +### Übungen + +* ein Playbook schreiben `play-vars.yml`, das den Namen der Distribution des Ziels mit seiner Hauptversion ausdruckt und dabei globale Variablen verwendet. + +* ein Playbook mit folgendem Dictionary schreiben, um die Dienste anzuzeigen, die installiert werden: + +``` +service: + web: + name: apache + rpm: httpd + db: + name: mariadb + rpm: mariadb-server +``` + +Der Default-Typ sollte "web" sein. + +* Überschreiben Sie die Variable `type` über die Befehlszeile + +* Variablen in einer `vars.yml` Datei externalisieren + +## Schleifen-Verwaltung + +Mit Hilfe einer Schleife können Sie beispielsweise eine Aufgabe über eine Liste, einen Hash oder ein Dictionary iterieren. + +!!! note "Anmerkung" + + Weitere Informationen finden Sie [hier](https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html). + +Einfaches Beispiel für die Anwendung, Erstellung von 4 Benutzer: + +``` +- name: add users + user: + name: "{{ item }}" + state: present + groups: "users" + loop: + - antoine + - patrick + - steven + - xavier +``` + +Bei jeder Wiederholung der Schleife wird der Wert der verwendeten Liste in der Variable `item` gespeichert, die im Loop-Code zugänglich ist. + +Natürlich kann eine Liste in einer externen Datei definiert werden: + +``` +users: + - antoine + - patrick + - steven + - xavier +``` + +und im Task wie folgt verwendet werden (nach dem Einbinden der vars Datei): + +``` +- name: add users + user: + name: "{{ item }}" + state: present + groups: "users" + loop: "{{ users }}" +``` + +Wir können das Beispiel während der Untersuchung der gespeicherten Variablen, um es zu verbessern. Verwendung einer gespeicherten Variable: + +``` +- name: /home content + shell: ls /home + register: homes + +- name: Print the directories name + ansible.builtin.debug: + msg: "Directory => {{ item }}" + loop: "{{ homes.stdout_lines }}" +``` + +Ein Wörterbuch kann auch in einer Schleife verwendet werden. + +In diesem Fall müssen das Wörterbuch in ein Element mit einem **jinja filter** (jinja ist die von Ansible verwendete Template-Engine) umwandeln: `| dict2items`. + +In the loop, it becomes possible to use `item.key` which corresponds to the dictionary key, and `item.value` which corresponds to the values of the key. + +Sehen wir uns das an einem konkreten Beispiel, das die Verwaltung der Systembenutzer anzeigt: + +``` +--- +- hosts: rocky8 + become: true + become_user: root + vars: + users: + antoine: + group: users + state: present + steven: + group: users + state: absent + + tasks: + + - name: Manage users + user: + name: "{{ item.key }}" + group: "{{ item.value.group }}" + state: "{{ item.value.state }}" + loop: "{{ users | dict2items }}" +``` + +!!! note "Anmerkung" + + Viele Dinge können mit Schleifen getan werden. Sie werden die Möglichkeiten entdecken, die Schleifen bieten, wenn Ihre Verwendung von Ansible Sie dazu bringt, sie auf komplexere Weise zu nutzen. + +### Übungen + +* Zeigt Sie den Inhalt der `service` Variable der vorherigen Übung mit einer Schleife an. + +!!! note "Anmerkung" + + Sie sollten die `service`-Variable, die ein Dictionary ist, in eine Liste mit Hilfe der jinja-Filter `list` wie folgt umwandeln: + + ``` + {{ service.values() | list }} + ``` + +## Conditionals + +!!! note "Anmerkung" + + Weitere Informationen finden Sie [hier](https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html). + +Die `when` Anweisung ist in vielen Fällen sehr nützlich: bestimmte Aktionen auf bestimmten Servertypen nicht ausführen, wenn eine Datei oder ein Benutzer nicht existiert, etc. + +!!! note "Anmerkung" + + Hinter der `when` Anweisung brauchen die Variablen keine doppelten Klammern (sie sind eigentlich Jinja2 Ausdrücke...). + +``` +- name: "Reboot only Debian servers" + reboot: + when: ansible_os_family == "Debian" +``` + +Bedingungen können mit Klammern gruppiert werden: + +``` +- name: "Reboot only CentOS version 6 and Debian version 7" + reboot: + when: (ansible_distribution == "CentOS" and ansible_distribution_major_version == "6") or + (ansible_distribution == "Debian" and ansible_distribution_major_version == "7") +``` + +Die Bedingungen, die einem logischen UND entsprechen, können als Liste zur Verfügung gestellt werden: + +``` +- name: "Reboot only CentOS version 6" + reboot: + when: + - ansible_distribution == "CentOS" + - ansible_distribution_major_version == "6" +``` + +Sie können den Wert eines Booleschen testen und überprüfen, ob es wahr ist: + +``` +- name: check if directory exists + stat: + path: /home/ansible + register: directory + +- ansible.builtin.debug: + var: directory + +- ansible.builtin.debug: + msg: The directory exists + when: + - directory.stat.exists + - directory.stat.isdir +``` + +Sie können auch testen, daß es nicht stimmt: + +``` + when: + - file.stat.exists + - not file.stat.isdir +``` + +Sie müssen wahrscheinlich testen, daß eine Variable existiert, um Ausführungsfehler zu vermeiden: + +``` + when: myboolean is defined and myboolean +``` + +### Übungen + +* Gibt den Wert von `service.web` nur aus, wenn `type` gleich `web` ist. + +## Änderungen verwalten: die `handler` + +!!! note "Anmerkung" + + Weitere Informationen finden Sie [hier](https://docs.ansible.com/ansible/latest/user_guide/playbooks_handlers.html). + +Die Handler erlauben den Start von Operationen, wie z.B. das Neustarten eines Dienstes, wenn Änderungen vorkommen. + +Ein Modul kann in einem Playbook erkennen, dass es eine wesentliche Änderung auf einem entfernten System gegeben hat und so eine Operation als Reaktion auf diese Änderung auslösen. Eine Benachrichtigung wird am Ende eines Playbook-Taskblocks versendet, und die Reaktionsoperation nur einmal ausgelöst, selbst wenn mehrere Aufgaben die gleiche Benachrichtigung senden. + +![Handlers](images/handlers.png) + +Beispielsweise können mehrere Aufgaben darauf hindeuten, dass der `httpd` Dienst aufgrund einer Änderung in den Konfigurationsdateien neu gestartet werden muss. Aber der Dienst wird nur einmal neu gestartet, um mehrere unnötige Starts zu vermeiden. + +``` +- name: template configuration file + template: + src: template-site.j2 + dest: /etc/httpd/sites-availables/test-site.conf + notify: + - restart memcached + - restart httpd +``` + +Ein Handler ist eine Art Aufgabe, auf die ein eindeutiger globaler Name verweist: + +* Es wird von einem oder mehreren Notifier aktiviert. +* Es startet nicht sofort, sondern wartet, bis alle Aufgaben abgeschlossen sind. + +Beispiel für Handler: + +``` +handlers: + + - name: restart memcached + systemd: + name: memcached + state: restarted + + - name: restart httpd + systemd: + name: httpd + state: restarted +``` + +Seit Version 2.2 von Ansible können Handler auch direkt lauschen: + +``` +handlers: + + - name: restart memcached + systemd: + name: memcached + state: restarted + listen: "web services restart" + + - name: restart apache + systemd: + name: apache + state: restarted + listen: "web services restart" + +tasks: + - name: restart everything + command: echo "this task will restart the web services" + notify: "web services restart" +``` + +## Asynchronous tasks + +!!! note "Anmerkung" + + Weitere Informationen sind [hier](https://docs.ansible.com/ansible/latest/user_guide/playbooks_async.html) verfügbar. + +Standardmäßig bleiben SSH-Verbindungen zu Hosts während der Ausführung verschiedener Playbook-Tasks auf allen Knoten offen. + +Dies kann einige Probleme verursachen, insbesondere: + +* wenn die Ausführungszeit der Aufgabe länger ist als das SSH-Verbindungs-Timeout +* wenn die Verbindung während der Aktion unterbrochen wird (Server-Neustart zum Beispiel) + +In diesem Fall müssen Sie in den asynchronen Modus wechseln und eine maximale Ausführungszeit sowie die Häufigkeit (standardmäßig 10s) angeben, mit der Sie den Host-Status überprüfen. + +Durch Angabe eines Umfragewertes von 0 wird Ansible die Aufgabe ausführen und fortfahren, ohne sich um das Ergebnis Sorgen zu machen. + +Hier ist ein Beispiel mit asynchronen Aufgaben, die es Ihnen erlauben, einen Server neu zu starten und darauf zu warten, dass Port 22 wieder erreichbar ist: + +``` +# Wait 2s and launch the reboot +- name: Reboot system + shell: sleep 2 && shutdown -r now "Ansible reboot triggered" + async: 1 + poll: 0 + ignore_errors: true + become: true + changed_when: False + + # Wait the server is available + - name: Waiting for server to restart (10 mins max) + wait_for: + host: "{{ inventory_hostname }}" + port: 22 + delay: 30 + state: started + timeout: 600 + delegate_to: localhost +``` + +Sie können sich auch entscheiden, eine lang-laufende Aufgabe zu starten und sie zu vergessen (fire and forget), weil die Ausführung keine Rolle im Playbook spielt. + +## Übungsergebnisse + +* Playbook schreiben `play-vars.yml`, das den Namen der Distribution des Ziels mit seiner Hauptversion ausdruckt, wobei globale Variablen verwendet werden. + +``` +--- +- hosts: ansible_clients + + tasks: + + - name: Print globales variables + debug: + msg: "The distribution is {{ ansible_distribution }} version {{ ansible_distribution_major_version }}" +``` + +``` +$ ansible-playbook play-vars.yml + +PLAY [ansible_clients] ********************************************************************************* + +TASK [Gathering Facts] ********************************************************************************* +ok: [192.168.1.11] + +TASK [Print globales variables] ************************************************************************ +ok: [192.168.1.11] => { + "msg": "The distribution is Rocky version 8" +} + +PLAY RECAP ********************************************************************************************* +192.168.1.11 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 + +``` + +* Ein Playbook mit folgendem Dictionary schreiben, um die Dienste anzuzeigen, die installiert werden sollen: + +``` +service: + web: + name: apache + rpm: httpd + db: + name: mariadb + rpm: mariadb-server +``` + +Der Default-Typ sollte "web" sein. + +``` +--- +- hosts: ansible_clients + vars: + type: web + service: + web: + name: apache + rpm: httpd + db: + name: mariadb + rpm: mariadb-server + + tasks: + + - name: Print a specific entry of a dictionary + debug: + msg: "The {{ service[type]['name'] }} will be installed with the packages {{ service[type].rpm }}" +``` + +``` +$ ansible-playbook display-dict.yml + +PLAY [ansible_clients] ********************************************************************************* + +TASK [Gathering Facts] ********************************************************************************* +ok: [192.168.1.11] + +TASK [Print a specific entry of a dictionnaire] ******************************************************** +ok: [192.168.1.11] => { + "msg": "The apache will be installed with the packages httpd" +} + +PLAY RECAP ********************************************************************************************* +192.168.1.11 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 + +``` + +* Überschreiben der Variable `type` in der Befehlszeile: + +``` +ansible-playbook --extra-vars "type=db" display-dict.yml + +PLAY [ansible_clients] ********************************************************************************* + +TASK [Gathering Facts] ********************************************************************************* +ok: [192.168.1.11] + +TASK [Print a specific entry of a dictionary] ******************************************************** +ok: [192.168.1.11] => { + "msg": "The mariadb will be installed with the packages mariadb-server" +} + +PLAY RECAP ********************************************************************************************* +192.168.1.11 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 +``` + +* Variablen in einer `vars.yml` Datei auslagern + +``` +type: web +service: + web: + name: apache + rpm: httpd + db: + name: mariadb + rpm: mariadb-server +``` + +``` +--- +- hosts: ansible_clients + vars_files: + - vars.yml + + tasks: + + - name: Print a specific entry of a dictionary + debug: + msg: "The {{ service[type]['name'] }} will be installed with the packages {{ service[type].rpm }}" +``` + + +* Den Inhalt der `service` Variable der vorherigen Übung mit einer Schleife anzeigen. + +!!! note "Anmerkung" + + Sie sollten die "service"-Variable, die ein Dictionary ist, in ein Element oder eine Liste mit Hilfe des jinja Filter `dict2items` oder `list` wie folgt umwandeln: + + ``` + {{ service | dict2items }} + ``` + + ``` + {{ service.values() | list }} + ``` + +Mit `dict2items`: + +``` +--- +- hosts: ansible_clients + vars_files: + - vars.yml + + tasks: + + - name: Print a dictionary variable with a loop + debug: + msg: "{{item.key }} | The {{ item.value.name }} will be installed with the packages {{ item.value.rpm }}" + loop: "{{ service | dict2items }}" +``` + +``` +$ ansible-playbook display-dict.yml + +PLAY [ansible_clients] ********************************************************************************* + +TASK [Gathering Facts] ********************************************************************************* +ok: [192.168.1.11] + +TASK [Print a dictionary variable with a loop] ******************************************************** +ok: [192.168.1.11] => (item={'key': 'web', 'value': {'name': 'apache', 'rpm': 'httpd'}}) => { + "msg": "web | The apache will be installed with the packages httpd" +} +ok: [192.168.1.11] => (item={'key': 'db', 'value': {'name': 'mariadb', 'rpm': 'mariadb-server'}}) => { + "msg": "db | The mariadb will be installed with the packages mariadb-server" +} + +PLAY RECAP ********************************************************************************************* +192.168.1.11 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 + +``` + +Mit `list`: + +``` +--- +- hosts: ansible_clients + vars_files: + - vars.yml + + tasks: + + - name: Print a dictionary variable with a loop + debug: + msg: "The {{ item.name }} will be installed with the packages {{ item.rpm }}" + loop: "{{ service.values() | list}}" +~ +``` + +``` +$ ansible-playbook display-dict.yml + +PLAY [ansible_clients] ********************************************************************************* + +TASK [Gathering Facts] ********************************************************************************* +ok: [192.168.1.11] + +TASK [Print a dictionary variable with a loop] ******************************************************** +ok: [192.168.1.11] => (item={'name': 'apache', 'rpm': 'httpd'}) => { + "msg": "The apache will be installed with the packages httpd" +} +ok: [192.168.1.11] => (item={'name': 'mariadb', 'rpm': 'mariadb-server'}) => { + "msg": "The mariadb will be installed with the packages mariadb-server" +} + +PLAY RECAP ********************************************************************************************* +192.168.1.11 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 +``` + +* Den Wert von `service.web` nur ausgeben, wenn `type` gleich `web` ist. + +``` +--- +- hosts: ansible_clients + vars_files: + - vars.yml + + tasks: + + - name: Print a dictionary variable + debug: + msg: "The {{ service.web.name }} will be installed with the packages {{ service.web.rpm }}" + when: type == "web" + + + - name: Print a dictionary variable + debug: + msg: "The {{ service.db.name }} will be installed with the packages {{ service.db.rpm }}" + when: type == "db" +``` + +``` +$ ansible-playbook display-dict.yml + +PLAY [ansible_clients] ********************************************************************************* + +TASK [Gathering Facts] ********************************************************************************* +ok: [192.168.1.11] + +TASK [Print a dictionary variable] ******************************************************************** +ok: [192.168.1.11] => { + "msg": "The apache will be installed with the packages httpd" +} + +TASK [Print a dictionary variable] ******************************************************************** +skipping: [192.168.1.11] + +PLAY RECAP ********************************************************************************************* +192.168.1.11 : ok=2 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0 + +$ ansible-playbook --extra-vars "type=db" display-dict.yml + +PLAY [ansible_clients] ********************************************************************************* + +TASK [Gathering Facts] ********************************************************************************* +ok: [192.168.1.11] + +TASK [Print a dictionary variable] ******************************************************************** +skipping: [192.168.1.11] + +TASK [Print a dictionary variable] ******************************************************************** +ok: [192.168.1.11] => { + "msg": "The mariadb will be installed with the packages mariadb-server" +} + +PLAY RECAP ********************************************************************************************* +192.168.1.11 : ok=2 changed=0 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0 +``` From 857d0968b14e6827eb0f0dad60e57317e6878018 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Mon, 18 Mar 2024 02:53:14 -0700 Subject: [PATCH 03/14] New translations 06-users.md (Ukrainian) --- docs/books/admin_guide/06-users.uk.md | 88 +++++++++++++-------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/docs/books/admin_guide/06-users.uk.md b/docs/books/admin_guide/06-users.uk.md index ab0cb05c09..49ae3b5c13 100644 --- a/docs/books/admin_guide/06-users.uk.md +++ b/docs/books/admin_guide/06-users.uk.md @@ -225,7 +225,7 @@ GroupP:x:516:patrick !!! Note "Примітка" - Кожен рядок у файлі `/etc/group` відповідає групі. Інформація про основного користувача зберігається в `/etc/passwd`. + Кожен рядок у файлі `/etc/group` відповідає групі. Інформація про основного користувача зберігається в `/etc/passwd`. ### Файл `/etc/gshadow` @@ -242,11 +242,11 @@ GroupA:$6$2,9,v...SBn160:alain:rockstar * 3: Ім'я адміністратора групи. * 4: Додаткові користувачі в групі (за винятком унікального основного користувача). -!!! warning "Увага" +!!! Warning "Важливо" - Ім’я групи в **/etc/group** і **/etc/gshadow** має відповідати один одному, тобто кожен рядок у файлі **/etc/group** має мати відповідний рядку у файлі **/etc/gshadow**. + Ім’я групи в **/etc/group** і **/etc/gshadow** має відповідати одна за одною, тобто кожен рядок у файлі **/etc/group** має мати відповідний рядок у файлі **/etc/gshadow**. -`!` у паролі означає, що він заблокований. Таким чином, жоден користувач не може використовувати пароль для доступу до групи (оскільки членам групи він не потрібен). +An `!` in the password indicates it is locked. Таким чином, жоден користувач не може використовувати пароль для доступу до групи (оскільки членам групи він не потрібен). ## Управління користувачами @@ -268,7 +268,7 @@ GroupA:$6$2,9,v...SBn160:alain:rockstar * **користувачі системи (uid є одним із 201~999)**: використовується системою для керування правами доступу до програми; * **звичайний користувач(uid>=1000)**: інший обліковий запис для входу в систему. -Змінені файли, додані рядки: +Змінено файли, додано рядки: * `/etc/passwd` * `/etc/shadow` @@ -301,7 +301,7 @@ sudo useradd -u 1000 -g 1013 -d /home/GroupC/carine carine Під час створення обліковий запис не має пароля та заблокований. -Для розблокування облікового запису необхідно призначити пароль. +Для розблокування облікового запису користувач повинен призначити пароль. Під час виклику команди `useradd` без будь-яких параметрів для нового користувача встановлюються наступні параметри за замовчуванням: @@ -312,9 +312,9 @@ sudo useradd -u 1000 -g 1013 -d /home/GroupC/carine carine !!! note "Примітка" - Налаштування і значення за замовчуванням отримані від наступних файлів конфігурацій: + Параметри та значення за замовчуванням отримані з таких конфігураційних файлів: - `/etc/login.defs` і `/etc/default/user/add` + `/etc/login.defs` and `/etc/default/useradd` ```bash $ sudo useradd test1 @@ -341,9 +341,9 @@ test1:!:: !!! Warning "Важливо" - Має бути створено дерево домашніх каталогів, за винятком останнього каталогу. + Користувач повинен створити домашній каталог, за винятком останнього каталогу. -Останній каталог створюється командою `useradd`, яка використовує можливість скопіювати файли з `/etc/skel` до нього. +Останній каталог створюється командою `useradd`, яка використовує можливість копіювати файли з `/etc/skel` до нього. **Користувач може належати до кількох груп на додаток до основної групи.** @@ -359,8 +359,8 @@ sudo useradd -u 1000 -g GroupA -G GroupP,GroupC albert ``` $ man useradd - ОПИС - **useradd** — це низькорівнева утиліта для додавання користувачів. У Debian адміністратори зазвичай повинні використовувати **adduser(8)** + ОПИС + **useradd** — це низькорівнева утиліта для додавання користувачів. У Debian адміністратори зазвичай повинні використовувати **adduser(8)** замість цього. ``` @@ -417,7 +417,7 @@ sudo usermod -u 1044 carine Для внесення змін користувач має бути відключений і не мати запущених процесів. -Після зміни ідентифікатора файли, що належать користувачу, матимуть невідомий `UID`. Потрібно перепризначити новий `UID`. +After changing the identifier, the files belonging to the user have an unknown `UID`. Його потрібно перепризначити новому `UID`. Де `1000` – це старий `UID`, а `1044` – новий. Приклади: @@ -436,7 +436,7 @@ test1:!$6$n.hxglA.X5r7X0ex$qCXeTx.kQVmqsPLeuvIQnNidnSHvFiD7bQTxU7PLUCmBOcPNd5meq $ usermod -U test1 ``` -Різницю між параметрами `-aG` і `-G` можна пояснити за допомогою наступного приклада: +Різницю між параметрами `-aG` і `-G` можна пояснити на такому прикладі: ```bash $ sudo useradd test1 @@ -470,11 +470,11 @@ sudo userdel -r carine | ----- | ------------------------------------------------------------------------------------------------ | | `-r` | Видаляє домашній каталог користувача та поштові файли, розташовані в каталозі `/var/spool/mail/` | -!!! Tip "Підказка" +!!! tip "Порада" Для видалення користувач має вийти з системи та не мати запущених процесів. -Команда `userdel` видаляє відповідні рядки в `/etc/passwd`, `/ etc/shadow`, `/etc/group`, `/etc/gshadow`. Як згадувалося вище, `userdel -r` також видалить відповідну первинну групу користувача. +The `userdel` command removes the corresponding lines in `/etc/passwd`, `/ etc/shadow`, `/etc/group`, `/etc/gshadow`. Як згадувалося вище, `userdel -r` також видалить відповідну первинну групу користувача. ### Файл `/etc/passwd` @@ -515,7 +515,7 @@ root:$6$...:15399:0:99999:7 * 8: Термін дії облікового запису, формат позначки часу, у днях. **Зверніть увагу, що термін дії облікового запису відрізняється від терміну дії пароля. У разі закінчення терміну дії облікового запису користувач не має права входу. У разі закінчення терміну дії пароля користувачеві заборонено ввійти за допомогою свого пароля.** * 9: Зарезервовано для майбутнього використання. -!!! Danger "Важливо" +!!! Важливо Для кожного рядка у файлі `/etc/passwd` має бути відповідний рядок у файлі `/etc/shadow`. @@ -523,7 +523,7 @@ root:$6$...:15399:0:99999:7 ```bash # Мітка часу перетворюється на дату, «17718» вказує позначку часу, яку потрібно заповнити. -$ date -d "1970-01-01 17718 days" +$ date -d "1970-01-01 17718 days" # Дата перетворюється на позначку часу, «2018-07-06» вказує на дату, яку потрібно заповнити. $ echo $(($(date --date="2018-07-06" +%s)/86400+1)) @@ -531,11 +531,11 @@ $ echo $(($(date --date="2018-07-06" +%s)/86400+1)) ## Власники файлів -!!! Danger "Важливо" +!!! Важливо Усі файли обов'язково належать одному користувачеві та одній групі. -Основною групою користувача, який створює файл, за замовчуванням є група, якій належить файл. +За замовчуванням основною групою користувача, який створює файл, є група, якій належить файл. ### Команди модифікації @@ -584,7 +584,7 @@ sudo chown albert:GroupA file sudo chown albert: file ``` -Змінити власника і групу всіх файлів в каталозі +Змінити власника та групу всіх файлів у каталозі ```bash sudo chown -R albert:GroupA /dir1 @@ -592,10 +592,10 @@ sudo chown -R albert:GroupA /dir1 ### `команда chgrp` -Команда `chgrp` дозволяє змінити власника групи файлу. +Команда `chgrp` дозволяє змінити групу власників файлу. ```bash -chgrp [-R] [-v] груповий файл +chgrp [-R] [-v] group file ``` Приклад: @@ -611,7 +611,7 @@ sudo chgrp group1 file !!! Note "Примітка" - Можна застосувати до файлу, власника і групи власників, приймаючи як посилання на файли з іншого файлу: + До файлу можна застосувати власника та групу власників, взявши за посилання інші файли: ```bash chown [options] --reference=RRFILE FILE @@ -661,7 +661,7 @@ Re-enter new password: ### Команда `id` -Команда `id` відображає назви груп користувача. +Команда `id` відображає імена груп користувачів. ```bash id USER @@ -676,7 +676,7 @@ uid=1000(alain) gid=1000(GroupA) groupes=1000(GroupA),1016(GroupP) ### Команда `newgrp` -Команда `newgrp` може вибрати групу з додаткових груп користувача як нову **тимчасову** основну групу користувача. Команда `newgrp` кожного разу, коли ви змінюєте основну групу користувача, створює нову **дочірню оболонку**(дочірній процес). Будьте обережні! **Дочірня оболонка** та **підоболонка** відрізняються. +Команда `newgrp` може вибрати групу з додаткових груп користувача як нову **тимчасову** основну групу користувача. Команда `newgrp` кожного разу, коли ви перемикаєте основну групу користувача, створює нову **дочірню оболонку** (дочірній процес). Будьте обережні! **дочірня оболонка** та **вкладена оболонка** відрізняються. ```bash newgrp [secondarygroups] @@ -724,13 +724,13 @@ root ### Команда `passwd` -Команда `passwd` використовується для керування паролем. +Команда `passwd` керує паролем. ```bash passwd [-d] [-l] [-S] [-u] [login] ``` -Приклади: +Приклад: ```bash sudo passwd -l albert @@ -768,11 +768,11 @@ sudo passwd alain !!! Note "Примітка" - Команда `passwd` доступна користувачам для зміни пароля (запитується старий пароль). Адміністратор може змінити паролі всіх користувачів без обмежень. + Команда `passwd` дозволяє користувачам змінити свій пароль (запитується старий пароль). Адміністратор може змінювати паролі всіх користувачів без обмежень. -Їм доведеться дотримуватися обмежень безпеки. +Їм доведеться дотримуватися заходів безпеки. -При управлінні обліковими записами користувачів shell може бути корисно встановити типовий пароль після створення користувача. +Під час керування обліковими записами користувачів за допомогою сценарію оболонки встановлення пароля за умовчанням після створення користувача може бути корисним. Це можна зробити, передавши пароль команді `passwd`. @@ -782,13 +782,13 @@ sudo passwd alain sudo echo "azerty,1" | passwd --stdin philippe ``` -!!! warning "Увага" +!!! Warning "Важливо" - Пароль введений в зашифрований текст, `passwd` піклується про його шифрування. + Пароль вводиться відкритим текстом, `passwd` шифрує його. ### Команда `chage` -Команда `chage` змінює інформацію про закінчення терміну дії пароля користувача. +Команда `chage` призначена для зміни інформації про термін дії пароля користувача. ```bash chage [-d date] [-E date] [-I days] [-l] [-m days] [-M days] [-W days] [login] @@ -814,9 +814,9 @@ sudo chage -m 60 -M 90 -W 80 -I 10 alain ```bash # Команда `chage` також пропонує інтерактивний режим. -$ sudo hage +$ sudo chage philippe -# Параметр `-d` примусово змінює пароль під час входу. +# Параметр `-d` змінює пароль під час входу. $ sudo chage -d 0 philippe ``` @@ -834,7 +834,7 @@ $ sudo chage -d 0 philippe Редагування файлу `/etc/default/useradd` виконується командою `useradd`. - Інші файли мають бути змінені в текстовому редакторі. + Інші файли потрібно змінити за допомогою текстового редактора. ### Файл `/etc/default/useradd` @@ -842,9 +842,9 @@ $ sudo chage -d 0 philippe !!! tip "Порада" - Під час створення користувача, якщо параметри не вказано, система використовує значення за замовчуванням, визначені в `/etc/default/useradd`. + Якщо параметри не вказано під час створення користувача, система використовує значення за замовчуванням, визначені в `/etc/default/useradd`. -Цей файл змінюється командою `useradd -D` (`useradd -D`, введений без будь-яких інших параметрів, відображає вміст `/etc/default/useradd` > файл). +Цей файл змінено командою `useradd -D` (`useradd -D`, введене без жодного іншого параметра, відображає вміст файлу `/etc/default/useradd`). ```bash Shell > grep -v ^# /etc/default/useradd @@ -908,7 +908,7 @@ Shell > ll -rw-r--r-- 1 root root 0 Oct 8 13:00 a.txt ``` -`HOME_MODE 0700`: Права звичайної домашньої теки користувача. Не працює для домашнього каталогу root. +`HOME_MODE 0700`: Дозволи домашнього каталогу звичайного користувача. Не працює для домашнього каталогу кореня. ```bash Shell > ll -d /root @@ -918,7 +918,7 @@ Shell > ls -ld /home/test1/ drwx------ 2 test1 test1 4096 Oct 8 13:10 /home/test1/ ``` -`USERGROUPS_ENAB yes`: «Коли ви видаляєте користувача за допомогою команди `userdel -r`, відповідна основна група також видаляється.» Чому? Це і є причиною. +`USERGROUPS_ENAB так`: «Коли ви видаляєте користувача за допомогою команди `userdel -r`, відповідна основна група також видаляється.» Чому? Це і є причиною. ### Каталог `/etc/skel` @@ -930,7 +930,7 @@ drwx------ 2 test1 test1 4096 Oct 8 13:10 /home/test1/ * `.bash_profile` * `.bashrc` -Всі файли та каталоги, що розміщені в цій теці, будуть скопійовані в дерево користувачів після їх створення. +Усі файли та каталоги, розміщені в цьому каталозі, будуть скопійовані до дерева користувачів після створення. ## Зміна ідентифікації @@ -958,7 +958,7 @@ $ sudo su - alain Звичайним користувачам доведеться ввести пароль для нової ідентифікації. -!!! Tip "Порада" +!!! tip "Порада" Ви можете використати команду `exit`/`logout`, щоб вийти з користувачів, яких було переключено. Слід зазначити, що після зміни користувача не буде нової `дочірньої оболонки` або `підоболонки`, наприклад: @@ -1011,4 +1011,4 @@ LOGNAME=root ... ``` -Отже, якщо ви хочете змінити користувача, не забудьте не втратити `-`. Оскільки необхідні файли змінних середовища не завантажуються, під час запуску деяких програм можуть виникнути проблеми. +Отже, якщо ви захочете змінити користувача, не забудьте не втратити `-`. Оскільки необхідні файли змінних середовища не завантажуються, під час запуску деяких програм можуть виникнути проблеми. From 42db871d102b17d633c997565d545cb78dc3455e Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Mon, 18 Mar 2024 03:58:16 -0700 Subject: [PATCH 04/14] New translations lxd_web_servers.md (Ukrainian) --- docs/guides/containers/lxd_web_servers.uk.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/containers/lxd_web_servers.uk.md b/docs/guides/containers/lxd_web_servers.uk.md index cd1525f1b4..981403b762 100644 --- a/docs/guides/containers/lxd_web_servers.uk.md +++ b/docs/guides/containers/lxd_web_servers.uk.md @@ -315,7 +315,7 @@ public (active) lxc launch images:rockylinux/8/amd64 my-container ``` -Звичайно, цей біт «my-container» у кінці слід перейменувати на будь-яке ім’я контейнера, яке ви хочете, наприклад. “proxy-server”. Частину «/amd64» слід змінити на «arm64», якщо ви робите все це на чомусь на зразок Raspberry Pi. +Звичайно, цей біт «my-container» у кінці слід перейменувати на будь-яке ім’я контейнера, яке ви хочете, наприклад, «proxy-server». Частину «/amd64» слід змінити на «arm64», якщо ви робите все це на чомусь на зразок Raspberry Pi. Тепер ось подовжена версія: щоб знайти потрібні зображення, ви можете використати цю команду для переліку всіх доступних зображень у головних сховищах LXC: @@ -793,7 +793,7 @@ server { Ви можете називати конфігураційні файли як завгодно. Я використовую спрощені імена для навчальних посібників, але деякі системні адміністратори рекомендують імена на основі фактичного домену, але навпаки. Це організація в алфавітному порядку. - напр. "apache.server.test" отримає файл конфігурації з назвою "test.server.apache.conf". + Наприклад, "apache.server.test" отримає файл конфігурації з назвою "test.server.apache.conf". #### Спрямування трафіку на сервер Nginx Просто повторіть процес. Створіть файл, як і раніше: From 4ec332863f90c2a8ef7a94e02075b9234b511027 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 19 Mar 2024 09:13:39 -0700 Subject: [PATCH 05/14] New translations 03-data-entry-and-manipulations.md (Italian) --- docs/books/learning_bash/03-data-entry-and-manipulations.it.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/books/learning_bash/03-data-entry-and-manipulations.it.md b/docs/books/learning_bash/03-data-entry-and-manipulations.it.md index ea7346dae5..83364b032a 100644 --- a/docs/books/learning_bash/03-data-entry-and-manipulations.it.md +++ b/docs/books/learning_bash/03-data-entry-and-manipulations.it.md @@ -31,7 +31,7 @@ In questo capitolo imparerete a far interagire i vostri script con gli utenti e **** -A seconda dello scopo dello script, può essere necessario inviargli informazioni quando viene lanciato o durante la sua esecuzione. Queste informazioni, non note al momento della scrittura dello script, possono essere estratte da file o inserite dall'utente. È anche possibile inviare queste informazioni sotto forma di argomenti quando viene immesso il comando di script. Questo è il modo in cui funzionano molti comandi di Linux. +A seconda dello scopo dello script, potrebbero essere necessarie informazioni al momento dell'avvio o durante l'esecuzione. Queste informazioni, non predeterminate durante la scrittura dello script, possono provenire da file, dall'input dell'utente o essere passate come argomenti quando si inserisce il comando dello script, in modo simile a molti comandi di Linux. ## Il comando `read` From 609fc185dc02203589923aa89fdefd0a4d8dfd5b Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 19 Mar 2024 09:14:28 -0700 Subject: [PATCH 06/14] New translations index.md (Italian) --- docs/books/nvchad/index.it.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/books/nvchad/index.it.md b/docs/books/nvchad/index.it.md index be39317375..00ec377b80 100644 --- a/docs/books/nvchad/index.it.md +++ b/docs/books/nvchad/index.it.md @@ -11,6 +11,16 @@ tags: # :material-book-open-page-variant-outline: Introduzione +!!! warning "Modifiche della release 2.5" + + Con il rilascio della versione 2.5, gli sviluppatori dell'editor hanno modificato in modo significativo la struttura della configurazione. Le modifiche più significative riguardano i seguenti aspetti: + + * La trasformazione della configurazione in un plugin Neovim che può essere aggiornato utilizzando il gestore di plugin *lazy.nvim* + * Rimozione della cartella `custom` per la personalizzazione dell'editor (ora integrata nella cartella principale). Per gli utenti attuali viene fornita una [script di migrazione](https://gist.github.com/siduck/048bed2e7570569e6b327b35d1715404). + * Le mappature sono state modificate e non utilizzano più la sintassi personalizzata di nvchad, bensì quella di nvim **vim.keymap.set**. + + Di conseguenza, alcune pagine della guida, in particolare tutta la parte relativa all'installazione di NvChad e alla successiva installazione dei plugin, risultano errate. La guida è **in fase di revisione** e sarà presto aggiornata. + In questo libro troverete il modo di implementare Neovim, insieme a NvChad, per creare un ==**ambiente** di **sviluppo** **integrato**== (IDE) completamente funzionale. Dico "modi" perché ci sono molte possibilità. L'autore si concentra sull'uso di questi strumenti per la scrittura di markdown, ma se il markdown non è il vostro obiettivo, non preoccupatevi, continuate a leggere. Se non conoscete nessuno di questi strumenti (NvChad o Neovim), questo libro vi fornirà un'introduzione a entrambi e, se seguirete questi documenti, vi renderete presto conto che potete configurare questo ambiente in modo che sia di grande aiuto per qualsiasi esigenza di programmazione o di scrittura di script. From 60508dbebb46b1cda3e8f72c81eb33d39b66d0e8 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 19 Mar 2024 09:15:02 -0700 Subject: [PATCH 07/14] New translations template_chadrc.md (Italian) --- docs/books/nvchad/template_chadrc.it.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/books/nvchad/template_chadrc.it.md b/docs/books/nvchad/template_chadrc.it.md index 0eb923971f..9718ef029b 100644 --- a/docs/books/nvchad/template_chadrc.it.md +++ b/docs/books/nvchad/template_chadrc.it.md @@ -11,6 +11,10 @@ tags: # Esempio di configurazione +!!! danger "Non più fornito" + + L'esempio di configurazione non viene più fornito durante l'installazione di NvChad; di conseguenza, questa pagina è obsoleta e verrà rimossa nella nuova versione della guida. Le istruzioni verranno aggiornate al più presto. + ## :material-message-outline: Introduzione La versione 2.0 di NvChad introduce la possibilità di creare una cartella ==custom== durante la fase di installazione. La sua creazione è il punto di partenza per personalizzare l'editor modificando i suoi file. Installato al bootstrap permette, al primo avvio, di avere un editor con le caratteristiche di base di un IDE, ma può essere incluso anche dopo l'installazione di NvChad. From 7b2bdea3e877fd1f0d23d91c7dd4bb3bcf85caa4 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 19 Mar 2024 09:15:04 -0700 Subject: [PATCH 08/14] New translations install_nvchad.md (Italian) --- docs/books/nvchad/install_nvchad.it.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/books/nvchad/install_nvchad.it.md b/docs/books/nvchad/install_nvchad.it.md index eef515faf5..753f4c871b 100644 --- a/docs/books/nvchad/install_nvchad.it.md +++ b/docs/books/nvchad/install_nvchad.it.md @@ -11,6 +11,10 @@ tags: # :simple-neovim: Trasformare Neovim in un IDE avanzato +!!! danger "Istruzioni errate" + + Con il rilascio della versione 2.5, le istruzioni contenute in questa pagina non sono più corrette; se ne sconsiglia l'uso per le nuove installazioni. Per maggiori informazioni si veda [la pagina principale della guida](../index.md). + ## :material-arrow-bottom-right-bold-outline: Prerequisiti Come specificato sul sito di NvChad, è necessario assicurarsi che il sistema soddisfi i seguenti requisiti: From e6b0a8081fc8fb37b653f597b61f363bd384c7e0 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 19 Mar 2024 09:15:05 -0700 Subject: [PATCH 09/14] New translations vale_nvchad.md (Italian) --- docs/books/nvchad/vale_nvchad.it.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/books/nvchad/vale_nvchad.it.md b/docs/books/nvchad/vale_nvchad.it.md index ca064055bb..a84436b788 100644 --- a/docs/books/nvchad/vale_nvchad.it.md +++ b/docs/books/nvchad/vale_nvchad.it.md @@ -9,6 +9,10 @@ tags: # `vale` in NvChad (Neovim) +!!! danger "Istruzioni errate" + + Con il rilascio della versione 2.5, le istruzioni contenute in questa pagina non sono più corrette; se ne sconsiglia l'uso per le nuove installazioni. Per maggiori informazioni si veda [la pagina principale della guida](../index.md). + ## :material-message-outline: Introduzione `vale.sh` è uno dei principali progetti open source per scrittori tecnici che vogliono migliorare la propria scrittura e la coerenza dello stile. Può essere utilizzato con numerosi editor su quasi tutte le principali piattaforme OS (Linux, MacOS, Windows). Per saperne di più sul progetto, visitate il [sito web vale.sh](https://vale.sh/). Questa guida vi condurrà nell'aggiunta di `vale` a NvChad. Poiché è incluso nei pacchetti Mason usati per l'installazione, il processo non è troppo difficile, anche se comporta alcune piccole modifiche e configurazioni per far funzionare le cose. Per essere chiari, NvChad è in realtà il gestore della configurazione dell'editor Neovim, quindi da questo momento in poi il riferimento sarà `nvim`. From 611910d3312c9de6f197bf71c57bf550827c1256 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 19 Mar 2024 09:15:10 -0700 Subject: [PATCH 10/14] New translations index.md (Italian) --- docs/books/nvchad/plugins/index.it.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/books/nvchad/plugins/index.it.md b/docs/books/nvchad/plugins/index.it.md index 6c101943a5..d61656b7d0 100644 --- a/docs/books/nvchad/plugins/index.it.md +++ b/docs/books/nvchad/plugins/index.it.md @@ -11,6 +11,10 @@ tags: # Panoramica +!!! danger "Istruzioni errate" + + Con il rilascio della versione 2.5, le istruzioni contenute in questa pagina non sono più corrette; se ne sconsiglia l'uso per le nuove installazioni. Per maggiori informazioni si veda [la pagina principale della guida](../index.md). + ## Introduzione La configurazione personalizzata creata dagli sviluppatori di NvChad permette di avere un ambiente integrato con molte delle caratteristiche di un IDE grafico. Queste caratteristiche sono integrate nella configurazione di Neovim per mezzo di plugin. Quelli selezionati per NvChad dagli sviluppatori hanno la funzione di impostare l'editor per l'uso generale. From 2e736c1bb75b5ae471db83efb0d34232d548ff8c Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 19 Mar 2024 09:15:14 -0700 Subject: [PATCH 11/14] New translations md_preview.md (Italian) --- docs/books/nvchad/plugins/md_preview.it.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/books/nvchad/plugins/md_preview.it.md b/docs/books/nvchad/plugins/md_preview.it.md index f99c96cd6b..1a58d2154f 100644 --- a/docs/books/nvchad/plugins/md_preview.it.md +++ b/docs/books/nvchad/plugins/md_preview.it.md @@ -11,6 +11,10 @@ tags: # Anteprima Markdown +!!! danger "Istruzioni errate" + + Con il rilascio della versione 2.5, le istruzioni contenute in questa pagina non sono più corrette; se ne sconsiglia l'uso per le nuove installazioni. Per maggiori informazioni si veda [la pagina principale della guida](../index.md). + ## Introduzione Una delle caratteristiche del linguaggio Markdown che lo rendono ampiamente utilizzato nella scrittura di documentazione tecnica è la sua convertibilità. Il codice può essere convertito per la visualizzazione in molti formati (HTML, PDF, testo normale, ecc.), rendendo così il contenuto utilizzabile in numerosi scenari. From c50dc7b1bce9c834ab8d11ea233e6911d3092261 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 19 Mar 2024 09:15:15 -0700 Subject: [PATCH 12/14] New translations projectmgr.md (Italian) --- docs/books/nvchad/plugins/projectmgr.it.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/books/nvchad/plugins/projectmgr.it.md b/docs/books/nvchad/plugins/projectmgr.it.md index 1d92e2480f..ab2979d728 100644 --- a/docs/books/nvchad/plugins/projectmgr.it.md +++ b/docs/books/nvchad/plugins/projectmgr.it.md @@ -13,6 +13,10 @@ tags: ## Introduzione +!!! danger "Istruzioni errate" + + Con il rilascio della versione 2.5, le istruzioni contenute in questa pagina non sono più corrette; se ne sconsiglia l'uso per le nuove installazioni. Per maggiori informazioni si veda [la pagina principale della guida](../index.md). + Una delle caratteristiche che un IDE deve sicuramente avere è la capacità di gestire i vari progetti su cui lavora uno sviluppatore o un editore. La possibilità di selezionare il progetto su cui lavorare una volta aperto NvChad, senza dover digitare comandi nella *statusline* per raggiungere l'obiettivo. Ciò consente di risparmiare tempo e di semplificare la gestione nel caso di un numero elevato di progetti. L'uso di [charludo/projectmgr.nvim](https://github.com/charludo/projectmgr.nvim) integrerà questa funzionalità. Il plugin offre un'eccellente integrazione con `Telescope` e alcune interessanti funzionalità aggiuntive, come la possibilità di sincronizzare un repository *git* all'apertura del *progetto*. From c08c4de4d54c52c0cd45e1b6b782fd1654533041 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Tue, 19 Mar 2024 09:15:23 -0700 Subject: [PATCH 13/14] New translations marksman.md (Italian) --- docs/books/nvchad/marksman.it.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/books/nvchad/marksman.it.md b/docs/books/nvchad/marksman.it.md index 8d0ad7fed7..9c1ebb5695 100644 --- a/docs/books/nvchad/marksman.it.md +++ b/docs/books/nvchad/marksman.it.md @@ -11,6 +11,10 @@ tags: # Marksman - assistente del codice +!!! danger "Istruzioni errate" + + Con il rilascio della versione 2.5, le istruzioni contenute in questa pagina non sono più corrette; se ne sconsiglia l'uso per le nuove installazioni. Per maggiori informazioni si veda [la pagina principale della guida](../index.md). + Marksman è uno strumento utile quando si redige un documento per Rocky Linux. Permette di inserire facilmente i simboli necessari per definire i tag del linguaggio *markdown*. Ciò consente di scrivere più velocemente e riduce la possibilità di errori. NvChad/Neovim include già dei widget di testo che aiutano nella scrittura, come la ripetizione delle parole più usate indicizzate in base alla frequenza di inserimento. Le nuove opzioni incluse in questo server linguistico arricchiranno questi widget. From 4a894b5d54ddb797e15d40950136065725972956 Mon Sep 17 00:00:00 2001 From: Rocky Linux Automation <75949597+rockylinux-auto@users.noreply.github.com> Date: Wed, 20 Mar 2024 08:18:18 -0700 Subject: [PATCH 14/14] New translations hpe_amsd.md (Ukrainian) --- docs/guides/hardware/hpe_amsd.uk.md | 59 +++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 docs/guides/hardware/hpe_amsd.uk.md diff --git a/docs/guides/hardware/hpe_amsd.uk.md b/docs/guides/hardware/hpe_amsd.uk.md new file mode 100644 index 0000000000..d91b5989e4 --- /dev/null +++ b/docs/guides/hardware/hpe_amsd.uk.md @@ -0,0 +1,59 @@ +--- +title: Служба безагентного керування HPE ProLiant +author: Neel Chauhan +contributors: null +tested_with: 9.3 +tags: + - обладнання +--- + +# Служба безагентного керування HPE ProLiant + +## Вступ + +Сервери HPE ProLiant мають супутнє програмне забезпечення під назвою Agentless Management Service, яке [згідно з HPE](https://techlibrary.hpe.com/docs/iss/EL8000t/setup_install/GUID-1CF69B20-790A-4EDC-A162-9D64572ED9E8.html) "використовує позасмуговий зв'язок для підвищення безпеки та стабільності". Крім того, «за допомогою безагентного керування моніторинг працездатності та сповіщення вбудовані в систему та починають працювати в момент підключення допоміжного джерела живлення до [вашого сервера]». + +Це використовується, наприклад, для зменшення швидкості вентилятора на HPE ProLiant ML110 Gen11 у домашній лабораторії автора. + +## Передумови та припущення + +Нижче наведено мінімальні вимоги для використання цієї процедури: + +- Сервер HP/HPE ProLiant Gen8 або новішої версії з увімкненим iLO та видимим у мережі + +## Встановлення `amsd` + +Щоб інсталювати `amsd`, спочатку потрібно інсталювати EPEL (додаткові пакети для Enterprise Linux) і запустити оновлення: + +```bash +dnf -y install epel-release && dnf -y update +``` + +Потім додайте наступне до `/etc/yum.repos.d/spp.repo`: + +```bash + +[spp] +name=Service Pack for ProLiant +baseurl=https://downloads.linux.hpe.com/repo/spp-gen11/redhat/9/x86_64/current +enabled=1 +gpgcheck=1 +gpgkey=https://downloads.linux.hpe.com/repo/spp/GPG-KEY-spp +``` + +Замініть «9» на основну версію Rocky Linux, а «gen11» — на генерацію вашого сервера. Хоча автор використовує ML110 Gen11, якби він використовував замість DL360 Gen10, використовувався б `gen10`. + +Згодом встановіть і ввімкніть `amsd`: + +```bash +dnf -y update && dnf -y install amsd +systemctl enable --now amsd +``` + +Якщо ви хочете перевірити, чи працює `amsd`, увійдіть до iLO через веб-браузер. Якщо встановлено правильно, iLO має повідомити, що на нашому сервері працює Rocky Linux: + +![HPE iLO showing Rocky Linux 9.3](../images/hpe_ilo_amsd.png) + +## Висновок + +Поширеною критикою серверів HPE є висока швидкість обертання вентиляторів під час використання компонентів сторонніх виробників, таких як SSD або інші додаткові карти PCI Express, офіційно не дозволені HPE (наприклад, карти відеозахоплення). Навіть якщо ви використовуєте лише компоненти HPE, використання `amsd` дозволяє серверам HPE ProLiant працювати холодніше та тихіше, ніж просто використання Rocky Linux на одному сервері.