Старый
Руки пока не дошли, но вроде как просто вместо item сразу указываешь packages - оно должно лист нормально схавать.
fatal: [: FAILED! => {"changed": false, "failures": ["mc nano iotop iostat htop java-1.8.0-openjdk java-1.8.0-openjdk-headless-debug cassandra MarkingError()"], "msg": "Failed to install some of the specified packages", "rc": 1, "results": []}
Старый
если бы было так я бы вопросы не задавал
Старый
- name: install package dnf: name: mc nano iotop iostat htop java-1.8.0-openjdk java-1.8.0-openjdk-headless-debug cassandra state: present
matt
name это список
Sergey
лол через итема делай
Victor
можно фильтр джойн сделать на список и нормас
Старый
лол через итема делай
https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_2.7.html
Старый
NEW In Ansible 2.7 it should be changed to look like this:
matt
- name: Install a list of packages apt: name: "{{ packages }}" vars: packages: - foo - foo-tools
Sergey
- name: Install Keepalived and dependencies yum: name={{ item }} state=present with_items: - gcc - kernel-headers - kernel-devel - keepalived
Старый
Victor
http://puu.sh/BLUIG/4b2619231f.png
Sergey
погодь
Sergey
я обновлюсь проверю
Victor
а packages - как был листом так и остался, как я понял
Alex
ну если name теперь список, ну напиши там список, также как раньше в with_items писал
Старый
нет
matt
- name: Install a list of packages apt: name: "{{ packages }}" vars: packages: - foo - foo-tools
Victor
Я думаю даже покатит: - name: Install a list of packages apt: name: - foo - foo-tools
Victor
Но это не точно
matt
да как не канает, это пример из документации
Старый
The error appears to have been in '/home/erzent/playbook/cassscyll.yml': line 33, column 7, but may be elsewhere in the file depending on the exact syntax problem. The offending line appears to be: vars: - mc ^ here
Victor
У тебя вообще какая версия ansibl'а то?
Старый
У тебя вообще какая версия ansibl'а то?
ansible-playbook 2.7.0 config file = /etc/ansible/ansible.cfg configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3.7/site-packages/ansible executable location = /usr/bin/ansible-playbook python version = 3.7.0 (default, Aug 30 2018, 14:32:33) [GCC 8.2.1 20180801 (Red Hat 8.2.1-2)] Using /etc/ansible/ansible.cfg as config file Parsed /etc/ansible/hosts inventory source with ini plugin
k4k
with_items, не?
Старый
with_items, не?
больше нет
Victor
with_items, не?
deprecated же
Старый
with_items, не?
https://docs.ansible.com/ansible/devel/porting_guides/porting_guide_2.7.html
k4k
понял
Alex
всё работает: - name: Install packages apt: name: - htop - jq - ncdu - wget state: present
Victor
$ ansible --version ansible 2.8.0.dev0 - name: debug debug: msg: "{{ ntp_pkgs }}" - name: Install the required packages in Debian derivatives apt: pkg: "{{ ntp_pkgs }}" state: present update_cache: yes environment: "{{env}}" when: ansible_os_family == 'Debian' TASK [ntp : debug] **************************************************************************************************************************************************** ok: [host] => { "msg": [ "ntp" ] } TASK [ntp : Install the required packages in Debian derivatives] ****************************************************************************************************** ok: [host] УМВР
Victor
Такая конструкция и в 2.6 у меня без проблем работает, если что
Anton
Есть у меня такая таска в плейбуке - name: Installing Qt 5.5.1 msvc2013 win_command: C:\qt-installer.exe --script C:\qt-installer.qs Нужно как-то так организовать, чтобы она вызывалась только если Qt не установлен. Это можно понять по присутствию папки C:\Qt. Как бы это красиво сделать, подскажите кто знает.
Старый
вот тут валидный пример
Убрал state заработало
SergeyB
у тебя пропущена переменная куда ты лист пихаешь
вот так добавь если достаточно зашить yum: name: [ 'bind', 'bind-utils' ] state: present
Anton
а в чоколатье его нет?
Нет к сожалению(
Денис
win_shell: test-path c:\qt ?
Денис
я бы на самом деле обернул в простой модуль повершельный, который бы возвращал нужные значения changed
Anton
Неплохое решение. Но хотелось бы попроще)
Денис
ну как вариант тогда это таск делать перед этим с win_shell, и смотреть что в stdout
Денис
если папка есть - должно быть true
Денис
и будет что-то вроде ``` - name: check installation win_shell: test-path c:\qt register: check_installation - name: Installing Qt 5.5.1 msvc2013 win_command: C:\qt-installer.exe --script C:\qt-installer.qs when: check_installation.stdout_lines[0] == true ```
Денис
чет побилось форматирование
Anton
У qt нет флагов для сайлент установки.
Anton
Хотя вообще можно же попробовать скормить ему этот бубен с qs скриптом в качестве аргумента... Тимур, Денис, спасибо)
Anton
А win_package чем не устраивает?
- name: Installing Qt 5.5.1 msvc2013 win_package: path: http://download.qt.io/archive/qt/5.5/5.5.1/qt-opensource-windows-x86-msvc2013-5.5.1.exe arguments: --script C:\qt-installer.qs creates_path: C:\Qt Вообще круто получилось, прямо то что нужно)
Ulyana
привет! помогите нубу с кубеспреем, пжл? ) хочу добавить ноду в кластер, добавляю ее в hosts.ini, запускаю плейбук scale.yml и получаю ошибку: TASK [network_plugin/calico : Calico | Link etcd certificates for calico-node] failed: [kubenode2] (item={u's': u'node-kubenode2.pem', u'd': u'cert.crt'}) => {"changed": false, "gid": 0, "group": "root", "item": {"d": "cert.crt", "s": "node-kubenode2.pem"}, "mode": "0700", "msg": "Error while replacing: [Errno 2] No such file or directory", "owner": "kube", "path": "/etc/calico/certs/cert.crt", "size": 1371, "state": "file", "uid": 999} на kubenode2 файл /etc/calico/certs/cert.crt есть, права 700, оунер kube. на первой ноде файлы те же самые, такие же права, но ошибка только со второй нодой. что не так? вот этот фикс не помог: https://github.com/kubernetes-incubator/kubespray/pull/2820/commits/17e275268efa1e9990666cbe61fbd27d85ec64de
Ulyana
root
Ulyana
но я пробовала давать на эти файлы на ноде2 права 777 - ошибка та же
Victor
Ну значит их там нет
Ulyana
Ulyana
Asten
Тачку покажи
Asten
У тебя видимо исходного файла нет а не destination
Asten
Таску блин
Victor
Ток хотел гаписать
Ulyana
Asten
Ты откуда kubenode2 копируешь? Там видимо его нет
Ulyana
у меня есть basemachine, откуда я запускаю плейбуки. и есть кластер, сейчас в нем 1 мастер и 1 нода. я хочу добавить еще одну ноду (kubenode2).
Ulyana
ага, то есть на мастере смотреть эти файлы. ооок
Asten
И не ясно зачем тебе state и force нужны. Ты ведь просто файлики копируешь
Ulyana
это дефолтная таска кубеспрея, я ничего не меняла тут (
Asten
Клпипаста всмысле? Стоит понять зачем это
Asten
*копипаста
Ulyana
в смысле git clone
Ulyana
да, понятно, что стоит. но сначала хотелось бы чтобы заработало )
Ulyana
в конфиге Calico ./roles/network_plugin/calico/defaults/main.yml: `calico_cert_dir: /etc/calico/certs etcd_cert_dir: /etc/ssl/etcd/ssl`
Asten
В папке files смотри
Ulyana
иду на мастере туда и все вроде бы на месте
Asten
А сори)
Марат
*копипаста
копипаста трех мегабайтов манифестов ))