Size: a a a

2021 February 07

M

Maksim Sharov in Ansible
Lamobot
Положите его куда-нибудь в отдельное место на хосте, и запускайте контейнер с полным и известным путём. Как вариант /tmp итд
у меня он в проекте и как раз хочу монтировать при установке через контейнер в программу
источник

M

Maksim Sharov in Ansible
видимо, быстрее на практике щапустить и попробовать
источник

PG

Pavel Gassan in Ansible
Lamobot
Всё будет намного хуже, если файла на хосте вообще не будет :)))
В контейнере образуется черная дырень)
источник

TT

Testing Test in Ansible
Подскажите, пожалуйста, как правильно прописать путь для замены в xml файлике (использую модуль xml). Хочу заменить значение в value

Вот содержимое xml:
<?xml version="1.0" encoding="UTF-8"?>
   <property name="discoverySpi">
     <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
       <property name="ipFinder">
         <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
           <property name="addresses">
             <list>
               <value>tests.ru:1000</value>

tests.ru:1000 планирую заменить на 0.0.0.0:1000

Вот код:
- name: Modify addresses attribute
 path: config.xml
 xpath: /property[@name='discoverySpi']/bean[@class='org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi']/property[@name='ipFinder']/bean[@class='org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder']/property[@name='addresses']
 attribute: value
 value: 0.0.0.0:1000

Очевидно, что путь прописываю неправильно. Но я пока только учусь, как правильней записать?
источник

AD

Alex Domoradov in Ansible
Sergey Pechenkó
Хочешь файл назвать по-другому - создай в vars подкаталог, обзови его "main", и сложи в него файлы :-)
Если кто спросит, как это работает - скажи, что сам нашёл, я буду всё отрицать ;-)
Так не честно 😁😁😁
источник

M

Maksim Sharov in Ansible
Alex Domoradov
Так не честно 😁😁😁
Если это такой прикол, то я не могу оценить
источник

AD

Alex Domoradov in Ansible
Maksim Sharov
Если это такой прикол, то я не могу оценить
это не баг - это фича )))
источник

TT

Testing Test in Ansible
Testing Test
Подскажите, пожалуйста, как правильно прописать путь для замены в xml файлике (использую модуль xml). Хочу заменить значение в value

Вот содержимое xml:
<?xml version="1.0" encoding="UTF-8"?>
   <property name="discoverySpi">
     <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
       <property name="ipFinder">
         <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
           <property name="addresses">
             <list>
               <value>tests.ru:1000</value>

tests.ru:1000 планирую заменить на 0.0.0.0:1000

Вот код:
- name: Modify addresses attribute
 path: config.xml
 xpath: /property[@name='discoverySpi']/bean[@class='org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi']/property[@name='ipFinder']/bean[@class='org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder']/property[@name='addresses']
 attribute: value
 value: 0.0.0.0:1000

Очевидно, что путь прописываю неправильно. Но я пока только учусь, как правильней записать?
Никто не подскажет?
источник

AK

Alexander Khatsayuk in Ansible
Testing Test
Никто не подскажет?
Вообще, там xml не сильно валидный.
источник

E

Elenhil in Ansible
Testing Test
Подскажите, пожалуйста, как правильно прописать путь для замены в xml файлике (использую модуль xml). Хочу заменить значение в value

Вот содержимое xml:
<?xml version="1.0" encoding="UTF-8"?>
   <property name="discoverySpi">
     <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
       <property name="ipFinder">
         <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
           <property name="addresses">
             <list>
               <value>tests.ru:1000</value>

tests.ru:1000 планирую заменить на 0.0.0.0:1000

Вот код:
- name: Modify addresses attribute
 path: config.xml
 xpath: /property[@name='discoverySpi']/bean[@class='org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi']/property[@name='ipFinder']/bean[@class='org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder']/property[@name='addresses']
 attribute: value
 value: 0.0.0.0:1000

Очевидно, что путь прописываю неправильно. Но я пока только учусь, как правильней записать?
А где тип таска?
источник

E

Elenhil in Ansible
Но вообще если есть возможность, лучше темплейт юзать
источник

E

Elenhil in Ansible
Ну и ошибка какая?
источник

AK

Alexander Khatsayuk in Ansible
Alexander Khatsayuk
Вообще, там xml не сильно валидный.
Ладно, ответа долго ждать, судя по всему ) если XML будет валидный и это единственный <value> там, то XPath очень простой - //value.
xml:
 path: /path/to/file.xml
 xpath: //value
 value: 0.0.0.0:1000
источник

TT

Testing Test in Ansible
Alexander Khatsayuk
Ладно, ответа долго ждать, судя по всему ) если XML будет валидный и это единственный <value> там, то XPath очень простой - //value.
xml:
 path: /path/to/file.xml
 xpath: //value
 value: 0.0.0.0:1000
Не подходит

Вот полная версия .xml файла

<?xml version="1.0" encoding="UTF-8"?>

 <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
   p:targetObject="#{@systemProperties}" p:targetMethod="setProperty"
   p:arguments="#{{'java.net.preferIPv4Stack','true'}}"/>

 <bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">

   <!-- Set to true to enable distributed class loading for examples, default is false. -->
   <property name="peerClassLoadingEnabled" value="false"/>

   <property name="gridLogger">
   <bean class="org.apache.ignite.logger.log4j2.Log4J2Logger">
     <constructor-arg type="java.lang.String" value="/usr/share/apache-ignite/config/ignite-log4j2.xml"/>
   </bean>
 </property>

   <property name="discoverySpi">
     <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
       <property name="ipFinder">
         <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
           <property name="addresses">
             <list>
               <value>0.0.0.0:5000</value>
             </list>
           </property>
         </bean>
       </property>
     </bean>
   </property>
источник

TT

Testing Test in Ansible
Выдает следующую ошибку:

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: XPathEvalError: Invalid expression
fatal: [funtest3]: FAILED! => {"changed": false, "msg": "XML document has namespace(s) defined, but no namespace prefix(es) used in xpath!\nXpath /value causes a failure: Invalid expression\n  -- tree is <!--\n  Licensed to the Apache Software Foundation (ASF) under one or more\n  contributor license agreements.  See the NOTICE file distributed with\n  this work for additional information regarding copyright ownership.\n  The ASF licenses this file to You under the Apache License, Version 2.0\n  (the \"License\"); you may not use this file except in compliance with\n  the License.  You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n  Unless required by applicable law or agreed to in writing, software\n  distributed under the

Код:
- name: Modify addresses attribute
 path: /conf/conf.xml
 xpath: //value
 value: 0.0.0.0:1000
источник

TT

Testing Test in Ansible
Testing Test
Не подходит

Вот полная версия .xml файла

<?xml version="1.0" encoding="UTF-8"?>

 <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
   p:targetObject="#{@systemProperties}" p:targetMethod="setProperty"
   p:arguments="#{{'java.net.preferIPv4Stack','true'}}"/>

 <bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">

   <!-- Set to true to enable distributed class loading for examples, default is false. -->
   <property name="peerClassLoadingEnabled" value="false"/>

   <property name="gridLogger">
   <bean class="org.apache.ignite.logger.log4j2.Log4J2Logger">
     <constructor-arg type="java.lang.String" value="/usr/share/apache-ignite/config/ignite-log4j2.xml"/>
   </bean>
 </property>

   <property name="discoverySpi">
     <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
       <property name="ipFinder">
         <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
           <property name="addresses">
             <list>
               <value>0.0.0.0:5000</value>
             </list>
           </property>
         </bean>
       </property>
     </bean>
   </property>
Может, мне лучше в виде файла залить?
источник

SP

Sergey Pechenkó in Ansible
Testing Test
Может, мне лучше в виде файла залить?
Дык модуль плагин template же.
источник

VF

Vladimir FakeGPS in Ansible
Здравствуйте, господа. Сделал поднятие openvpn, есть роль для создания клиента. Чтобы создать сразу несколько клиентов через роль, генерация ключей, сертификатов сделана с помощью loop. Проблема в создании ovpn файла. Чтобы его создать, я использую модуль slurp, чтобы он взял данные из ключей и сертификатов и вставил в конфиг клиента. Это прекрасно работает для создания одного клиента. Но как можно это автоматизировать?
кусок кода для генерации ovpn файла
- name: ca_server
 slurp:
   src: "{{ openvpn_config_path }}/{{ server_hostname }}.crt"
 register: ca_server

- name: ca_client
 slurp:
   src: "{{ openvpn_client_path }}/{{ _client_name }}/{{ _client_name }}.crt"
 register: ca_client_list
 loop: "{{ items_list }}"
 loop_control:
   loop_var: _client_name
- name: key_client
 slurp:
   src: "{{ openvpn_client_path }}/{{ _client_name }}/{{ _client_name }}_privkey.pem"
 register: key_client_list
 loop: "{{ items_list }}"
 loop_control:
   loop_var: _client_name

- name: generate client config
 template:
   src: client.ovpn.j2
   dest: "{{ openvpn_client_path }}/{{ _client_name }}/{{ _client_name }}.ovpn"
   owner: root
   group: root
   mode: 0600
 loop: "{{ items_list }}"
 loop_control:
   loop_var: _client_name
кусок кода из defaults для вставки данных в конфиг
{% for item in items_list %}
<ca>
{{ ca_server.content|b64decode }}</ca>
<cert>
{{ ca_client_list.content|b64decode }}</cert>
<key>
{{ key_client_list.content|b64decode }}</key>
{% endfor %}
Сейчас оно не работает, я понимаю, что в defaults тоже должен быть цикл, но сам slurp выводит сразу результат всего цикла, как можно идентифицировать ключ для нужного клиента?
источник

VF

Vladimir FakeGPS in Ansible
Есть идея в сравнении файлов, но опять же, как это можно сюда интегрировать...
источник

E

Elenhil in Ansible
Vladimir FakeGPS
Есть идея в сравнении файлов, но опять же, как это можно сюда интегрировать...
источник