Не удалось прочитать файлы конфигурации, отправленные Ansible - PullRequest
0 голосов
/ 25 марта 2019

В настоящее время я автоматизирую настройку collectd с помощью Ansible. Все идет как положено, кроме передачи файла конфигурации.

Каждый раз, когда я отправляю файлы конфигурации collectd с Ansible на мой сервер collectd, появляется следующая ошибка.

Parse error in file `/etc/collectd.conf', line 23 near `': syntax error, unexpected $end

Эта проблема была решена в " файле конфигурации, обнаружившем неожиданный конец $, не знаю, почему ".

Согласно ответу, который я нашел там, я должен поместить новую строку в конец файла. Каждый раз, когда я пытаюсь что то же самое происходит ...

Однако, когда я вручную заново сохраняю файл на сервере collectd, он работает. Кто-нибудь знает, в чем причина и как ее решить? Файлы конфигурации должны быть отправлены Ansible.

Linux CentOS 7
Собранная версия 5.8.1

MacOS Mojave 10.14.3
Ansible версия 2.7.9

Ansible код: tasks / configuration.yml

---

- name: Install main configuration file
  template:
    src: collectd.conf.j2
    dest: "{{ collectd_config_file }}"
    owner: root
    group: root
    mode: 0644
    force: yes
  notify: restart collectd
  tags: collectd

- name: Install interface configuration file
  template:
    src: interface.conf.j2
    dest: "{{ collectd_include_dir }}/interface.conf"
    owner: root
    group: root
    mode: 0644
    force: yes
  notify: restart collectd
  tags: collectd

- name: Install snmp configuration file
  template:
    src: snmp.conf.j2
    dest: "{{ collectd_include_dir }}/snmp.conf"
    owner: root
    group: root
    mode: 0644
    force: yes
  notify: restart collectd
  tags: collectd

- name: Install write_graphite configuration file
  template:
    src: write_graphite.conf.j2
    dest: "{{ collectd_include_dir }}/write_graphite.conf"
    owner: root
    group: root
    mode: 0644
    force: yes
  notify: restart collectd
  tags: collectd



Ansible код: templates / collectd.conf.j2

Hostname    "localhost"
FQDNLookup   true
#BaseDir     "/var/lib/collectd"
#PIDFile     "/var/run/collectd.pid"
#PluginDir   "/usr/lib64/collectd"
#TypesDB     "/usr/share/collectd/types.db"
#AutoLoadPlugin false
#CollectInternalStats false
#Interval     10
#MaxReadInterval 86400
#Timeout         2
#ReadThreads     5
#WriteThreads    5
#WriteQueueLimitHigh 1000000
#WriteQueueLimitLow   800000
LoadPlugin syslog
<Plugin syslog>
    LogLevel info
</Plugin>
LoadPlugin interface
LoadPlugin snmp
LoadPlugin write_graphite
Include "/etc/collectd.d/*.conf"



Ошибка вывода:

localhost.localdomain collectd[19021]: Parse error in file `/etc/collectd.conf', line 23 near `': syntax error, unexpected $end
localhost.localdomain collectd[19021]: yyparse returned error #1
localhost.localdomain collectd[19021]: configfile: Cannot read file `/etc/collectd.conf'.
localhost.localdomain collectd[19021]: Unable to read config file /etc/collectd.conf.
localhost.localdomain collectd[19021]: Error: Reading the config file failed!
localhost.localdomain collectd[19021]: Read the logs for details.
localhost.localdomain systemd[1]: collectd.service: main process exited, code=exited, status=1/FAILURE
localhost.localdomain systemd[1]: Failed to start Collectd statistics daemon.

Проблема не в синтаксисе файлов /etc/collectd.d/*.conf. Я могу просто открыть файлы, сохранить их снова без каких-либо изменений, и они будут работать. Однако, если вы действительно хотите увидеть код этих файлов конфигурации плагина, вы можете найти их здесь .

Заранее спасибо!

1 Ответ

0 голосов
/ 25 марта 2019

Очевидно, ответ на ранее отправленный вопрос действительно был ответом на мой вопрос. В конце каждого из моих файлов конфигурации необходимо было добавить пустую строку.

...