Întrebări cu tag ['ansible']
Ansible este o platformă software open-source pentru configurarea și gestionarea computerelor. Combină implementarea software-ului cu mai multe noduri, executarea sarcinilor ad-hoc și gestionarea configurației.
Am întâlnit un comportament puțin ciudat pe care nu îl înțeleg pe deplin și până acum nu am reușit să găsesc ceva util în documentație.
Când aveți un „bloc:” cu o condiție „când”, această condiție de pe blocul în sine pare să-și facă loc în sarcinile incluse, de ce?
Exemplu:
#playbook.yml
- gazde: localhost
sarcini:
- bloc:
- nume: Includeți lucruri
...

Hi i run a few different linux distributions and architectures and have some from server so slow that they update in KB/s for example with ubuntu on ARM. I'm learning up automation, how would i go about
- creating a local only linux mirror/cache
- updating that mirror/cache regularly automatically
- automating the router to wake up the file server to update that cache and shutting it down when finished

Încerc să configurez dinamic mai multe servere NFS în sistemul meu generând fișierele lor /etc/exports folosind Ansible. Sper să reușesc să fac asta cu un șablon jinja2. Este șablonul jinja2 pe care nu-l pot da seama pe baza listei mele de exporturi.
Am următoarele variabile definite în rolul meu nfs:
site_nfs_servers: ['ansibletarget1', 'ansibletarget2']
exporturi:
- server: „ansible ...

As per today, I have the following role, this role simulate a basic installation of the product:
- name: Install Server.msi primary_appserver
ansible.windows.win_package:
path: C:\product.msi
log_path: C:\InstallProduct.log
arguments:
ADDLOCAL=DB,Agent
state: present
become: true
become_method: runas
vars:
ansible_become_user: "{{ ansible_user }}"
ansible_become_p ...
Încerc să extrag mai multe atribute dintr-o sarcină utilă complexă returnată de la un apel API în timp ce resping membrii care au o anumită valoare în câmpul „nume”. Luați în considerare următoarea sarcină utilă:
{
„npod_volumes”: {
„schimbat”: fals,
„eșuat”: fals,
„volume”: [
{
„accessible_by_host_uuids”: [
...

Am un produs pe care îl pot instala mai întâi, apoi îl pot actualiza - adică să adaug mai multe caracteristici produsului meu de bază
O fac executând prima dată MSI, apoi mergând la Adăugare \ Eliminare programe și când selectați produsul, puteți face clic pe „Schimbare” și va apărea din nou expertul de instalare, permițându-vă să selectați și să instalați caracteristi ...

Am una dintre acele situații în care aș putea scrie un rol cu trei sarcini pentru a căuta, sorta și extrage un set de valori precum:
- nume: Căutați instanțe AMI disponibile
amazon.aws.ec2_ami_info:
filtre:...
înregistrare: _ami_info
- nume: sortați după data creării pentru a primi cele mai recente
ansible.builtin.set_fact:
_amis: „{{ _ami_info.images | s ...
In our AWX environment we have an Ansible role "Nessus Applicaiton" for RHEL 7/RHEL 8. It deploys the Nessus agent application just fine for new RHEL 7 servers, but not for RHEL 8.5 servers as it seems it cannot connect via SSH port 22.
We have several other templates that allows AWX to connect as root
to the RHEL 8 target hosts, and deploy other roles and templates without issues.
The root public ...
Am sarcina de mai jos și nu reușesc să adaug bucla pentru variabila matrice. ShopID este definit ca o matrice în interiorul group_vars. Scopul meu este să apelez fiecare variabilă una câte una.
- nume: Creați directoare cu permisiunea necesară
fişier:
cale: „{{ item.dest }}”
mod: „{{item.mode}}”
proprietar: „{{ item.owner }}”
grup: „{{ item.group }}”
...
Încerc să creez și să actualizez permisiunea de director pe mașina mea Linux utilizând sarcina ansible de mai jos, dar nu schimbă dreptul de proprietate:
de exemplu: director /home/xyz/xyz/{{ IDM }}
și /home/{{ IDM }}
la care se revine permisiunea de proprietate {{ IDM }}:{{ IDM }}
- nume: creați directorul cu buclă
fişier:
cale: „{{ item.dest }}”
mod: „{{item.mode}}”
...
Caietul meu de joc ansible include mai multe roluri, de exemplu porumbar
, postfix
, postgres
și rspamd
. Toate necesită certificate SSL, care sunt generate de certbot
(permite criptare) rol. Din acest motiv și pentru o manipulare mai ușoară, toate rolurile urmează aceeași structură de date pentru a defini certificate SSL cu cerințe diferite:
certbot_domains: []
dovecot_domains:
- nume: imap1.e ...

Am nevoie de o variabilă cu toate elementele goale prezente în _nume listă. Am incercat asta:
spații libere: „{{ _names|select('căutare', '') | listă }}"
Dar nu pare să funcționeze
iata lista:
„_nume”:
[
"",
„ABC”,
"",
""
]
Pentru a da un context, am nevoie de această variabilă pentru a număra elementele goale și a o compara.
...
Am nevoie de un mesaj de eșec atunci când o sarcină a eșuat pe toate gazdele. De exemplu:
- ios_facts:
gather_subset: min
failed_when: „{{ ansible_net_hostname }} conține 123”
unde toate numele de gazdă conțin 123, așa că declanșează o sarcină eșuată
- eșec:
msg: toate numele de gazdă conțin 123
când: xxxxx

Am menționat mai jos 2 liste
foo: „1”, „2”, „3”,
bar: 'A', 'b', 'c',
Vreau să combin valorile din lista 2 și să obțin rezultatul de mai jos în ansible. Am încercat să folosesc atributul hărții, dar am primit o eroare în timp ce folosim 2 atribute hărții împreună.
rezultat: „1_a” „2_b” „3_c”
Am un playbook asemănător cu cel de mai jos care folosește baza_acl variabil. Să ne prefacem base_acl: "default_acl.j2. Am o gazdă pe care vreau să o folosesc diferită baza_acl valoare pentru. M-am uitat peste prioritate ansible docs și nu văd o altă modalitate de a face asta decât utilizarea --extra-vars pe linia de comandă, ceea ce nu vreau să fac.
Am încercat să definesc baza_acl î ...
Încerc să folosesc ansible pentru a implementa fișiere de configurare pe sute de mașini în care diferite mașini vor avea mai multe iterații ale fragmentelor de configurare specifice. În mod specific, folosesc analizatorul de jurnal promtail și diferite mașini vor avea locații diferite ale fișierelor de jurnal pentru a le analiza cu etichete diferite. În mod ideal, vreau să păstrez configu ...
În loc să folosesc un certificat SSL autosemnat (neîncredere), vreau să emit certificat de la o sursă de încredere, în acest caz, de la o instanță FreeIPA (sunt nou la FreeIPA).
Cum se poate face acest lucru?
Este necesar Kerberos pentru asta?

Încerc să fac acest manual pentru o jumătate de zi. Folosesc modulul stat pentru a verifica sha1sum al fișierului și, dacă nu este egal cu cel de-al doilea fișier, ar trebui să înlocuiască fișierul corect. Dar în timpul înregistrării unor variabile, rezultatul spune că variabilele sunt nedefinite Ce fac greșit ?
---
- gazde: toate
remote_user: root
sarcini:
- nume: obț ...
Încerc să creez fișiere de configurare bazate pe yaml. Totul funcționează, cu excepția faptului că liniile de după o buclă sunt indentate dintr-un motiv oarecare.
Deci, când am asta...
- job_name: {{ inventory_hostname }}
pipeline_stages:
- regex:
expresie: {{ pipeline_regex }}
- etichete:
{% pentru etichete în pipeline_vars %}
{{ etichete }}:
{% endfor ...
Sunt destul de nou în ansible, așa că poate că acest lucru este ușor de făcut.
Avem un număr mare de dispozitive care au o convenție de denumire consecventă între diferite medii.
app0[01:25].dev.domain.com
aplicație[01:25].qa.domain.com
app[01:25].uat.domain.com
aplicație[01:25].prod.domain.com
Diverse dispozitive din interiorul acestor servere de aplicații au roluri specifice, cum ar fi se ...

Am o variabilă care conține json:
{
„ansible_facts”: {
„ansible_network_resources”: {
„interfețe”: [
{
"descriere": "*** - LOCAL A - ***",
„activat”: adevărat,
"name": "FastEthernet0"
},
{
"descriere": "*** - LOCAL B - * ...
Obținerea unei stări de eroare mare a unei excepții a variabilei ansible nu a fost găsită
ansible.errors.AnsibleUndefinedVariable: „facter_ipaddress_eth1”
în timp ce eu rulez o carte de joc ansible.
valoarea care se stabilește aici și în alte locuri.
https://github.com/vfarcic/docker-swarm-networking/blob/master/ansible/group_vars/all
SARCINA [docker: fișierele Debian sunt prezente] ****** ...
Execut printr-un turn ansible următorul cod:
comanda:
chdir={{ __iim_install_location }}/eclipse/tools/
"su - {{ __was_user }} -c {{ __iim_install_location }}/eclipse/tools/imcl install {{ __product_id }} -acceptLicense -repositories {{ __tmp_dir }}/{{ item.file_name }} -install_directory {_}_install_directory } -log {{ __log_file }}"
înregistrare: cout
with_items: „{{ __was_this_fi ...
Încercarea de a găsi cea mai bună modalitate de a face ansible să-și facă magia în containere. Mă gândeam să folosesc ssh în fiecare container, dar apoi depinde de server.sau trebuie să vin prin proxy, care pare a fi mai mult decât ar trebui să fie necesar. Din nou, deja creez containere, șterg etc... Vorbesc despre rularea comenzilor în interiorul containerului cu ansible, nu prin lxc ...
Am o configurație de server ansible și diferit pentru LXD. Poate cineva să-mi ofere pluginul care poate fi folosit pentru a face lucruri în interiorul containerului LXD prin ansible, cum ar fi instalarea nginx sau eliminarea utilizatorului ubuntu implicit.
Versiunea Lxd: 4 (ubuntu 20.04 LTS) Versiunea Ansible: 5(ansible-core 2.12) --> ubuntu 20.04 LTS
Sarcinile mele>main.yml arată așa.
Aș dori să stochez conținutul unui pas al conductei mele Azure într-o variabilă:
pași:
- sarcină: UsePythonVersion@0
intrari:
versionSpec: „$(python.version)”
displayName: „Utilizați Python $(python.version)”
- script: |
ecou „bună”
displayName: „Salut”
- nume: Salvați rezultatul în variabilă
shell: ecou 'hi'
înregistrare: salut
Dar ceea ce prime ...
Încerc să încarc un fișier zip la o adresă URL folosind Ansible pe o mașină cu Windows 10. În prezent încerc ceva de genul de mai jos:
- nume: obțineți conținutul fișierului zip pentru încărcare
slurp:
src: 'bundle.zip'
înregistrare: zip_contents
no_log: adevărat
- nume: Încărcați ZIP
ansible.windows.win_uri:
url_method: „ ...

Folosim Ansible Tower 3.7.4 care are Ansible 2.9.13, avem instalată și colecția ansible „theforeman”.
Manualul meu de testare este
---
- nume: Roluri de maistru de testare
gazde: localhost
deveni: fals
gather_facts: false
sarcini:
- add_host:
nume: victimă.local
grup: my_inv
- nume: Roluri de maistru de testare
gazde: my_inv
deveni: fals
gather_facts ...
Încerc să rulez o interogare simplă pe multe servere. Știu 100% că fișierul și directorul în cauză există.
Pot face comenzi simple, cum ar fi ls
, pwd
, cine sunt
, etc, și pot rula sqlite
comanda pe gazda la distanță în sine.
Sarcina din cartea de joc:
- nume: Efectuați o instrucțiune SELECT de testare
deveni: da
devenit_utilizator: root
comandă: sqlite3 /usr/local/share/sqlite/dbf ...

Trebuie să efectuez unele automatizări de rețea în infrastructura mea folosind ansible.
Când încerc să folosesc modulul ansible pentru comutatoarele icx, se pare că se comportă prost.
Playbook pe care l-am folosit
- nume: ICX switch testing
gazde: test-switch
gather_facts: nu
vars:
ansible_user: nume de utilizator
ansible_password: parola
ansible_connection=ansible.netcommon ...