Po wyjęciu z pudełka Ansible ma wiele narzędzi i funkcji. Jednym z nich jest moduł linii linii. Ten moduł umożliwia zarządzanie pojedynczą linią w pliku znajdującym się na zdalnym hoście.
Obsługuje funkcje, takie jak wymiana treści w pliku, aktualizowanie treści w wierszu, dodanie treści w wierszu i więcej.
Ten przewodnik ilustruje, jak korzystać z modułu linii linii ansible do zarządzania plikami na zdalnych hostach.
Wymagania
Aby przestrzegać koncepcji tego samouczka, upewnij się, że masz następujące podstawowe wymagania:
Potwierdź, czy istnieje określony wpis
Aby upewnić się, że konkretny wpis jest obecny w pliku, możemy użyć modułu lineinFile i ustawić scenę na przedstawienie.
Rozważ przykładowy podręcznik pokazany poniżej:
---
- Gospodarze: Wszyscy
GACED_FAFTS: Tak
stać się: tak
Zadania:
- Nazwa: Sprawdź, czy /etc /hosts zawiera 127.0.0.1 "
lineinfile:
Ścieżka: „/etc/hosts”
Stan: obecny
Linia: "127.0.0.1 "
Check_mode: Tak
Zarejestruj się: Out
Powyższy przykład sprawdzi, czy wpis istnieje w określonym pliku i doda go, jeśli nie istnieje.
Utwórz plik i dodaj nową linię
Możemy użyć modułu lineinfile do utworzenia pliku i dodania nowego wiersza do utworzonego pliku.
Rozważ przykładowy podręcznik pokazany poniżej:
---
- Gospodarze: Wszyscy
GACED_FAFTS: Nie
Zadania:
- Nazwa: Utwórz plik i dodaj linię
lineinfile:
dest:/home/ubuntu/przykład.conf
Linia: To nowy wpis do pliku
Stan: obecny
Utwórz: prawda
W powyższym przykładzie podręcznika używamy parametru DEST, aby określić ścieżkę pliku.
Następnie używamy parametru linii, aby ustawić linię do dodania do pliku. Używamy tego w połączeniu ze stanem: obecny parametr.
Na koniec ustawiamy parametr Utwórz na true, który mówi Ansible, aby utworzyć plik, jeśli istnieje.
Jeśli uruchomisz podręcznik dwukrotnie, nie będzie wykonywać żadnej akcji, ponieważ istnieje zarówno plik, jak i określona linia istniała.
Dodaj linię przed/po wejściu
Aby dodać linię przed lub po konkretnym wpisie, możesz użyć parametrów Insertafter lub InsertBef.
Spójrz na przykład pokazany poniżej:
---
- Gospodarze: Wszyscy
GACED_FAFTS: Nie
Zadania:
- Nazwa: Dodaj wiersz przed/po
lineinfile:
ścieżka:/etc/apache2/apache2.conf
Regex: „^ServerRoot”
Insertafter: „^#ServerRoot”
Linia: serverroot "/etc/apache2"
Po skomentowanej linii moduł lineinfile doda wpis ServerRoot „/etc/apache2”.
Usuwanie linii
Aby usunąć wpis z pliku, ustaw stan na nieobecny, jak pokazano na przykładzie podręcznika poniżej:
---
- Gospodarze: Wszyscy
GACED_FAFTS: Nie
Zadania:
- Nazwa: Usuń linię
lineinfile:
ścieżka:/etc/apache2/apache2.conf
Regex: '^#serverroot'
Stan: nieobecny
Powyższy przykład używa prostego wyrażenia regularnego, aby dopasować linię, zaczynając od #Serverroot.
Komentując linię
Aby skomentować wiersz, użyj parametru Ansible LineInFile Backrefs. Spójrz na przykładowy podręcznik pokazany poniżej:
---
- Gospodarze: Wszyscy
GACED_FAFTS: Nie
Zadania:
- Nazwa: Usuń linię
lineinfile:
ścieżka:/etc/apache2/apache2.conf
linia 1'
Regex: „^#Słuchaj 8080”
Backrefs: Tak
W powyższym przykładzie używamy wyrażenia regularnego, aby dopasować linię, którą chcemy komentować.
Następnie używamy zawartości linii dopasowującej i dodajemy postać komentowania.
Plik kopii zapasowej przed zmianą
Dobrze jest zapewnić kopię zapasową kopii plików przed edycją, aby ułatwić przywrócenie plików w przypadku błędów.
Aby utworzyć kopię zapasową pliku za pomocą modułu lineInfile, możemy ustawić opcję kopii zapasowej na true.
Rozważ przykładowy podręcznik poniżej:
---
- Gospodarze: Wszyscy
GACED_FAFTS: Nie
Zadania:
- Nazwa: Usuń linię
lineinfile:
ścieżka:/etc/apache2/apache2.conf
Regex: '^#serverroot'
Stan: nieobecny
Backup: Tak
Wniosek
Moduł linii linii ansible jest korzystny przy modyfikowaniu plików konfiguracyjnych na zdalnych hostach za pomocą ANSable Playbooks.
Dziękuję za przeczytanie!