GNU/Linux >> Znalost Linux >  >> Linux

Změna ansible smyčky kvůli ukončení podpory v2.11

Měl jsem stejnou otázku a vypadá to, že každá sada balíčků se stejnými stavy bude muset být svým vlastním blokem. Když se podíváme na dokumentaci Ansible, mají blok pro každý stav jako příklad, takže jsem vzal tento příklad, rozřezal své balíčky na základě jejich stavů a ​​následoval příklad ignacio a nakonec to fungovalo perfektně.

Takže v podstatě by to vypadalo takto

- name: Install packages required for log-deployment
  apt:
    name:
      - gcc
      - python-devel
    state: latest
    autoclean: yes

- name: Install packages required for log-deployment
  apt:
    name:
      - python
      - mariadb
      - mysql-devel
    state: installed

Doufám, že to dává smysl a pomáhá to!


Pole můžete kódovat ve stylu YAML, aby bylo čitelnější:

- name: Install utility packages common to all hosts
  apt:
    name:
      - aptitude
      - jq
      - curl
      - git-core
      - at
    state: present
    autoclean: yes

Narazil jsem na přesně stejný problém, ale s mnohem delším seznamem aplikací uložených v souboru vars. Toto je kód, který jsem implementoval, abych tento problém obešel. Seznam aplikací je umístěn do proměnné "apps" a Ansible přes to iteruje.

- name: Install default applications
  apt:
    name: "{{item}}"
    state: latest
  loop: "{{ apps }}"
  when: ansible_distribution == 'Ubuntu' or ansible_distribution == 'Debian'
  tags:
     - instapps

Soubor obsahující seznam aplikací k instalaci je v adresáři Defaults v adresáři rolí pro tuto úlohu – jmenovitě v adresáři „common“ role.

roles
    - common
      - Defaults
        - main.yml

Linux
  1. Jak změnit název proměnné Bash ve smyčce a poté rozbalit změněný název?

  2. Přihlašovací jméno:Žádné přihlašovací jméno?

  3. Změna oprávnění pro Linux

  1. Jak napsat smyčku v Bash

  2. Změňte uživatelské jméno v systému Linux

  3. Vnořená smyčka for

  1. Deconstructing ansible playbook

  2. Pochopení YAML pro Ansible

  3. Rackspace jmenné servery