여러 개의 패키지를 사용하여 Ansible

0

질문

내가 하려고 여러 개의 패키지를 사용하여 ansible-playbook 하지만 그것은 작동하지 않는 나와.

아래의 코드를 사용하여 보유하고 첫 번째 패키지는 다음 un-그것을 다음 두 번째 패키지

여기에 내 코드

- name: Prevent packages from being upgraded
  dpkg_selections:
    name: "{{ item }}"
    selection: hold
  with_items:
    - postgresql
    - docker

여기에는 출력에서 server side 동안 실행되는 코드 enter image description here 첫 번째 라인을 실행하기 전에 두 번째 라인은 출력을 때 첫 번째 패키지를 개최 세 번째 줄을 때 두 번째 패키지로 개최 되었다며 그것은다.

난 이해하지 못하는 이유는 동작은 다음과 같니까? 그리고 나는 어떻게 여러 개의 패키지를 사용하여 한 번에 ansible?

참고:이미을 따라서 명령 Anible doc https://docs.ansible.com/ansible/latest/collections/ansible/builtin/dpkg_selections_module.html 사전에 감사합니다

ansible linux
2021-11-23 19:10:07
1

최고의 응답

1

이미 이에 대한 성능과 자원을 이유로 제공하는 패키지 목록은 더 좋을 수 있습니다.

- name: Prevent packages from being upgraded
  dpkg_selections:
    name: ['postgresql', 'docker']
    selection: hold

그러나,시험 보고

dpkg: error: unexpected data after package and selection

따라서 수 있는 모듈을 수 없는 손잡이 목록,그래서 난 모습으로 dpkg_selections.py. 그것은 있을 것 같게 간단한 래퍼

module.run_command([dpkg, '--set-selections'], data="%s %s" % (name, selection), check_rc=True)

는 단지 정보의 제공을 위해 하나의 모듈이 있습니다. 또한다고 가정한 모듈 작동 with_items지만,그것은 있을 것 같지 않은 사건 때문에 당신의 질문입니다.

에 따르면 남자 페이지를 명령 dpkg 자체가 될 것으로 보인을 처리할 수 있는 패키지 목록은,하지만 제공하는 문자로 분리 가치 파일

dpkg --set-selections < /tmp/pkg_list

으로 구분 형식

postgresql hold
docker hold

간단한 해결에 도움이 될 수 있는 경우입니다.

- name: Prevent packages from being upgraded
  shell:
    cmd: |
      dpkg --set-selections << EOF
      postgresql hold
      docker hold
      EOF
    warn: false
    register: result

할 수 있습을 구현해야 중 일부는 오류 상태 및 처리,자신이 즉

changed_when: result.rc ...
failed_when: result.rc ...

감사

2021-11-24 09:45:32

구문 오류"msg":"dpkg:error:예기치 못한 후 데이터 패키지 선택에서는 1","rc":2,"stderr":"dpkg:error:예기치 못한 후 데이터 패키지와에서 선택 line1\n","stderr_lines":["dpkg:error:예기치 못한 후 데이터 패키지와에서 선택 line1"],"표준":"","stdout_lines":[]`
Sara

@Sara 에 대한 감사를 제공하는 테스트 결과,I've 업데이 대답합니다.
U880D

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................