[ansible] geen python op remote host

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Yarisken
  • Registratie: Augustus 2010
  • Laatst online: 22:34
Mijn vraag

Ik wil via ansible een bash script kopieren en dan uitvoeren. Probleem is dat de targets geen python hebben

Relevante software en hardware die ik gebruik
ansible

Wat ik al gevonden of geprobeerd heb
Je hebt de mogelijkheid om via de raw module en local action dit uit te voeren. Echter krijg ik dit niet aan de praat.

Dus bv local_action: command scp xxx :/xxx werkt niet.
Als alternatief dacht ik misschien via raw: touch file de file aan te maken en dan een echo te doen van het script om het zo te bewaren.

Iemand een ander idee ?

Beste antwoord (via Yarisken op 04-06-2019 16:45)


  • marti-n
  • Registratie: April 2009
  • Laatst online: 22:00
Als je local_action gebruikt dan draai je dat commando effectief op de host waar je ansible op draait, niet op het AP waar je naartoe verbind.

Ik denk (Heb zo niks bij de hand -zonder- python) dat dit wel zou moeten werken:
code:
1
2
3
4
5
6
7
8
- name: Cat script
  raw: |
    cat << EOF > script.sh
    inhoud
    van
    het
    script
    EOF


Eventueel kan je nog kijken om het script in een variabele te stoppen om alles zo wat leesbaarder te maken en misschien IPV raw kan je shell gebruiken.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Waarmee wordt het target uitgerold? Kun je daar in de userdata geen installatie van Python meegeven?
Yarisken schreef op maandag 3 juni 2019 @ 22:20:
[...] Je hebt de mogelijkheid om via de raw module en local action dit uit te voeren. Echter krijg ik dit niet aan de praat.

Dus bv local_action: command scp xxx :/xxx werkt niet.
En kun je de schuingedrukte stukken ook even verheffen boven het "Hij doet het niet!! :'( "-niveau? :P

[ Voor 67% gewijzigd door Room42 op 03-06-2019 22:34 ]

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • Yarisken
  • Registratie: Augustus 2010
  • Laatst online: 22:34
Room42 schreef op maandag 3 juni 2019 @ 22:30:
Waarmee wordt het target uitgerold? Kun je daar in de userdata geen installatie van Python meegeven?

[...]

En kun je de schuingedrukte stukken ook even verheffen boven het "Hij doet het niet!! :'( "-niveau? :P
targets zijn access points en daar kan geen python op.

Een mogelijkheid die ik gevonden heb is bv

raw: touch script.sh
local_action: cat <<EOT >> script.sh
line 1
line 2
line3
EOT

Zo kan ik de file aanmaken en dan opvullen met de code.
Kan het morgen wel pas testen op het werk.

Acties:
  • 0 Henk 'm!

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 27-09 22:07

MAX3400

XBL: OctagonQontrol

Yarisken schreef op maandag 3 juni 2019 @ 22:20:
Probleem is dat de targets geen python hebben
Was heel Ansible daar niet de basis van; Python is een vereiste om "de volgende Ansible aktie" te kunnen uitvoeren.

Tja, wat is een alternatief? SSH-sessie opzetten naar een target en een bash-script over de lijn gooien en dan uitvoeren? Maar ja, kans dat je dat weer niet kan automatiseren tenzij je "zomaar" alle signatures van remote hosts laat accepteren.

Ik roep ook maar wat; het klinkt me een beetje te vrijblijvend in de oren wat je aan het doen bent.

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Acties:
  • 0 Henk 'm!

  • Yarisken
  • Registratie: Augustus 2010
  • Laatst online: 22:34
MAX3400 schreef op maandag 3 juni 2019 @ 22:43:
[...]

Was heel Ansible daar niet de basis van; Python is een vereiste om "de volgende Ansible aktie" te kunnen uitvoeren.

Tja, wat is een alternatief? SSH-sessie opzetten naar een target en een bash-script over de lijn gooien en dan uitvoeren? Maar ja, kans dat je dat weer niet kan automatiseren tenzij je "zomaar" alle signatures van remote hosts laat accepteren.

Ik roep ook maar wat; het klinkt me een beetje te vrijblijvend in de oren wat je aan het doen bent.
Idd, nu gebruiken we gitlab in combinatie met ansible / awx en dit werkt super. Tot nu waren onze targets allemaal linux based met python.
Voor een groot project zitten we nu met een 2000-tal access points die een nieuwe config nodig hebben.
Dus dit is een copy van een config file en een script en runnen.

We kunnen dit ook idd via een ssh verbinding doen. Voordeel om ansible te gebruiken is awx. Zo kunnen we makkelijk dit werk delegeren naar een ander team. Enige wat zij moeten doen is de inventory opvullen in gitlab en dan via awx webinterface een job starten.

Er is niet zo heel veel over te vinden omdat ansible ook gebruikt wordt met python enabled devices. Maar ik zie dit in de toekomst ook wel shiften naar netwerk en iot devices.

Acties:
  • 0 Henk 'm!

  • webfreakz.nl
  • Registratie: November 2003
  • Laatst online: 21-08 15:56

webfreakz.nl

el-nul-zet-é-er

Yarisken schreef op maandag 3 juni 2019 @ 23:13:
[...]
Er is niet zo heel veel over te vinden omdat ansible ook gebruikt wordt met python enabled devices. Maar ik zie dit in de toekomst ook wel shiften naar netwerk en iot devices.
Er zijn al Ansible modules om met netwerk apparatuur aan de slag te gaan. Die zijn er onder andere voor Juniper JUNOS en Cisco ACI en IOS.

Wat voor merk accesspoints gebruik je?

Misschien kan je zelf een Ansible module schrijven om exact te doen wat jij wilt.

Eventueel kan je met de tool Expect aan de slag, zie het example bij onderstaande documentatie:

https://docs.ansible.com/...modules/shell_module.html

"You smell that, son? What sir? Napalm, I love the smell of napalm in the mornin!" || Children of Bodom fan!


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • marti-n
  • Registratie: April 2009
  • Laatst online: 22:00
Als je local_action gebruikt dan draai je dat commando effectief op de host waar je ansible op draait, niet op het AP waar je naartoe verbind.

Ik denk (Heb zo niks bij de hand -zonder- python) dat dit wel zou moeten werken:
code:
1
2
3
4
5
6
7
8
- name: Cat script
  raw: |
    cat << EOF > script.sh
    inhoud
    van
    het
    script
    EOF


Eventueel kan je nog kijken om het script in een variabele te stoppen om alles zo wat leesbaarder te maken en misschien IPV raw kan je shell gebruiken.

Acties:
  • 0 Henk 'm!

  • Yarisken
  • Registratie: Augustus 2010
  • Laatst online: 22:34
marti-n schreef op dinsdag 4 juni 2019 @ 12:49:
Als je local_action gebruikt dan draai je dat commando effectief op de host waar je ansible op draait, niet op het AP waar je naartoe verbind.

Ik denk (Heb zo niks bij de hand -zonder- python) dat dit wel zou moeten werken:
code:
1
2
3
4
5
6
7
8
- name: Cat script
  raw: |
    cat << EOF > script.sh
    inhoud
    van
    het
    script
    EOF


Eventueel kan je nog kijken om het script in een variabele te stoppen om alles zo wat leesbaarder te maken en misschien IPV raw kan je shell gebruiken.
Dit lijkt me inderdaad een mogelijke oplossing. Ik ga het testen.
Bedankt allemaal voor de input

Acties:
  • 0 Henk 'm!

  • Ed Vertijsment
  • Registratie: Juli 2014
  • Laatst online: 05-10 09:29
Dit heb ik in mijn ansible site.yml staan, is dit niet wat je nodig hebt?

code:
1
2
3
4
5
6
7
8
9
10
---
# file: site.yml
- hosts: common
  gather_facts: False
  pre_tasks:
      - name: 'install python'
        raw: sudo apt-get -y install python
  roles:
    - common
   (...)

Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Ed Vertijsment schreef op woensdag 5 juni 2019 @ 14:02:
Dit heb ik in mijn ansible site.yml staan, is dit niet wat je nodig hebt?

[...]
Zie Yarisken in "[ansible] geen python op remote host", het zijn access points. 99,999% kans dat die geen package manager draaien ;)

[ Voor 21% gewijzigd door Room42 op 05-06-2019 14:19 ]

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • Ed Vertijsment
  • Registratie: Juli 2014
  • Laatst online: 05-10 09:29
Room42 schreef op woensdag 5 juni 2019 @ 14:19:
[...]

Zie Yarisken in "[ansible] geen python op remote host", het zijn access points. 99,999% kans dat die geen package manager draaien ;)
Ah, overeen gekeken.

Acties:
  • 0 Henk 'm!

  • Yarisken
  • Registratie: Augustus 2010
  • Laatst online: 22:34
Idd geen packet manager maar Marti-n zijn oplossing werkt perfect. Ik maak eerst de file aan via raw: 'touch xx.sh'. dan pipe ik de content erin en dan een chmod +x via raw en klaar. Thx Marti-n. Topic mag dicht.
Pagina: 1