Προτάσεις εργαλείων για configuration templates

...εφαρμογές για οτιδήποτε άλλο

Συντονιστής: konnn

Προτάσεις εργαλείων για configuration templates

Δημοσίευσηαπό pc_magas » 28 Αύγ 2017, 21:00

Ουκ ολίγες φορές θα ήθελα να είχα κάτι σαν template διαφόρων configuration ποιος συγγεκριμένα αρχείων κειμένων πχ.

Κώδικας: Επιλογή όλων
{
  "database_connection":{
    "host":"${MYSQL_HOST}",
    "database":"${MYSQL_DATABASE}",
    "user":"${MYSQL_USER}"
    "password":"${MYSQL_PASSWORD}"
  }



Η εναλλακτικά

Κώδικας: Επιλογή όλων
<?xml version="1.0" encoding="UTF-8"?>
<database>
  <host>${MYSQL_HOST}</host>
  <database>${MYSQL_DATABASE}</database>
  <user>${MYSQL_USER}</user>
  <password>${MYSQL_PASSWORD}</password>
</database>


Και να μπορώ να αντικαθιστώ τις τιμές πχ. την ${MYSQL_HOST} με μια τιμή από το command line. Σαφώς δεν θέλω να περιορίζετε μόνο σε json αρχεία η XML αλλά να υποστιρίζει οποιοδήποτε αρχείο κειμένου. Έτσι απο μια κονσόλα/basi script/dockerfile να τρέχω πχ:

Κώδικας: Επιλογή όλων
tool -e MYSQL_HOST=localhost -e MYSQL_DATABASE=database -e MYSQL_USER=someuser -e MYSQL_PASSWORD=passwd myfile.json


Και να εκτυπώνει:

Κώδικας: Επιλογή όλων
{
  "database_connection":{
    "host":"localhost",
    "database":"database",
    "user":"someuser"
    "password":"somepassword"
  }



Έτσι να μπορώ να έχω configuration templates που απλά να τα γεμίζω είτε με τιμές από enviromentla variables είτε από παραμέτρους. Ακόμη τα παραπάνω παραδείγματα είναι ενδεικνυόμενα για να δείξω τι functionalities θέλω μπορεί να ενδιαφέρει ελαφρώς η χρήση.
Τελευταία επεξεργασία από the_eye και 13 Σεπ 2017, 20:35, έχει επεξεργασθεί 1 φορά/ες συνολικά
Αιτία: Ενημέρωση
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2598
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: Προτάσεις εργαλείων για configuration tamplates

Δημοσίευσηαπό talos » 31 Αύγ 2017, 18:13

augeas, puppet, chef, ansible, salt, yeoman
talos
babeTUX
babeTUX
 
Δημοσιεύσεις: 28
Εγγραφή: 12 Νοέμ 2013, 20:21
Εκτύπωση

Re: Προτάσεις εργαλείων για configuration tamplates

Δημοσίευσηαπό pc_magas » 31 Αύγ 2017, 21:48

Πωω τι να πρωτοκοιτάξεις φίλε.
Καλή ιδέα θα ήταν εαν μπορούσες να περιγράψεις την εμπειρία σου με κάποια από αυτά.
Ποιο θα σύστηνες προσωπικα; Ποιο σε βόλεψε;
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2598
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: Προτάσεις εργαλείων για configuration tamplates

Δημοσίευσηαπό Tassos10 » 04 Σεπ 2017, 17:35

Εγώ θα σου πρότεινα να έκανες ( αν σε βόλευε ) και τα δικά σου πρότυπα αρχείων. Δηλαδή να πας στο home directory σου στον φάκελο "Πρότυπα" ( ~/Πρότυπα/ ) και να δημιουργήσεις όπως θες τα αρχεία σου. Έπειτα όποτε θες να δημιουργήσεις ένα παρόμοιο αρχείο απλώς με δεξί κλικ θα διαλέγεις όποιο πρότυπο θες.
Διάβασε και αυτό το άρθρο για να καταλάβεις καλύτερα τι εννοώ.
Spoiler: show
1 Γνώσεις Linux: Πρώτα βήματα ┃ Προγραμματισμού: Πρώτα βήματα ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-50-generic 64bit (el_GR.UTF-8, Unity ubuntu), Ubuntu 3.2.0-49-generic
3 Intel Core2 Quad CPU Q9400 2.66GHz ‖ RAM 3954 MiB ‖ ASRock G31M-S
4 nVidia G92 [GeForce 9800 GT] [10de:0614] {nvidia}
5 eth0: Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller [10ec:8136] (rev 02)
Tassos10
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 472
Εγγραφή: 29 Μαρ 2010, 10:43
Εκτύπωση

Re: Προτάσεις εργαλείων για configuration tamplates

Δημοσίευσηαπό pc_magas » 04 Σεπ 2017, 21:00

Για άλλο λόγο τα χρειάζομαι κυρίως για deployments εφαρμογών που σε deployment παίζει κονσόλα. Πχ να έχω ένασ αρχείο με κάποια κενά που να μπορώ μέσω κάποιου εργαλείου να τα γεμίζω.
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2598
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: Προτάσεις εργαλείων για configuration tamplates

Δημοσίευσηαπό talos » 05 Σεπ 2017, 21:30

Για server εικονικές μηχανές vagrant με ansible ταιριάζουν στα χνώτα μου. Οι άλλες λύσεις είναι over engineered και δεν έχω 42 server να διαχειριστώ ταυτόχρονα.
Και πλέον αν κάτι θέλει να εγκαταστήσω 60 βιβλιοθήκες θα το κάνω σε μια εικονική μηχανή. (Ξέρω σε docker είναι καλύτερα αλλά το κάνεις με τα ίδια εργαλέια και σχεδόν ίδιο workflow)
Για project scaffolding προτιμώ το Cookiecutter
Θεώρησε τα παραπάνω σαν μια αρχή, δοκίμασε ότι σου κάνει κλικ και φτιάξε την δική σου εργαλειοθήκη.

Την δουλεία πάντως που περιγράφεις την κάνεις πολύ ποιο απλά με το sed ή με μια βιβλιοθήκη template.
Βρήκα εύκολο το erb (http://www.stuartellis.name/articles/erb/) αλλά ξέρω ruby.
talos
babeTUX
babeTUX
 
Δημοσιεύσεις: 28
Εγγραφή: 12 Νοέμ 2013, 20:21
Εκτύπωση

Re: Προτάσεις εργαλείων για configuration tamplates

Δημοσίευσηαπό pc_magas » 05 Σεπ 2017, 21:49

Βασικά συγγεκριμένα για meteor applications θέλω να έχω ένα Json template και απλά να δημιουργώ για το κάθε environment (development,testing,production) τα δικά του είτε από άλλο αρχείο υπό key pair value είτε δίνοντας σαν παραμέτρους.
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2598
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: Προτάσεις εργαλείων για configuration tamplates

Δημοσίευσηαπό talos » 05 Σεπ 2017, 23:06

Είσαι βέβαιος πως δεν υποστηρίζει κάποια τέτοια λειτουργία τo meteor απο μόνο του; Μου μοιάζει απίθανο να μην έχει.

Υποθέτω πως σκέφτεσαι να έχεις script με ονόματα chenv_meteror_to_production, chenv_meteror_to_deploy, chenv_meteror_to_testing, η κάπως έτσι και να φτιάχνει τα αρχεία από κάποιο Template; Αν ήμουν αναγκασμένος να κάνω κάτι τέτοιο θα το έκανα αλλιώς, με git branching.
talos
babeTUX
babeTUX
 
Δημοσιεύσεις: 28
Εγγραφή: 12 Νοέμ 2013, 20:21
Εκτύπωση

Re: Προτάσεις εργαλείων για configuration tamplates

Δημοσίευσηαπό pc_magas » 06 Σεπ 2017, 21:01

Βασικά σκευτόμουν να έχω ένα γενικό template:

Κώδικας: Επιλογή όλων
{
  'private':{
    "settingA": ${SETTING_A},
  },
  'public':{
  }
}


Και μετά να έχω το αρχείο:

Κώδικας: Επιλογή όλων
{
  'private':{
    "settingA": "mitsos",
  },
  'public':{
  }
}


Έτσι μετά εαν τρέχω το "tool":

Κώδικας: Επιλογή όλων
tool template.json production.json


Να παράγει το αρχείο .env:

Κώδικας: Επιλογή όλων
SETTING_A=mitsos


Που αυτό θα είναι ένα docker .env αρχείο. Ακόμη θέλω εαν δίνω το .env αρχείο και το template.json να παράγει:

Κώδικας: Επιλογή όλων
{
  'private':{
    "settingA": "mitsos",
  },
  'public':{
  }
}


Δηλαδή θα έχω ένα script αλλά πολλά διαφορετικά αρχεία (η ένα αρχείο σε διαφορετικά version controll branches)
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2598
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση


Επιστροφή στο Εφαρμογές Άλλες-Διάφορες