GNU/Linux >> Linux の 問題 >  >> Linux

v2.11 の非推奨による ansible ループの変更

これと同じ質問がありましたが、同じ状態のパッケージの各セットは、独自のブロックにする必要があるようです。 Ansible のドキュメントを見ると、例として各状態のブロックがあるので、その例を取り上げ、状態に基づいてパッケージを分割し、ignacio の例に従ってみたら、完全に機能しました。

したがって、基本的には次のようになります

- 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

それが理にかなっており、役立つことを願っています!


YAML スタイルで配列をコーディングして、読みやすくすることができます:

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

これとまったく同じ問題に遭遇しましたが、アプリのリストがはるかに長く、vars ファイルに保持されていました。これは、その問題を回避するために実装したコードです。アプリのリストは「apps」変数に配置され、Ansible はそれを反復処理します。

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

インストールするアプリのリストを保持するファイルは、このタスクのロール ディレクトリ (つまり、「共通」ロール ディレクトリ) の Defaults ディレクトリにあります。

roles
    - common
      - Defaults
        - main.yml

Linux
  1. ログ名:ログイン名がありませんか?

  2. ラックスペースネームサーバー

  3. youtube-dl経由でダウンロード中にビデオの名前を変更する

  1. Bashでループを作成する方法

  2. ループ内のBash変数名を変更してから、変更した名前を展開する方法は?

  3. ネストされた for ループ

  1. Linuxの権限の変更

  2. Linux でユーザー名を変更する

  3. 最初の再起動後、MD デバイス名が HOSTNAME:を含むように変更されます。一貫した名前を取得するにはどうすればよいですか?