Re: [Python] distribuire programmi python

2014-09-07 Per discussione Marco Beri
On Sep 6, 2014 8:15 AM, Daniele Varrazzo p...@develer.com wrote:

 Il programma e' gratis e open. A pagamento hanno dei servizi di
centralizzazione, inventari dinamici, cose che neanche ho capito cosa sono
onestamente.

Daniele,
un collega mi ha accennato a Saltstack.

Conosci? Qualcun'altro qui?

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-07 Per discussione Daniele Varrazzo

On 2014-09-07 17:08, Marco Beri wrote:

On Sep 6, 2014 8:15 AM, Daniele Varrazzo p...@develer.com wrote:


Il programma e' gratis e open. A pagamento hanno dei servizi di
centralizzazione, inventari dinamici, cose che neanche ho capito cosa 
sono

onestamente.

Daniele,
un collega mi ha accennato a Saltstack.

Conosci? Qualcun'altro qui?


Io no. Da quanto ho letto implementa grossomodo lo stesso modello di 
ansible (ovvero senza server remoto, al contrario di chef/puppet). Di 
default una 0mq invece di ssh come trasporto, che lo rende un po' più 
veloce ma che ha causato problemi di sicurezza in passato (in ansible è 
opzionale). Entrambi stanno ricevendo interesse da gente che ha trovato 
chef/puppet difficili. Esperienza diretta non ne ho.


-- Daniele
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-07 Per discussione Marco Beri
On Sep 7, 2014 10:45 PM, Daniele Varrazzo p...@develer.com wrote:

 On 2014-09-07 17:08, Marco Beri wrote:
 Daniele,
 un collega mi ha accennato a Saltstack.
 Conosci? Qualcun'altro qui?


 Io no. Da quanto ho letto implementa grossomodo lo stesso modello di
ansible (ovvero senza server remoto, al contrario di chef/puppet). Di
default una 0mq invece di ssh come trasporto, che lo rende un po' più
veloce ma che ha causato problemi di sicurezza in passato (in ansible è
opzionale). Entrambi stanno ricevendo interesse da gente che ha trovato
chef/puppet difficili. Esperienza diretta non ne ho.
 -- Daniele

Grazie.
Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-07 Per discussione Dario Bertini
2014-09-07 19:00 GMT+02:00 Daniele Varrazzo p...@develer.com:
 Da quanto ho letto implementa grossomodo lo stesso modello di ansible
 (ovvero senza server remoto, al contrario di chef/puppet).

In verità mi pare che sia proprio più simile a chef/puppet che ad
ansible, in quanto di default prevede l'installazione di un master e
l'installazione di software anche sui minion

http://docs.saltstack.com/en/latest/topics/tutorials/quickstart.html#salt-masterless-quickstart

è possibile usarlo masterless (proprio come è possible usare
chef-solo), ma non è la stessa cosa
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-06 Per discussione Daniele Varrazzo

On 2014-09-06 06:46, Balan Victor wrote:
il giorno 06 settembre 2014 04:30, Daniele Varrazzo 
p...@develer.com ha

scritto:



devi provare dell'oddio verso il tuo collega .. ahahah


Assolutamente no, è un bravissimo ragazzo e una delle persone più 
pazienti del mondo. Per lui risolvere un bug tipo cambiare l'anno di 
copyright a fondo pagina oppure stravolgere completamente il sistema 
sono la stessa cosa. Lo ammiro, io passo sempre per la strada più pigra 
:)




Su *nix compila python installandolo in /usr/local/py34 (./configure
--prefix=/usr/local/py34  make  sudo make install) e crea un 
virtualenv
che utilizzi quell'eseguibile. Puoi avere diverse versioni di Python 
e non
si danno minimamente fastidio (ho tutta la collezione dal 2.4 al 3.4 
sul

portatile e sulle macchine di test).


si effettivamente non c'ho minimamente pensato ...

mai avuto esperienze con python e z/os / mvs ?


Non credo ci trovi niente di più aggiornato di Python 2.4 per questa 
roba.


-- Daniele
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-06 Per discussione Giovanni Porcari

 Il giorno 05/set/2014, alle ore 18:28, enrico franchi 
 enrico.fran...@gmail.com ha scritto:
 
 2014-09-04 23:49 GMT+01:00 Balan Victor balan.vict...@gmail.com:
 Diciamo cosi', se non hai fatto esplicitamente in modo che sia cosi' e non lo 
 hai provato, ho seri dubbi in proposito.
 provato con 2.7 e 3.4
 
 Allora, il pacchetto autocontenuto e' molto piu' tipico del mondo windows che 
 del mondo unix.
 Parliamoci... e' un pacchetto che hai scritto e vuoi distribuire o e' un 
 pacchetto che devi deployare su suddette macchine *di persona*?
 deployare su server *di persona*, almeno al primo giro. Dal secondo giro in 
 avanti il programma è in grado di auto-aggiornarsi. 
 
 Il programma non gira su server dedicati quindi non posso pensare di usare 
 roba tipo docker e non voglio nemmeno dipendere dal python installato di 
 default sul sistema.
 
 Uhm... poi ovviamente docker non e' che gira su tutta la roba che hai 
 descritto.
 Chef pero' potresti usarlo...
 

Dal momento che mi sono totalmente 'innamorato' di docker mi potreste dire
che tipo di controindicazioni ci vedete ?

Grazie :)

G
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-06 Per discussione Daniele Varrazzo

On 2014-09-06 12:01, Giovanni Porcari wrote:

Il programma non gira su server dedicati quindi non posso pensare di 
usare roba tipo docker e non voglio nemmeno dipendere dal python 
installato di default sul sistema.


Uhm... poi ovviamente docker non e' che gira su tutta la roba che 
hai descritto.

Chef pero' potresti usarlo...



Dal momento che mi sono totalmente 'innamorato' di docker mi potreste 
dire

che tipo di controindicazioni ci vedete ?


Penso solo questo:

On 2014-09-04 13:51, Balan Victor wrote:

Ciao a tutti,
ho un programma scritto in python che devo far girare su server
linux/aix/hp-ux/unix/solaris e windows.


Docker gira solo su Linux moderni. Victor insiste che il suo programma 
scritto in Py 3.4 deve girare anche sul VIC20...


-- Daniele
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-06 Per discussione Roberto De Ioris


 Il giorno 05/set/2014, alle ore 18:28, enrico franchi
 enrico.fran...@gmail.com ha scritto:

 2014-09-04 23:49 GMT+01:00 Balan Victor balan.vict...@gmail.com:
 Diciamo cosi', se non hai fatto esplicitamente in modo che sia cosi' e
 non lo hai provato, ho seri dubbi in proposito.
 provato con 2.7 e 3.4

 Allora, il pacchetto autocontenuto e' molto piu' tipico del mondo
 windows che del mondo unix.
 Parliamoci... e' un pacchetto che hai scritto e vuoi distribuire o e' un
 pacchetto che devi deployare su suddette macchine *di persona*?
 deployare su server *di persona*, almeno al primo giro. Dal secondo giro
 in avanti il programma è in grado di auto-aggiornarsi.

 Il programma non gira su server dedicati quindi non posso pensare di
 usare roba tipo docker e non voglio nemmeno dipendere dal python
 installato di default sul sistema.

 Uhm... poi ovviamente docker non e' che gira su tutta la roba che hai
 descritto.
 Chef pero' potresti usarlo...


 Dal momento che mi sono totalmente 'innamorato' di docker mi potreste dire
 che tipo di controindicazioni ci vedete ?



Per quello che posso dirti e' sempre tutto una scuola di pensiero:

parlo con un devops e si esalta per docker, lxc e compagnia bella, parlo
con un sysadmin o un esperto di distro e gli vengono i brividi freddi. E
il bello e' che succede anche il contrario :)

Ammetto che il problema delle dipendenze nel mondo UNIX e' da sempre una
rottura di scatole (ma questo e' spesso colpa degli sviluppatori che non
si curano di chi dovra' usare i loro prodotti, vedi rant di Linus sulle
shared libraries), ma dall'altro lato la deduplicazione di file, librerie
e binari di sistema che si portano dietro questi sistemi richiedono una
grande responsabilita' (qualita' che spesso si costruisce in anni di
esperienza da sysadmin e non a colpi di tool 'fashion').

La stessa cosa ad esempio succede con Go, il fatto che sia tutto compilato
staticamente (almeno per ora) fa storcere il naso a parecchi... Chi ha
ragione ? Boh :)

Per come la vedo io il mondo dei container e' una cosa che non si puo'
ignorare, e sono contento che Docker abbia avuto successo perche' ha fatto
uscire dalle caverne una sfilza di sysadmin intrappolati negli anni 70
convinti che il paradigma UNIX sia perfetto cosi' (ma vaff...)

Basta solo ricordarsi che gli aggiornamenti di sicurezza vanno fatti, e
vanno fatti per sempre (e se il cliente non vuole pagare per questo
servizio NECESSARIO e' meglio che vi firmi qualche bella cartaccia
dall'avvocato)


-- 
Roberto De Ioris
http://unbit.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-06 Per discussione Roberto De Ioris



 Dal momento che mi sono totalmente 'innamorato' di docker mi potreste
 dire
 che tipo di controindicazioni ci vedete ?



 Per quello che posso dirti e' sempre tutto una scuola di pensiero:

 parlo con un devops e si esalta per docker, lxc e compagnia bella, parlo
 con un sysadmin o un esperto di distro e gli vengono i brividi freddi. E
 il bello e' che succede anche il contrario :)

 Ammetto che il problema delle dipendenze nel mondo UNIX e' da sempre una
 rottura di scatole (ma questo e' spesso colpa degli sviluppatori che non
 si curano di chi dovra' usare i loro prodotti, vedi rant di Linus sulle
 shared libraries), ma dall'altro lato la deduplicazione di file, librerie


scusate qui intendevo duplicazione :)

-- 
Roberto De Ioris
http://unbit.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-06 Per discussione Balan Victor
Il giorno 06 settembre 2014 13:33, Daniele Varrazzo p...@develer.com ha
scritto:

 On 2014-09-06 12:01, Giovanni Porcari wrote:

 Dal momento che mi sono totalmente 'innamorato' di docker mi potreste dire
 che tipo di controindicazioni ci vedete ?


 Penso solo questo:

 On 2014-09-04 13:51, Balan Victor wrote:

 Ciao a tutti,
 ho un programma scritto in python che devo far girare su server
 linux/aix/hp-ux/unix/solaris e windows.


 Docker gira solo su Linux moderni. Victor insiste che il suo programma
 scritto in Py 3.4 deve girare anche sul VIC20...

ahahah ... in realtà mi accontento solo di win e linux tutte le altre
piattaforme sono un 'di più' che non fa male ma che se c'è bene se non c'è
amen

Per come la vedo io il mondo dei container e' una cosa che non si puo'
 ignorare, e sono contento che Docker abbia avuto successo perche' ha fatto
 uscire dalle caverne una sfilza di sysadmin intrappolati negli anni 70
 convinti che il paradigma UNIX sia perfetto cosi' (ma vaff...)

 come ho scritto qualche mail sopra il programma deve girare su server
dedicati ad altre applicazioni(raccoglie metriche e fa 'query') quindi non
posso isolare il programma, e poi almeno la metà dei server è win.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-06 Per discussione Daniele Varrazzo

On 2014-09-06 14:27, Balan Victor wrote:

Docker gira solo su Linux moderni. Victor insiste che il suo 
programma

scritto in Py 3.4 deve girare anche sul VIC20...


ahahah ... in realtà mi accontento solo di win e linux tutte le altre
piattaforme sono un 'di più' che non fa male ma che se c'è bene se 
non c'è

amen


Fa male.


-- Daniele
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-06 Per discussione Roberto De Ioris

 On 2014-09-06 12:36, Roberto De Ioris wrote:

 Ammetto che il problema delle dipendenze nel mondo UNIX e' da sempre
 una
 rottura di scatole (ma questo e' spesso colpa degli sviluppatori che
 non
 si curano di chi dovra' usare i loro prodotti, vedi rant di Linus
 sulle
 shared libraries)

 Link or it didn't happen :)



Eh hai ragione, ma mica mi ricordo che intervista era :)

Il succo era che si lamentava del fatto che molti sviluppatori di librerie
non si curassero di rompere le ABI (non le API) complicando la vita a
molti utilizzatori.

Me lo ricordo perche' prima di sentirlo non mi ero mai curato di rompere
le ABI :)


-- 
Roberto De Ioris
http://unbit.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-06 Per discussione Dario Bertini
Appoggio anch'io Ansible.

Io ed un mio amico fra l'altro ci siamo creati dei playbook per
configurare i nostri stessi desktop.

Ed anch'io sono dell'idea che la leadership di Ansible sia poco
illuminata. Il mio pet peeve è il loro setup.py, che è rotto (python
setup.py install fallisce in alcuni contesti) in quanto usano delle
feature di setuptools nel setup.py, ma si ostinano ad usare
distutils... fra le conseguenze, `setup.py develop` non funziona

ma a loro non gliene interessa e rifiutano le PR, tanto hanno il loro
hacking/env_setup script... perchè fare le cose nel modo corretto che
supporta il workflow di tutti gli altri, quando possiamo riscrivere il
codice del setup, in una versione monca?


https://github.com/ansible/ansible/pull/3829


2014-09-06 15:48 GMT+02:00 Roberto De Ioris robe...@unbit.it:

 On 2014-09-06 12:36, Roberto De Ioris wrote:

 Ammetto che il problema delle dipendenze nel mondo UNIX e' da sempre
 una
 rottura di scatole (ma questo e' spesso colpa degli sviluppatori che
 non
 si curano di chi dovra' usare i loro prodotti, vedi rant di Linus
 sulle
 shared libraries)

 Link or it didn't happen :)



 Eh hai ragione, ma mica mi ricordo che intervista era :)


Non era uno di questi 2 thread?
https://lkml.org/lkml/2012/9/30/108
https://gcc.gnu.org/ml/gcc/2001-02/msg00898.html
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-05 Per discussione enrico franchi
2014-09-04 23:49 GMT+01:00 Balan Victor balan.vict...@gmail.com:

 Diciamo cosi', se non hai fatto esplicitamente in modo che sia cosi' e non
 lo hai provato, ho seri dubbi in proposito.

 provato con 2.7 e 3.4

  Allora, il pacchetto autocontenuto e' molto piu' tipico del mondo
 windows che del mondo unix.

 Parliamoci... e' un pacchetto che hai scritto e vuoi distribuire o e' un
 pacchetto che devi deployare su suddette macchine *di persona*?

 deployare su server *di persona*, almeno al primo giro. Dal secondo giro
 in avanti il programma è in grado di auto-aggiornarsi.

 Il programma non gira su server dedicati quindi non posso pensare di usare
 roba tipo docker e non voglio nemmeno dipendere dal python installato di
 default sul sistema.


Uhm... poi ovviamente docker non e' che gira su tutta la roba che hai
descritto.
Chef pero' potresti usarlo...

Sono anche nervosetto all'idea dell'auto-aggiornamento. Specie perche'
dubito che faccia tutto quello che deve (e.g., avere metriche che allarmano
e fanno rollback della nuova versione in automatico... genericamente un
sistema del genere ha bisogno di un po' di infrastruttura non banale che se
avessi probabilmente risolverebbe anche il problema del deploy).


Non dipendere dal python di default e' ovviamente saggio. Boh... se non
avessi windows fra le scatole ti suggerirei veramente qualcosa di
chef/puppet based che si succhia in qualche modo il python (eventualmente
compilandoselo) e poi fa tutto quanto il resto. Non ho idea di come fare su
windows. Te lo ho gia' detto che con windows non ci tratto? ;)

-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-05 Per discussione Balan Victor

 Uhm... poi ovviamente docker non e' che gira su tutta la roba che hai
 descritto.
 Chef pero' potresti usarlo...

si lo so. Chef non lo conoscevo, adesso mi sto guardano un po di
documentazione


 Sono anche nervosetto all'idea dell'auto-aggiornamento. Specie perche'
 dubito che faccia tutto quello che deve (e.g., avere metriche che allarmano
 e fanno rollback della nuova versione in automatico... genericamente un
 sistema del genere ha bisogno di un po' di infrastruttura non banale che se
 avessi probabilmente risolverebbe anche il problema del deploy).

L'infrastruttura c'è già. Il programma in fase di starup si connette a un
server dedicato che fa da repository/configurator da cui scarica la
configurazione da usare, nella configurazione è contenuta anche la versione
del sorgente. Una volta che il programma ha la configurazione confronta la
versione sul repository con quella locale e se non corrispondono scarica il
nuovo sorgente lo sostituisce con quello attuale e poi si auto-restarta.
Quindi il problema di aggiornare gli sorgenti non c'è l'ho. Ho il problema
di aggiornare python. Avevo pensato di fare in pasto anche la gestione
della versione di python al programma però mi troverei di fronte a
compilazioni di sorgenti su mondo linux/unix e silent installer su mondo
windows ...


  Non dipendere dal python di default e' ovviamente saggio. Boh... se non
 avessi windows fra le scatole ti suggerirei veramente qualcosa di
 chef/puppet based che si succhia in qualche modo il python (eventualmente
 compilandoselo) e poi fa tutto quanto il resto. Non ho idea di come fare su
 windows. Te lo ho gia' detto che con windows non ci tratto? ;)

come scritto sopra mi sto studiando un po chef

per quello che riguarda windows avevo pensato anche a qualcosa come
portable python, ma non sono molto convinto.


-- 
Balan Victor
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-05 Per discussione Daniele Varrazzo

On 2014-09-05 18:14, Balan Victor wrote:


Uhm... poi ovviamente docker non e' che gira su tutta la roba che 
hai

descritto.
Chef pero' potresti usarlo...


si lo so. Chef non lo conoscevo, adesso mi sto guardano un po di
documentazione


Chef e' potente ma fossi in te userei Ansible. Ha questi vantaggi:

- non serve un server sulla macchina remota: basta ssh per usarlo
- non serve conoscere ruby per usarlo (non serve neanche conoscere 
Python per usarlo, basta yaml; per Chef invece devi scrivere roba Ruby)
- se ti serve hackarlo, e' scritto in Python, che si suppone tu 
conosca.


Io ci ho passato le ultime due settimane e sono state positive. Ci ho 
fatto in breve tempo cose piuttosto complesse, per risolvere alcuni 
problemi mi sono scritto un modulo di estensione mio (e un altro l'ho 
cherry-pickato dalla prossima versione ancora da rilasciare). Ho mandato 
patch upstream e mi sono gia' fatto mandare affanculo dagli 
sviluppatori, e tutto in pochi giorni!


Come detto sopra non serve essere uno sviluppatore per usarlo perche' 
hai solo da scrivere file umani con la descrizione dei passi da fare. 
Se poi dovesse essere necessario mettere le mani dentro al motore, 
meglio Python che Ruby (tra l'altro e' scritto in maniera abbastanza 
semplice).


-- Daniele
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-05 Per discussione Daniele Varrazzo

On 2014-09-05 19:04, Francesco Pischedda wrote:
Il giorno 05 settembre 2014 20:01, Daniele Varrazzo 
p...@develer.com ha

scritto:

Ho mandato patch upstream e mi sono gia' fatto mandare affanculo 
dagli

sviluppatori, e tutto in pochi giorni!



LOLissimo! :D

molto OT: a quanto sento non sei il primo che si lamenta 
dell'accoglienza

degli sviluppatori di ansible però il progetto è veramente valido


A mio avviso hanno fatto una cappellata con la priorita' delle 
variabili, ma ora e' troppo tardi per tornare indietro perche' ormai ci 
sono ettolitri di script che fanno affidamento sul comportamento 
attuale.


Il problema e' che loro non dicono si' abbiamo cappellato ma ormai e' 
cosi', che sarebbe giustificabilissimo. Loro dicono come vuoi fare tu 
non e' idiomatico. Insomma sbaglio io. Ok, ci puo' anche stare. Pero' 
googlando vedo che il problema ce l'hanno in molti. Quello che non puoi 
fare in ansible e' qualcosa tipo (scusate l'ansiblese per chi non lo 
mastica):


- un role webserver definisce un default, tipo http_port = 80
- un role firewall deve poter accedere alla variabile per aprire 
quella porta
- in un inventory vorrei avere la possibilita' di sovrascrivere questo 
default,

  ad esempio sull'installazione di test avere http_port=8080.

Questo non posso farlo: se usassi include_vars nel firewall la 
variabile diventa troppo potente e l'inventory non puo' sovrascriverla 
(un default puo' essere sovrascritto invece). Se introduco una 
dipendenza esplicita tra i ruoli il webserver mi viene installato anche 
sulla macchina del firewall, che puo' essere diversa.


La mia soluzione e' stata di aggiungere un comando include_defaults che 
funzioni come include_vars ma con le variabili overridabili. Il 
comportamento di ansible non cambia e se uno script non usa 
include_defaults tutto resta come prima.


La loro risposta e' che i default condivisi vanno scritti invece... in 
un file globale (tipo group_vars/all). E che la nuova regola 
sottoporrebbe gli utenti ad un carico cognitivo eccessivo.


Wat™?

Insomma nei doc scrivono le variabili di inventory sono potentissime 
ed e' falso, puoi solo overridarci i default, se una cosa la tiri dentro 
con include_vars diventa semi-immortale. Dicono i role sono un modo di 
rendere modulare un playbook e poi ti serve un file globale per passare 
un default tra due role... A me sembra il caso di invocare Upton 
Sinclair (it is difficult to get a man to understand something, when his 
salary depends upon his not understanding it) e tirare avanti.


Per fortuna tirare avanti si fa bene, perche' anche se non hanno 
accettato il nuovo comando upstream e' possibile metterlo nel proprio 
playbook e Ansible lo usa senza dar fastidio a nessuno. Il che mi sembra 
grandioso. A chi interessa include_defaults e' disponibile a 
https://gist.github.com/dvarrazzo/7418a89b7278ff69267c.


Quindi si', confermo l'impressione: gli sviluppatori di Ansible sono 
*molto* opinionati. Ma il progetto e' veramente ben fatto.


-- Daniele

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-05 Per discussione Francesco Pischedda
Il giorno 05 settembre 2014 20:34, Daniele Varrazzo p...@develer.com ha
scritto:

 A chi interessa include_defaults e' disponibile a 
 https://gist.github.com/dvarrazzo/7418a89b7278ff69267c.


ti ringrazio per l'analisi del problema e per aver condiviso con noi la
soluzione, sono sicuro che mi sarà utile in futuro


-- 
Shipping is a feature. A really important feature. Your product must have
it.

Rendete ogni cosa il più semplice possibile, ma non di più (Albert
Einstein)

You are what you choose today, not what you've chosen before

Unix IS user friendly. It's just selective about who its friend are
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-05 Per discussione Balan Victor

 Chef e' potente ma fossi in te userei Ansible. Ha questi vantaggi:

 mmm ... pricing... mmm free trial ... mmm  in ogni caso mi guardo anche
questo


 - non serve un server sulla macchina remota: basta ssh per usarlo
 - non serve conoscere ruby per usarlo (non serve neanche conoscere Python
 per usarlo, basta yaml; per Chef invece devi scrivere roba Ruby)
 - se ti serve hackarlo, e' scritto in Python, che si suppone tu conosca.

sembra un fabric un po più potente .. o sbaglio?


 e mi sono gia' fatto mandare affanculo dagli sviluppatori, e tutto in
 pochi giorni

ahahahahah :)


Tuttavia il mio problema non è il deploy(e mi rendo conto di aver anche
sbagliato il titolo). Il programma fa 'autodeploy'(dopo la prima
installazione. Per la prima installazione mi potrei arrangiare con fabric x
linux e psexec x win). Una volta che il programma è presente sul server
remoto potrei renderlo in grado di aggiornare lo stesso python o al limite
torno ad arrangiarmi con fabric/psexec.
Il mio dubbio era più su dove installo python? Io pensavo più a qualcosa
del tipo /mio/path o C:\mio\path dove dentro ci sono due directory pythonXX
e mioprogramma. E' una buona prassi? potrei avere dei problemi?. Non voglio
nemmeno 'inquinare' la variabile PATH.

X win usare portable python potrebbe essere una buona idea?
Activepython l'avete mai usato?



-- 
Balan Victor
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-05 Per discussione Daniele Varrazzo

On 2014-09-06 01:37, Balan Victor wrote:


Chef e' potente ma fossi in te userei Ansible. Ha questi vantaggi:


mmm ... pricing... mmm free trial ... mmm  in ogni caso mi guardo 
anche

questo


Il programma e' gratis e open. A pagamento hanno dei servizi di 
centralizzazione, inventari dinamici, cose che neanche ho capito cosa 
sono onestamente.



- non serve un server sulla macchina remota: basta ssh per usarlo
- non serve conoscere ruby per usarlo (non serve neanche conoscere 
Python

per usarlo, basta yaml; per Chef invece devi scrivere roba Ruby)
- se ti serve hackarlo, e' scritto in Python, che si suppone tu 
conosca.


sembra un fabric un po più potente .. o sbaglio?


In un certo senso sì: come fabric si connette via ssh ed esegue 
comandi. Però non è imperativo, ma dichiarativo. Ovvero, tu hai un task 
che dice sulla macchina deve esserci un utente che si chiama 'pippo' e 
appartiene al gruppo 'devs'. Oppure deve esserci la directory 
/foo/bar/baz proprietario root e permessi 755. apache deve essere 
installato almeno versione 2.2 ecc. Tu dichiari cosa vuoi ed ansible fa 
la differenza. Ovvero: va sulla macchina, l'utente c'è? Stapposto. La 
directory c'è? Ha permessi 700? Cambio i permessi. Apache c'è? No? 
apt-get install... Eccetera. Tu descrivi lo stato finale e il programma 
si incarica di verificare che quello stato sia realizzato, oppure se non 
c'è fa in modo di raggiungerlo.


Fabric invece è puramente imperativo: tu gli dici di eseguire apt-get 
install apache, poi se questo fa qualcosa oppure niente perché apache 
c'è già non sono fatti di fabric. Ma se fai useradd e l'utente c'è già 
probabilmente il comando ti darà un errore che dovrai gestire, e se 
della directory vuoi cambiare i permessi devi gestire tipo due casi 
diversi: se non c'è la devi creare, se c'è devi fare chmod. Certo puoi 
provare a rendere idempotenti anche questi comandi (tipo usando mkdir -p 
che non dà errore se la dir c'è già). Ma in generale se il comando che 
esegui non è idempotente allora devi fare prima un controllo delle 
precondizioni.


E poi sopra questo c'è tutta la gestione delle variabili e la 
generazione di file di configurazione da template. In effetti ansible lo 
stiamo introducendo su un sistema web piuttosto complicato il cui deploy 
è evoluto con:


1) si fa tutto a mano (ssh mollybox, git checkout, ah, cazz, qui c'è 
una libreria vecchia, pip install sqlalchemy. No a-ri-cazz, il frontend 
e il backend vogliono due versioni diverse... - voce dall'altra parte 
dell'ufficio: ehi, come mai molly è giù?)


2) virtualenv, requirements.txt e fabric. Questo sistema almeno il 
mondo python. L'aggiornamento diventa tipo fab up, che fa il git pull, 
pip install -U -r requirements, stop, start.


Peccato che mentre facevamo questo al sistema si sono aggiunte un paio 
di istanze di redis, un rabbitmq e pure morbid perchè non ci facciamo 
mancare niente, e poi haproxy e dentro redis ci buttiamo roba fatta con 
capnproto. A coordinare questa roba virtualenv non basta. La macchina 
era piuttosto vecchia e lo sviluppatore che aggiungeva questa roba si 
doveva compilare anche il compilatore per compilare pycapnp e non so che 
versione di redis con dentro un interprete lua... Mi sono distratto un 
attimo (sono stato via dal lavoro qualche mese) e quando sono tornato si 
era anche scritto un sistema per


3) generare i file di configurazione da template (per qualche motivo 
gli era cresciuto mentre nel sistema ci buttava dentro anche 
supervisord). Per fortuna non gli è uscito benissimo e alcuni template 
hanno bisogno di un template di partenza, o qualcosa del genere di cui 
mi sono perso volentieri i dettagli.


Insomma, per fortuna la settimana scorsa è andato in ferie lui, 
altrimenti mi riscriveva ansible dentro molly :) Quando si è distratto 
un attimo ho ansibolato tutto, ovvero a) installazione dei package e 
preparazione del sistema, b) installazione del nostro codice e librerie 
python c) generazione dei file di configurazione. Quindi ora in quei 
playbook di ansible c'è già quasi tutta la conoscenza del sistema 
(quando ha migrato la macchina vecchia alla nuova dice che c'ha messo 
una settimana a sistemare tutto, a forza di tentativi ed errori, 
ovviamente. Io ho fatto gli stessi errori, ma almeno quello che ho fatto 
adesso è ripetibile e in 10 minuti parte da una VM vuota a un sistema 
funzionante). Il sistema di template è più completo, per cui riesce a 
gestire le varie casistiche che ci dobbiamo smazzare (per esempio che su 
una macchina girano 3 istanze piccole del sito su 3 ip diversi ma 
quell'altro sito è grande quindi è diviso su tre macchine, frontend, 
backend, database, con 8 nodi frontend, 2 backend...) che a coprirle 
tutte con scriptini fatti a mano un po' gli saranno tremate le vene e 
probabilmente qualche scorciatoia l'ha presa.


...dov'eravamo? Ah sì: fabric. Sì, ansible gli somiglia, ma ci devi 
aggiungere sopra la gestione delle variabili e la gestione dei template 
di 

Re: [Python] distribuire programmi python

2014-09-04 Per discussione enrico franchi
2014-09-04 13:51 GMT+01:00 Balan Victor balan.vict...@gmail.com:

 ho un programma scritto in python che devo far girare su server
 linux/aix/hp-ux/unix/solaris e windows. Il programma è scritto per python
 3.4 ma dovrebbe funzionare con tutte le altre versioni precedenti.


Diciamo cosi', se non hai fatto esplicitamente in modo che sia cosi' e non
lo hai provato, ho seri dubbi in proposito.



 Qual'è il miglior modo di farlo girare su tutti questi sistemi ?


 Usare tool come py2exe, pyinstaller o simili?
 Installare python su ogni sistema e poi far girare il
 programma(/path/to/python mioprogramma.py) ?
 Usare ActivePython?


Allora, il pacchetto autocontenuto e' molto piu' tipico del mondo windows
che del mondo unix.
Parliamoci... e' un pacchetto che hai scritto e vuoi distribuire o e' un
pacchetto che devi deployare su suddette macchine *di persona*?

Poi sul discorso deploy si dovrebbe aprire un lungo discorso (puppet/chef +
docker convocati...).

Se invece hai scritto il tuo pacchetto e vuoi che altri lo usino:
- pip e' probabilmente la cosa piu' comoda. Se non hai codice compilato fra
le scatole.
- La gente di Unix si aspetta il sorgente, verosimilmente pip, e se proprio
vuoi strafare pacchetti per alcune distribuzioni (che e' comunque non
inusuale che se prende trazione qualcuno li faccia per te)
- La gente di Windows... boh. Immagino che se sono sviluppatori o
sistemisti siano contenti con pip. Se no direi che *a loro* interessa un
qualche installer. Ma non ti so dire, non ci tratto.

Qualcuno ha mai dovuto distribuire programmi python su ambienti diversi?
 Come avete fatto ?


Io pero' non tratto con Windows, come dicevo.

-- 
.
..: -enrico-
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] distribuire programmi python

2014-09-04 Per discussione Balan Victor

 Diciamo cosi', se non hai fatto esplicitamente in modo che sia cosi' e non
 lo hai provato, ho seri dubbi in proposito.

provato con 2.7 e 3.4

Allora, il pacchetto autocontenuto e' molto piu' tipico del mondo windows
 che del mondo unix.

 Parliamoci... e' un pacchetto che hai scritto e vuoi distribuire o e' un
 pacchetto che devi deployare su suddette macchine *di persona*?

deployare su server *di persona*, almeno al primo giro. Dal secondo giro in
avanti il programma è in grado di auto-aggiornarsi.

Il programma non gira su server dedicati quindi non posso pensare di usare
roba tipo docker e non voglio nemmeno dipendere dal python installato di
default sul sistema.

-- 
Balan Victor
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python