add string to end of line ansible
I want to create a role to do a dynamic update of my Nagios configuration when I create a new VM.
So to do that, i already created a role which add a host definition at the end of my servers.cfg Nagios file, it looks like :
- name: Add {{ Host_Name }} in /etc/naemon/conf.d/hosts/servers.cfg
blockinfile:
dest: /etc/naemon/conf.d/hosts/servers.cfg
block: |
define host {
host_name {{ Host_Name }}
alias {{ Host_Name }}.uem.lan
address {{ Host_IP }}
use modele_host,host-pnp
}
marker: ""
backup: yes
It works well.
So now I would like to be able to add my "{{ Host_Name }}
" server directly at the end of lines of checks files.
Exemple : This is a check to monitore /data
partition :
define service {
service_description /data partition
host_name myserv1,myserv2,myserv3,myserv4,myserv5
use srv-pnp,modele_service_disk_linux_snmp
check_command check_snmp_storage!uem_snmp!/data$!90!95
}
And I would to add my "{{ Host_Name }}
" like that :
define service {
service_description /data partition
host_name myserv1,myserv2,myserv3,myserv4,myserv5,{{ Host_Name }}
use srv-pnp,modele_service_disk_linux_snmp
check_command check_snmp_storage!uem_snmp!/data$!90!95
}
Would anyone have a solution?
Thx :)
ansible nagios
add a comment |
I want to create a role to do a dynamic update of my Nagios configuration when I create a new VM.
So to do that, i already created a role which add a host definition at the end of my servers.cfg Nagios file, it looks like :
- name: Add {{ Host_Name }} in /etc/naemon/conf.d/hosts/servers.cfg
blockinfile:
dest: /etc/naemon/conf.d/hosts/servers.cfg
block: |
define host {
host_name {{ Host_Name }}
alias {{ Host_Name }}.uem.lan
address {{ Host_IP }}
use modele_host,host-pnp
}
marker: ""
backup: yes
It works well.
So now I would like to be able to add my "{{ Host_Name }}
" server directly at the end of lines of checks files.
Exemple : This is a check to monitore /data
partition :
define service {
service_description /data partition
host_name myserv1,myserv2,myserv3,myserv4,myserv5
use srv-pnp,modele_service_disk_linux_snmp
check_command check_snmp_storage!uem_snmp!/data$!90!95
}
And I would to add my "{{ Host_Name }}
" like that :
define service {
service_description /data partition
host_name myserv1,myserv2,myserv3,myserv4,myserv5,{{ Host_Name }}
use srv-pnp,modele_service_disk_linux_snmp
check_command check_snmp_storage!uem_snmp!/data$!90!95
}
Would anyone have a solution?
Thx :)
ansible nagios
add a comment |
I want to create a role to do a dynamic update of my Nagios configuration when I create a new VM.
So to do that, i already created a role which add a host definition at the end of my servers.cfg Nagios file, it looks like :
- name: Add {{ Host_Name }} in /etc/naemon/conf.d/hosts/servers.cfg
blockinfile:
dest: /etc/naemon/conf.d/hosts/servers.cfg
block: |
define host {
host_name {{ Host_Name }}
alias {{ Host_Name }}.uem.lan
address {{ Host_IP }}
use modele_host,host-pnp
}
marker: ""
backup: yes
It works well.
So now I would like to be able to add my "{{ Host_Name }}
" server directly at the end of lines of checks files.
Exemple : This is a check to monitore /data
partition :
define service {
service_description /data partition
host_name myserv1,myserv2,myserv3,myserv4,myserv5
use srv-pnp,modele_service_disk_linux_snmp
check_command check_snmp_storage!uem_snmp!/data$!90!95
}
And I would to add my "{{ Host_Name }}
" like that :
define service {
service_description /data partition
host_name myserv1,myserv2,myserv3,myserv4,myserv5,{{ Host_Name }}
use srv-pnp,modele_service_disk_linux_snmp
check_command check_snmp_storage!uem_snmp!/data$!90!95
}
Would anyone have a solution?
Thx :)
ansible nagios
I want to create a role to do a dynamic update of my Nagios configuration when I create a new VM.
So to do that, i already created a role which add a host definition at the end of my servers.cfg Nagios file, it looks like :
- name: Add {{ Host_Name }} in /etc/naemon/conf.d/hosts/servers.cfg
blockinfile:
dest: /etc/naemon/conf.d/hosts/servers.cfg
block: |
define host {
host_name {{ Host_Name }}
alias {{ Host_Name }}.uem.lan
address {{ Host_IP }}
use modele_host,host-pnp
}
marker: ""
backup: yes
It works well.
So now I would like to be able to add my "{{ Host_Name }}
" server directly at the end of lines of checks files.
Exemple : This is a check to monitore /data
partition :
define service {
service_description /data partition
host_name myserv1,myserv2,myserv3,myserv4,myserv5
use srv-pnp,modele_service_disk_linux_snmp
check_command check_snmp_storage!uem_snmp!/data$!90!95
}
And I would to add my "{{ Host_Name }}
" like that :
define service {
service_description /data partition
host_name myserv1,myserv2,myserv3,myserv4,myserv5,{{ Host_Name }}
use srv-pnp,modele_service_disk_linux_snmp
check_command check_snmp_storage!uem_snmp!/data$!90!95
}
Would anyone have a solution?
Thx :)
ansible nagios
ansible nagios
asked Nov 23 '18 at 12:20
WrestWrest
105
105
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
My approach will be different, but it should working with Nagios 3 and 4.
Just edit your first Ansible task a little bit:
- name: Add {{ Host_Name }} in /etc/naemon/conf.d/hosts/servers.cfg
blockinfile:
dest: /etc/naemon/conf.d/hosts/servers.cfg
block: |
define host {
host_name {{ Host_Name }}
alias {{ Host_Name }}.uem.lan
address {{ Host_IP }}
hostgroup_name anything
use modele_host,host-pnp
}
marker: ""
backup: yes
Then replace your service definition with this:
define service {
service_description /data partition
hostgroup_name anything
use srv-pnp,modele_service_disk_linux_snmp
check_command check_snmp_storage!uem_snmp!/data$!90!95
}
Everytime when you add new host via Ansible to anything hostgroup and restart/reload Nagios service you will monitor your /data
partition without addition work.
add a comment |
You can give it a try with the following:
- name: 'LINEINFILE'
lineinfile:
path: 'service.cfg'
line: '{{item.line}}'
regexp: '{{item.regexp}}'
backrefs: True
loop:
- { line: '12', regexp: '(s*host_name.*),{{inventory_hostname}}(.*)' }
- { line: '1,{{inventory_hostname}}', regexp: '(s*host_name.*)' }
Pretty ugly, but idempotent.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53446620%2fadd-string-to-end-of-line-ansible%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
My approach will be different, but it should working with Nagios 3 and 4.
Just edit your first Ansible task a little bit:
- name: Add {{ Host_Name }} in /etc/naemon/conf.d/hosts/servers.cfg
blockinfile:
dest: /etc/naemon/conf.d/hosts/servers.cfg
block: |
define host {
host_name {{ Host_Name }}
alias {{ Host_Name }}.uem.lan
address {{ Host_IP }}
hostgroup_name anything
use modele_host,host-pnp
}
marker: ""
backup: yes
Then replace your service definition with this:
define service {
service_description /data partition
hostgroup_name anything
use srv-pnp,modele_service_disk_linux_snmp
check_command check_snmp_storage!uem_snmp!/data$!90!95
}
Everytime when you add new host via Ansible to anything hostgroup and restart/reload Nagios service you will monitor your /data
partition without addition work.
add a comment |
My approach will be different, but it should working with Nagios 3 and 4.
Just edit your first Ansible task a little bit:
- name: Add {{ Host_Name }} in /etc/naemon/conf.d/hosts/servers.cfg
blockinfile:
dest: /etc/naemon/conf.d/hosts/servers.cfg
block: |
define host {
host_name {{ Host_Name }}
alias {{ Host_Name }}.uem.lan
address {{ Host_IP }}
hostgroup_name anything
use modele_host,host-pnp
}
marker: ""
backup: yes
Then replace your service definition with this:
define service {
service_description /data partition
hostgroup_name anything
use srv-pnp,modele_service_disk_linux_snmp
check_command check_snmp_storage!uem_snmp!/data$!90!95
}
Everytime when you add new host via Ansible to anything hostgroup and restart/reload Nagios service you will monitor your /data
partition without addition work.
add a comment |
My approach will be different, but it should working with Nagios 3 and 4.
Just edit your first Ansible task a little bit:
- name: Add {{ Host_Name }} in /etc/naemon/conf.d/hosts/servers.cfg
blockinfile:
dest: /etc/naemon/conf.d/hosts/servers.cfg
block: |
define host {
host_name {{ Host_Name }}
alias {{ Host_Name }}.uem.lan
address {{ Host_IP }}
hostgroup_name anything
use modele_host,host-pnp
}
marker: ""
backup: yes
Then replace your service definition with this:
define service {
service_description /data partition
hostgroup_name anything
use srv-pnp,modele_service_disk_linux_snmp
check_command check_snmp_storage!uem_snmp!/data$!90!95
}
Everytime when you add new host via Ansible to anything hostgroup and restart/reload Nagios service you will monitor your /data
partition without addition work.
My approach will be different, but it should working with Nagios 3 and 4.
Just edit your first Ansible task a little bit:
- name: Add {{ Host_Name }} in /etc/naemon/conf.d/hosts/servers.cfg
blockinfile:
dest: /etc/naemon/conf.d/hosts/servers.cfg
block: |
define host {
host_name {{ Host_Name }}
alias {{ Host_Name }}.uem.lan
address {{ Host_IP }}
hostgroup_name anything
use modele_host,host-pnp
}
marker: ""
backup: yes
Then replace your service definition with this:
define service {
service_description /data partition
hostgroup_name anything
use srv-pnp,modele_service_disk_linux_snmp
check_command check_snmp_storage!uem_snmp!/data$!90!95
}
Everytime when you add new host via Ansible to anything hostgroup and restart/reload Nagios service you will monitor your /data
partition without addition work.
answered Nov 24 '18 at 12:28
RohlikRohlik
696618
696618
add a comment |
add a comment |
You can give it a try with the following:
- name: 'LINEINFILE'
lineinfile:
path: 'service.cfg'
line: '{{item.line}}'
regexp: '{{item.regexp}}'
backrefs: True
loop:
- { line: '12', regexp: '(s*host_name.*),{{inventory_hostname}}(.*)' }
- { line: '1,{{inventory_hostname}}', regexp: '(s*host_name.*)' }
Pretty ugly, but idempotent.
add a comment |
You can give it a try with the following:
- name: 'LINEINFILE'
lineinfile:
path: 'service.cfg'
line: '{{item.line}}'
regexp: '{{item.regexp}}'
backrefs: True
loop:
- { line: '12', regexp: '(s*host_name.*),{{inventory_hostname}}(.*)' }
- { line: '1,{{inventory_hostname}}', regexp: '(s*host_name.*)' }
Pretty ugly, but idempotent.
add a comment |
You can give it a try with the following:
- name: 'LINEINFILE'
lineinfile:
path: 'service.cfg'
line: '{{item.line}}'
regexp: '{{item.regexp}}'
backrefs: True
loop:
- { line: '12', regexp: '(s*host_name.*),{{inventory_hostname}}(.*)' }
- { line: '1,{{inventory_hostname}}', regexp: '(s*host_name.*)' }
Pretty ugly, but idempotent.
You can give it a try with the following:
- name: 'LINEINFILE'
lineinfile:
path: 'service.cfg'
line: '{{item.line}}'
regexp: '{{item.regexp}}'
backrefs: True
loop:
- { line: '12', regexp: '(s*host_name.*),{{inventory_hostname}}(.*)' }
- { line: '1,{{inventory_hostname}}', regexp: '(s*host_name.*)' }
Pretty ugly, but idempotent.
edited Nov 23 '18 at 17:46
answered Nov 23 '18 at 17:07
JGKJGK
1,1501311
1,1501311
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53446620%2fadd-string-to-end-of-line-ansible%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown