DokumentyObrazyMediaNarzędzia PDF

Konwerter CSV na YAML Online

Konwertuj tabele CSV do konfiguracji YAML. Bezpłatnie, w przeglądarce, bez przesyłania plików.


- nombre: Juan
    edad: 30
    ciudad: Madrid
- nombre: Maria
    edad: 25
    ciudad: Barcelona
- nombre: Carlos
    edad: 35
    ciudad: Valencia
Processed in your browser

CSV do YAML na potrzeby konfiguracji, inwentarzy i danych testowych

Inwentarze Ansible z Excela

Transformuj arkusze kalkulacyjne serwerów w inwentarze YAML gotowe do użycia w Ansible.

Konfiguracje Docker Compose

Generuj konfiguracje usług dla Docker Compose na podstawie tabel parametrów.

Fixtury i dane testowe

Konwertuj arkusze danych testowych QA na fixtury YAML dla pytest, RSpec lub Cypress.

100% prywatne

Konwersja odbywa się w Twojej przeglądarce. Twój plik CSV nigdy nie jest wysyłany na żaden serwer.

Trzy kroki, żadnych komplikacji

1

Wklej lub prześlij plik CSV

Przeciągnij plik .csv lub wklej zawartość. Pierwszy wiersz definiuje klucze YAML dla każdego obiektu.

2

Automatyczna konwersja

Każdy wiersz CSV staje się obiektem YAML w ramach sekwencji. Typy danych są automatycznie rozpoznawane.

3

Skopiuj lub pobierz plik YAML

Skopiuj wygenerowany YAML do schowka lub pobierz go jako plik .yaml gotowy do użycia w Twoim projekcie.

Masz pytania?

Narzędzie rozpoznaje typy automatycznie: wartości 'true' lub 'false' (bez cudzysłowów) są konwertowane na wartości logiczne YAML, całkowitoliczbowe wartości numeryczne na liczby całkowite, wartości dziesiętne na liczby zmiennoprzecinkowe, a pozostałe pozostają jako ciągi tekstowe. Ma to znaczenie dla zgodności z Ansible (które używa PyYAML/YAML 1.1) oraz z Kubernetes (które używa parsera Go, gopkg.in/yaml.v3, zgodnego z YAML 1.2). Jeśli wartość taka jak '007' musi pozostać ciągiem tekstowym (np. jako kod kraju), należy ją umieścić w cudzysłowie w oryginalnym pliku CSV.

Główne przypadki użycia to: generowanie inwentarzy Ansible z arkusza kalkulacyjnego serwerów (z kolumnami hostname, ip, group, user), tworzenie plików docker-compose.yml z wieloma usługami na podstawie tabeli konfiguracyjnej, generowanie konfiguracji zmiennych środowiskowych dla poszczególnych usług z pliku CSV parametrów aplikacji, tworzenie danych testowych (fixtures) dla pytest lub RSpec z arkuszy danych testowych udostępnianych zespołowi QA oraz generowanie plików Helm values.yaml dla wdrożeń Kubernetes na podstawie tabel konfiguracji środowisk.

Inwentarz Ansible w formacie YAML oczekuje określonej struktury z grupami i hostami. Jeśli Twój plik CSV ma kolumny takie jak 'host', 'ip', 'group' i 'user', bezpośrednia konwersja generuje płaską listę obiektów. Aby uzyskać hierarchiczną strukturę grup oczekiwaną przez Ansible, najbardziej użytecznym wynikiem jest lista obiektów hostów, którą można przetworzyć skryptem Python z użyciem PyYAML lub użyć bezpośrednio jako źródło dla dynamicznego skryptu inwentarza Ansible. Wiele zespołów DevOps utrzymuje podstawowy inwentarz w Google Sheets (eksportowany do CSV) i synchronizuje go z inwentarzem Ansible właśnie tym przepływem pracy.

Tak, z istotnymi ograniczeniami. Plik docker-compose.yml ma głęboko zagnieżdżoną strukturę (services > service_name > image, ports, environment, volumes), która nie mapuje się bezpośrednio do płaskiej tabeli. Można jednak wygenerować sekcję services jako listę obiektów z pliku CSV z kolumnami 'name', 'image', 'port_host', 'port_container', a następnie użyć szablonu lub skryptu, aby przekonwertować tę listę do finalnego formatu Compose. Takie podejście jest przydatne do generowania konfiguracji dla wielu środowisk (dev, staging, prod) z centralnej tabeli parametrów.

YAML ma kilka znaków specjalnych, które mogą powodować problemy, jeśli pojawią się bez znaków ucieczki w wartościach: dwukropek po którym następuje spacja (': ') jest interpretowany jako separator klucz-wartość, '#' rozpoczyna komentarz, '[', ']', '{', '}' to wskaźniki kolekcji przepływu, a '|' i '>' to wskaźniki skalara blokowego. Narzędzie automatycznie umieszcza w cudzysłowie wartości zawierające te znaki, używając odpowiednio cudzysłowów podwójnych lub pojedynczych, generując prawidłowy YAML poprawnie parsowany przez każdy standardowy parser YAML 1.2.

Tak, z zastrzeżeniem, że Ansible używa PyYAML implementującego YAML 1.1, podczas gdy Kubernetes używa gopkg.in/yaml.v3 implementującego YAML 1.2. Najistotniejsza praktyczna różnica to obsługa wartości logicznych: w YAML 1.1 'yes', 'no', 'on', 'off' są wartościami logicznymi; w YAML 1.2 tylko 'true' i 'false' (bez cudzysłowów). Narzędzie generuje YAML zgodny z oboma wersjami, używając wyłącznie 'true' i 'false' jako literałów logicznych, które są prawidłowe w obu specyfikacjach.

Konwertuj CSV do YAML: inwentarze Ansible, Docker Compose i masowe generowanie konfiguracji

YAML (YAML Ain't Markup Language, specyfikacja 1.2 opublikowana 1 października 2009 roku pod adresem yaml.org) to standardowy format plików konfiguracyjnych w ekosystemie DevOps: playbooki i inwentarze Ansible, manifesty Kubernetes, przepływy pracy GitHub Actions, potoki GitLab CI, plik docker-compose.yml, pliki Helm values.yaml oraz konfiguracje aplikacji we frameworkach takich jak Spring Boot (application.yml) czy Ruby on Rails (database.yml). Potrzeba masowego generowania konfiguracji YAML z arkuszy kalkulacyjnych jest częsta w zespołach platform engineering, DevOps i SRE: gdy do inwentarza infrastruktury dodawane są dziesiątki nowych serwerów (których źródłem prawdy jest arkusz zarządzania zasobami), gdy mikroserwis jest wdrażany w wielu środowiskach z różnymi parametrami zdefiniowanymi w tabeli, lub gdy zespół QA utrzymuje swoje dane testowe w Google Sheets i musi wygenerować je jako fixtury YAML do testów automatycznych.

Przypadek generowania inwentarzy Ansible z arkuszy kalkulacyjnych jest szczególnie powszechny w zespołach adoptujących Ansible do automatyzacji zarządzania istniejącą infrastrukturą. Serwery są już zinwentaryzowane w arkuszach kalkulacyjnych lub bazach CMDB (Configuration Management Databases) z informacjami takimi jak nazwa hosta, adres IP, system operacyjny, środowisko (produkcja, staging, development), grupa funkcjonalna (web, baza danych, cache, monitoring) i zmienne specyficzne dla serwera. Wyeksportowanie tego arkusza do CSV i konwersja do YAML generuje podstawę inwentarza Ansible, którą zespół może doprecyzować przez dodanie hierarchii grup i zmiennych grupowych. Przepływ ten skraca do minut to, co w innym przypadku wymagałoby ręcznego pisania setek linii YAML. Podobnie generowanie plików Helm values.yaml dla wielu środowisk (dev, staging, pre-prod, prod, według regionu geograficznego) z centralnej tabeli parametrów pozwala na utrzymywanie jednego źródła prawdy w formacie tabelarycznym (łatwo audytowalnym i edytowalnym przez cały zespół) i odtwarzalne generowanie plików YAML specyficznych dla każdego środowiska.

Innym istotnym przypadkiem użycia jest tworzenie danych testowych (fixtures) w YAML. Frameworki testowe takie jak pytest (przez wtyczki pytest-datadir lub pytest-yaml), Ruby on Rails (który używa fixtures YAML od Rails 1.0 z grudnia 2004 roku do zaludniania bazy danych w testach) i Cypress (który używa fixtures w YAML lub JSON do mockowania odpowiedzi API) wymagają danych testowych w formacie YAML lub JSON. Zespoły QA zazwyczaj definiują swoje przypadki testowe w współdzielonych arkuszach Google Sheets, z kolumnami reprezentującymi pola każdej encji testowej. Konwersja tych arkuszy do CSV, a następnie do YAML, automatycznie generuje fixtury, które inżynierowie testów mogą bezpośrednio włączyć do repozytorium. Ponadto konwersja CSV do YAML to pierwszy krok migracji danych konfiguracyjnych aplikacji z formatów legacy (pliki Java .properties, pliki .ini, tabele konfiguracyjne baz danych) do YAML, który jest preferowanym formatem przez nowoczesne frameworki. Convertir.ai wykonuje tę transformację w całości w przeglądarce, bez instalacji oprogramowania, bez limitów wierszy, z automatycznym rozpoznawaniem typów i generowaniem prawidłowego YAML zgodnego ze specyfikacją 1.2.