From ac94980413a8b698ae649c65a6560f0e74209b6d Mon Sep 17 00:00:00 2001 From: pmj Date: Thu, 19 Dec 2019 20:36:21 +0100 Subject: [PATCH] +Public first commit --- .gitignore | 3 ++ LICENSE | 5 ++ README.md | 58 +++++++++++++++++++++ defaults/main.yml | 6 +++ handlers/main.yml | 7 +++ meta/main.yml | 57 ++++++++++++++++++++ pskar_gui.png | Bin 0 -> 32049 bytes tasks/main.yml | 81 +++++++++++++++++++++++++++++ templates/custom.conf.j2 | 38 ++++++++++++++ templates/tls.conf.j2 | 45 ++++++++++++++++ templates/zabbix-official-repo.gpg | Bin 0 -> 2083 bytes templates/zabbix.list.j2 | 2 + templates/zabbix_agentd.psk.j2 | 1 + tests/inventory | 2 + tests/test.yml | 5 ++ vars/main.yml | 2 + 16 files changed, 312 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100755 defaults/main.yml create mode 100755 handlers/main.yml create mode 100755 meta/main.yml create mode 100644 pskar_gui.png create mode 100755 tasks/main.yml create mode 100644 templates/custom.conf.j2 create mode 100644 templates/tls.conf.j2 create mode 100644 templates/zabbix-official-repo.gpg create mode 100644 templates/zabbix.list.j2 create mode 100644 templates/zabbix_agentd.psk.j2 create mode 100755 tests/inventory create mode 100755 tests/test.yml create mode 100755 vars/main.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5c199eb --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# ---> Ansible +*.retry + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..00e73d9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,5 @@ +"THE BEER-WARE LICENSE" (Revision 42): + +PMJ wrote this file. As long as you retain this notice you can +do whatever you want with this stuff. If we meet some day, and you think this +stuff is worth it, you can buy me a beer in return PMJ diff --git a/README.md b/README.md new file mode 100644 index 0000000..2f1044c --- /dev/null +++ b/README.md @@ -0,0 +1,58 @@ +Zabbix Agent ansible role +========= + +This role can be used to deploy Zabbix agents via Ansible automation tool + +Requirements +------------ + +This role is only for Debian distributions. It will install 4.4 version of Zabbix agents from Zabbix official repo.\ +To use TLS encryption with Auto-Registration, your server needs to be on 4.4 version as well. + +Role Variables +-------------- + +Each variable is set with a default value in 'defaults/main.conf'. You could change the file or overide them when calling the role. + +- zabbix_server: "zabbix.example.net"\ + FQDN or IP address of Zabbix server. This variable is used to set 'ServerActive' parameter, so use only one FQDN/IP. + +- zabbix_proxies: "127.0.0.1"\ + Comma separated list of proxies or other hosts which should be able to poll passive Zabbix agent. It is used to set the 'Server' parameter along with the 'zabbix_server' variable. + +- zabbix_psk: False\ + PSK for TLS encryption. If set to 'False', TLS parameters won't be set in Zabbix agent configuration file. + +- zabbix_psk_id: "PSKAR"\ + PSK Identity for TLS encryption. See how to configure Auto-Registration with TLS here [#zabbix-auto-registration-with-tls] + +Zabbix Auto-Registration with TLS +--------------------------------- + +In Zabbix Web interface, go to 'Administration/General/Auto-Registration' ($ZABBIX_SERVER_URL/zabbix.php?action=autoreg.edit).\ + +Check the PSK option and fill the two field with your PSK Identity and PSK and save. +![Zabbix GUI Auto Registration configuration](pskar_gui.png) + +Example Playbook +---------------- + +Here is an example of how to use this role in a playbook: + + - hosts: servers + gather_facts: yes + become: yes + become_user: root + + roles: + - { role: zabbix-agent, tags: zabbix } # when not using TLS + - { role: zabbix-agent, tags: zabbix, zabbix_psk_id: PSKAR, zabbix_psk: jdkjnckdsjncdskncsdkcldsoijds } # when using TLS + +License +------- + +"THE BEER-WARE LICENSE" (Revision 42): + +PMJ wrote this file. As long as you retain this notice you can +do whatever you want with this stuff. If we meet some day, and you think this +stuff is worth it, you can buy me a beer in return. PMJ diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100755 index 0000000..a3fd77a --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,6 @@ +--- +# defaults file for zabbix-agent +zabbix_server: "zabbix.example.net" +zabbix_proxies: "127.0.0.1" +zabbix_psk: False +zabbix_psk_id: "PSKAR" \ No newline at end of file diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100755 index 0000000..ec16c3b --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,7 @@ +--- +# handlers file for zabbix-agent +- name: zabbix-agent restart + systemd: + name: zabbix-agent + state: restarted + enabled: yes \ No newline at end of file diff --git a/meta/main.yml b/meta/main.yml new file mode 100755 index 0000000..7223799 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,57 @@ +galaxy_info: + author: your name + description: your description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Some suggested licenses: + # - BSD (default) + # - MIT + # - GPLv2 + # - GPLv3 + # - Apache + # - CC-BY + license: license (GPLv2, CC-BY, etc) + + min_ansible_version: 1.2 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # Optionally specify the branch Galaxy will use when accessing the GitHub + # repo for this role. During role install, if no tags are available, + # Galaxy will use this branch. During import Galaxy will access files on + # this branch. If Travis integration is configured, only notifications for this + # branch will be accepted. Otherwise, in all cases, the repo's default branch + # (usually master) will be used. + #github_branch: + + # + # platforms is a list of platforms, and each platform has a name and a list of versions. + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. \ No newline at end of file diff --git a/pskar_gui.png b/pskar_gui.png new file mode 100644 index 0000000000000000000000000000000000000000..353904150d60e138ea1ed153ecadc9dd03c46628 GIT binary patch literal 32049 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

F%FpImMsJlgoxwJ2japTg`o+my9jTW#j= zg7RyYD@4~R|8lY(>)NNsJ}H5@En+73e@(sLw@u*+YQ(4A!*A`t>brYgi+-;A2g-V9 z{xsfO^c&|jdm3~kN;-SqkLR%@;GP7OKkb%0KbkEvJzF?)<}+P&bcL>-=EGO|4V49a8iKqp+m0!N8pZq0{lCAjikjltZrC-~ z59Qd(No?UY>{C|_J>K~}bno4SYT0A0HgtB?@MGufht;l!0|E?}zqSePC(Qd9=N+>> z-W)_pU(6|l1}(pqq$&yd&T{)^3&HLZM|CH+k#E<$e6DRMi|Mk3Z!8M>y5}uZQ-eji zv7@Vm7}T1m9li%HRc)&T*cnUC2tPbhws6Dk=HE-M=k3&b>BiSsa}eqnNO~0Xdb}in z`1uO{*u#uk5cGmuSGcfVj+>v4^aZkde`TO|$$GAU;hdYm0uM+nG|2myftF>u#z9}fE zOG^CvmCZqrw@Vnhfe%DHoNEcwBJP9lar|>E`%gJ1pDBnhMk1X}tjm9Ux__GEhzEA` z!^3pKn={P&fJy-;!iedz)f@o4ViIwJ7WAni z|ITdQmnsHKS*y%^Tfth^w0l8g4^FdH<+cS&Y|DtyY9SG9!VBf zp#~Wkjtso;)U#Eda1P|-JJ_JwJ%s)V^5b3&b?qNLnawK_d%b7Xl0X|E_^I$HL$Y-F zGWm4_>2Hwu+H9_|6}owl-Z~zs=4ihp^=EvYh}T?enKx?Vm3m~2?P}36*79!+?o(LI z8L7s$jBt?G%tl_@4y)3{XWGNzz2XOaF3F4u{lpIP7i(YeyO}X3+oflA?lmy;&-M2G z?R!x(neU1@r^-ZJzUlI&6;Gm&Ra}VtZ;BY9g8;KF{`BQiN7(N-R+==nEi zXd}m|8Cd_8f}Q(d!l7F;xFvClvwF+<<#+=o$sc?;YM2M_BsZd~LKqDn-EDYL>LqJo z7u*>ys8EFy7kRxBdV=u~Ud)SKCmN!R(uMe;*pLLc-xOpC5`&xHsrg8=M5Z?q2@=08&0ySAF^=>C3Zb?=@tX zA8N1tdJ3#}nL&lLYT3%lst6gqiQGs$lffgO3sgIWidP78F*7@2*7A9b#_iI0*!$kG zXRpdZtn8IjD}_*wvEklqrvB{gz^seFz@0OOFFp-JLO^bik3llK?F&Qnputmo|IN$e zf}c_3_lpAaUOHl5dmO?#pdqskOu@e!HAyGC73ws(yu4e@8aY$yQ-Cfop^pCc=8gHq zk5_~3tO3Bp4cIg42Z))}BL|(5&Qitg&_!9Wz>6S@zc^V9xWH~dyKfpr9*4niXNV0h z(12`JRJMQQTl)vuMj44uXkwOVKr6dv!)G~U^Ot=vE@$H(`{<6sI&BcDIv4iJz~b%G z6!imnRu(&JAr_G;6=V15oZP9X8L)t7(WR%I``ac?wnJQPvftkt($Z$46jXT(AUO!t z8luPv3Tye0v$&;@YSoa%R&WF(01;M_;K{bIVW?9Ko&reCS62Rl`X!6+H`qxSv@#7N zRi}mawEp$+TP`JfIZpectofI9q9G?KBoi{dHHb#|TR&CYW`AWD5^^mSm)PF7=1EFw zf01^f+f05);UYctnFkCG6OjCq3fu=g!7r4otL#nOQ7voE(DyR&&nmN*p|^*%M&x={B$ zT(J`om)|Uymj+%heJt8*ndV||mh`z+n+yENQ8Q5tqoL}NtKsY@Mwy=cpcoGKw#RPq z6h4k+in3)_OO&JnXikL@1zwR$eNces| zN~3JvsK{WViN-|uB#&ZU|0T^Nm4=Q4XBX*Ozv*pTtdgJCfJXhdDHCW*^`?{JI3iJ9 z4~JM!d-`BWa&Q9WS5Z}VDPMJ8QmV#j1?ot9^XIFJ^kh?z*zgdI@d0`F50exHJ$~`1 z?a8C_F{Hve~+0d3J^>^nvA1!FJMye?ln~y7mQ4GuCvW zO@TB(m;PRK2A~l3z{}1B+l*a*c0a)@jc&?6B0p?mQ}rA_Kp>f6bVr{W%;w)z0+|ax zw($41-wc^2POX;TsFl4pN^G`Zg;e>hHNxgJ)g65|{|wE{o@Hy3!$a9>*R#J~=;*x6 zJVp<=Tx@5+&g|3FeJ}|K z1PsUlBlu!SNGjkTc?;{N62BDRncq?80eg~QiD&=uZTsJ%gPlf5&pR=XWyy1@>N`pcT)rS_&g6*2ZTwv@6^Z2+Pngob|l|hg5%(m$NB@5DvcRbmlv%{ zA(;W*ERJo!ym;NDA(1g-rHL{RH8>pNJW(rs(mKW+`_rmxLf?bcx?@cEEamPnyVGQo zDMG|Wg8v{QiYO}Ir=KbKhuI*_(eS5wS;qByZGhIO7Ss1SW-M`_3y|LO1F;Hu&c8D9 zNHl`9&Oigkr}U1~U!P5JzVyRaLxf$i#uy2t5tt~2KL9Cl1L{92L$Cn^N^2rG%>`v7 zyYO9U0fX1qa)-%#@jfd^CHSquu$qtlq|>5Pt9rP}Sb@?F)SmZo_66_=lA0U9Lso!~ z<^J3BfPh99md98%h<4>m#~zNeql95VEjuk1Vj}CCQX0*J0%MoZ*W?O+bfibprPg@_ z)@0rpBMr37B36b`9RQ4iD}@_aY*6`!Aept@)4FZs$-Y=ugS|qltw&^f4=8$mUL^z< zk>bP1WMF`}TRF1nPyl-QJfYaoNV~Gh?uoNrB0S#~`*YHp15XRo{qVA=Jp6ah`tHe} z2!9|wul3Ia*4Q)(!wN9U93^fwRa4Sb~8FEB0HQVBIV#veYY@!*B4Wx6-^h1hmLwp zx_sz(`f84pUi?N_Wf-E4@33lf#(0u7^OLKPXTZjowZhRR@9Kqt7`X;egJ8^WYahY|;NyQ2oA;#QuI?!6ms|aGN(A0Rk(e&00w9h^{sO@Bqq`q1t5irx zBzFK?ig^B>%s=|%KTMPV+Hw(ea&ghOTR^5zdh2UMmKm;NXUaK^A52m$1at$jl!MIs92qPj}bqL*({r`9q@tdpL=rg+@ps<8eXJJ6p} zgV(&60<=hxei;}y>T@$Q%o_lfEJ9F~mm};@k0Dhyt*NQ5=6qy*uV~KSFB51s`3xs2 z{VZ|cPkK#AJ>2ge!Ft28G{3slflWnN2?1dlNGio2#7RYBsRMgz;_ahP=A=zvNUc$u_mHI&!DXMFJISgl;3k@mW zL@TX^dRrw`%%!^fEc=le{c4SW!5M)*y5LrNcPxImNJdV!U!Fqdub#^3sQ>XV_`!;-<|$e`yfX=E}T#c=xI6ujaXT z4EXV`<_L^oYU~kZOl@s$%wWq7Ib5i1SxrgjqFt}yC z!fig!r}3;JqgZM|RmAo~O;i)C)WpBg-4wY=x7J;4-5;IsCa2)1Aqd3!NX(^l>0~^u znhGRG4chfKl(;?V>e{as5%uJHnD4_2@BRppy11Aa7U*QIY+AaTLVIqTco9uvhr?R9 zy3&a1ranaI!-T5V#0xW05YeVjqT_I53+#sal}>r>4&3lU=uQp%I{fm@c4}${yp=HS zAu@KCSJkv>g;s5>&d0|}-o7K5mC9K^SEsVMOPlLiA`cYy6?YQMxo}xihKqqK+PP1w zUGWFj2zdCFxJJN_s8ZTouX2ZzG{#ky$pRvfu5 zpKZgwCSfQc*E*%&lsct_3aOrlUR!M)S(OfNV_qmT ztYcPF65WyxU@I*DM%KSNG?xWU;dXVu-(bF^~vq@evYS2dv&erzz*?jC8 zSU@tMZPLqPyf}Ffe>)9_f?^!yr~#X6ju4%V*Y=d}0*l)?(8DMgPwhh|6#Q zMZcAfK{*7XlP1fM5L2ET{YAP2jjAd_=|U{wBGxOkaWqfMyXxd1xZ)lzFKgWdmwsG# z;no8KH@YM%!{R6d)7ckK1pXRiyCEX%4}tVC^copC)ADC0=;io~2uB)a{q|AFXf6aU z0-B~0Z6fMQZcw-G2cYXMD$wYpSAeTp7vk_G`O-Uh4XHor2sRlBO=Os?_0Z{SUzCN3 zdzra~>oRczCSKs{&v5vDSNwccSLL`-JHQX}*opfYUunV-Q+fhc_P|NgXc|nKq)H-O8^$S=6 zs~%M0$8yDCp?cgV*)!sB(Xt||Y$(PcArV_sfPDls8%geuuwgvLXSjNk+mJFx4+0tF z>s61^?5~`S`}rZ#b!Ljju#%mxYx}@#oIT@RJMxwu^{ZKa%gxpDDH- zWl<@j}q#RGuIlPo{o<0?#h~mX!=o;q0TQ=6{FY7eB2T-7cOq;cAK~EGCCDB0TRz{ zI_uR;;mxYd1v-0iRe*`UkDti&?~X7|`V>=|^{8HSWt1++(ZsciXkmo3rIQ4g zbiaD?&)53~iR6S3of^S*CD-n|F?cJ6!dirH0|8`;fcysGB=c*+HS~N`qc~MY7fk)` ziB;imR4`rY)7$+x+)$6QKeTC^55Iu~5nLeN7y+X3{*{-NK2}eOP_eepx^|rkqp{d84j3k)U^oL52 z6owVB1fu@2aQ-`IDwF0y7NmZ4?rm@=eY`NKIsi@Ru@W!h{uHQVcj%4u*`VVFu*uL4 z_RZU9Tvzfn_StT71}SmR-YY6CTfaU(pl@*!XwB=O-!}09!a^g|^0W1q5D0iLim^B9 zPksPqIB7KGN#P5|lAylj71@o>92(8>?s2Zb?&dufHHd>lrA<{K zAhUbonhVSpSPdE;)j+36#PwxqhM1?jmV`~kF`^+;^d!f*s5Yk5awYjsQ0P>tN8nB< z(ts`YXIxp?vT|1>((yo)Ay;FfJP57rJnd~^*M3tVT&QgA%kJ8R^a9Gi#1#>MbG zmZ3Q3TUs{tK#T5tT?`D3g3s&bu?L#J&R&kvtK)%A)OBp$lRkbYQ1iQwu zb@-DtPZUS^gJX!Q)M@OF4Ng@d9DrzaQ^CY zV>6vOV?FyKC1|(V3vKXtd`j#mL$?V|6+qVDH`T^(>||zB87-CF+`KE*K`(J*VKK5I zQLAjmSL*eI+T+yPmhIBkw<^5PhT?e(O3R;)eWk8PWoBne6g0GtIP?{I!Qrhmj6B+g z47<^y&e7#X0?+{1e4Ty>JRgYS4Na+Qyz=)8EMh(El`rXx$ViMLAoN=V!uN+;Dw)mV zV`P!MgOKb*Dw_`+E(*4m)q_s?D$v5o{(M##R5rJ;%SH9p@Pn&TV_^$)Cgx>IB|2Q) zUO6{VQ`0eCY+1SxFR#c*!0GbJKS?D3a=zQ3M~2VJ8bXFrjS72Vg3UpoL(k#0_sbXc z`(rGS_jYpAvgm7D^v(x`N1I9yCJqh#>Y+oh+-#*Tk&TpFw;W8$l=x$dV}{%B zi&U(_oV3IY>{DzIzSGXR;0zA6c^J&ON&B;`$Zp69k=TDCO=mQIncbyBH=RyTM zom~b-Q|6x)0(7=9I)IKel85r)u^>N5ou>D=Nx`kk!-;4bYUiI9z6)o3=h@r zFNls72Zh4#(64XREaXkm=Y{risk<`>*jgubZcoh zK8jXWU*X(lE>C^bX(^e($*YQ%9R-mbjqJ**pA234x}NCWm81RD?$|m@y~8do;p(QK z1W=9=YBT$jsOTS8n_h|jp6zu5G?O!FAm%5m?D=b=`Ru->nZ3HMylI4kVIsqPxqe-Q zk`i-aL{_Xt+t>?XxA3-Hm0rHcs>J1`U%#kElx@EG4UM)gHgdLao;&3<{sm+`EE!9y z;+1&b`Z?NmtlFik50C~Zg-Xo({l%xLLV0<5p0*o)j^uRlpL$sA{Rt>a8V8n)=s2Pss{V1!}@>gRm*%J+$rPH7djD7{vU z8Rk_~XcTQ|M3h^l$dRv{ac|C~-%=VFY~ku$3YB9Kv9BFAwA}}o3}xS1l03ULhskt8 z;RtU-Ln-h=$#cS@PCY$6P=^+&4u=tncU;j)m2Y7sMwY~F_)tnUY_hGOLF2_QeC6sIX)txEWP zt%Q%M<&~FAMo|!XItV2_a;<241ft;B`X^=XLFEy?&|B3?vvPu4BnqBaA<0)?Im!jL zkkOf41MN=L;lld9dU|_*Y-@#cN1ARrIC=6!nsQT6QjU#_wJGp{0~4lTCGf)90xhy| zk+b@%uqY4lw6mnjI6KR)9p0vQM* zvo|v(=Nf*gNa(dUBf|_XJev7{CkV zUQ@ESZ$_`KD%N}bdM+yLU8hh|N_Z(DflM<6xlP~@eNQff{+O0k=Wowz;~NV_Hy-p( zr5ErD0N}D$-|Z}a#~+{(fzxw0s<#3}R#tyL1U+DE6q>-+_^r6*!QuJWc!cW>9UyU^ za|*|3sBwIBs+dt$@cI`Y_bQXF%eKoIKeSBYW?dn5Ue(@@u7=H`g)X(QEL2rP1FT%e zQl}a!BwsV*g48Y1LUrxE%~IG0atFSQ1JZ6xgAv_=O8tx>>Oaa0BW)rXzfGZTM%YnT zcZ>PE0W&!YU8)rzkgRdeNA@`iYRpE|ZW8V9!9h9^mjK5_9GP(|~@RM2_BJ(jA zT$j{yzUgcE75>;?4)tm4s79W1WgmjV7;AmX zA00B(w+kzN4dE3{7oS?E-Y#&F)qKas)@~z* z%IfR68`OGv9z~>yMkS-_;zea8VRkerdwWA*Pdd=x2gMBV8$)ExOxDG1u{4W6n=serH>d5ap=Wbw(_*bcH$Gmpj2Hk{rRM;F_a>u@GIZ}wS1OSOn(NfyPeOTh zAS2(7EVm!3I4fTko7MqAiDxBR43B4Z56|nNRi4()jFX=A^FuAsl^|~<7>LOJ1Khz++w7Ds?g<`YQ8eWstA^d(RdH0?AX}mZ8&ML zh>fEya`uJ;P0Y$S5S+Lo=ZM&7+b?vR+9Tw;5F3Vybk#lyX6A` zi>MS*rBL8Meb7Q7O+jUoXFdE%gP`I*PFGtv7ng|Ak25Ec64k@kdWjv#(GAEZn8Hrq z=>_frW;p3AHMN=K8&aG%=#mICaR~TiDqgrLpfg)-Y%8PpEYtELz@y=4dA&NhkoC2j zgPVbQ6;EMHKQ;WY1~v6PIz!e|bU7ULChLku)+lGOdLkTX*2kTyO4=6jW98}~8KYG7 zSy5$Aapdqkh0X}Q&z^%1NMd);i{g|#BSjUw6zUXhYYmf4ZI0=F(nV8sO@sp2H>-*Gf|Xw%pxB$kBVr2-L2 zh7OR{`PXX^=HehSRn@Sg3poaRWkCnXRZ6YQ(eyr8{iq04Y_bCtXs~UiDUFHAHzgfi zHMaFctKA|3eqDaWg-?|qK4B>FJVqevnw;nE4ZN~|Yolwojg&Q9BMK;^ci~_Gw-&Cz ztNhi)snO=S&f>izy>A)2XWs^IIG7y4J}SO~*cfKp#gh%c3`B~A_QJB&_PL)3E9-re8)Kf;A{Hp97jix9({Ta6#eDN^h@ZpdkP z$k|(&!_E>sqiw{fslS|u*rk-XsMcMrMRCdq+L<~ArWL%N9b_3D z)iW~~H8g%~|WUXXr{`cu%fSk6TEw0g}#MhCNn{|V8qkQIW3d-xT>Pz{R z3JApiZoJ`LJu2Juu0pgI1Po3~&>gi}cXD7zvqNFTQ3gtB!WZD7;Xzwf@`^YKV5tOu zBd%`nt#O?(>c=kisLIMou7b;{NvB9r@=9i(Aun&0zZ1|~BhGc+8SCjgYxw%B)i4j^ zF+;}y*wUaR$PI&}&PiJU$>@F8GMQ_rKbSP-KO?_k_}Of}pGi8$wmLq_i8Z_?mIcgUY-D?qi@LjTB(!q~X|y%?g`!&Y zA;+gXRAisj!^e-k4rVR^S5`1Ij5_aoR@djo5&_J__zTT0M~YmUXd{DUnh6sf%?$tv zN-a7U^Ai4cGar2k8a2m=?!nZ7`@XaStfzPNrhsSXyDt!A3NHDV>*Rk84ojkM3bM@S zG^GQc7hs!a)F>fF=7JUe_~!@7^p*cTb?v{74-ub7l2Kb>Lc&Pa)zCpW;M47gO1`cl zuN54Z+#(#x(2d9#r{SIxi~G`I41~urF6E}K(SqcxOuu@sWt61jIEm*T$SJp~CLPy! zSEQ3hB5 zllCYiDDk{#tIq#hKP<3vKK1=z&}HnB#*JR;l9lrk`V@)c4=dR)(Z_S$Z!@Hi%w{FL za8Q|(pZ6jRqc`+$gn<*8e$({PmqbY)vo2HYzVhuk`LzuXSfMBTP0*{KXXj#G>D@~LiV4PpI6(K{&6h!qoM0d)@7nuXavEO!($z1uv`&FR zf1d6wtX+CAI~S*))?d5BZfq8opOH!!?@0fHF5}vY6#ZFGn?~}7MygZy9qnT|OS=&# zAVCrkpXvvI(s2}D$?Q4a_=|^SmXEKm=l0GHDmeJ-Ge0MNw21%o4r(w^19I_NE{5N( z7~bQjTAa>AxVW24sNvSvJ=wN|K&<+vHwfacjemrz6N9oT(G+g8HU5WPhhOt(;HgYA zJ85}u8_bMr*(g{t$^J;KhNL*6>`*BiI(zK9}@rikhS#j&1q8xK{>SHTTInXvy_3wQuv-Zv zOZ=eIJ(Vx}`ky-w`)~H~{6Uz1D+U&D9o$QepN~aL5ar|>*GrakJYj|R)R5i<^mwn8 zu&@4md7d=+LK)Ld0-Bx0!ukify-a|#=JrMFSrpSnhD-n}#fj>#y$#wlfckK0I~YAH zO_)s)e>mQFa$bIkSK1AtrU$Kyi{?XzJeD`VG@H*1Z8x2`X6e4`-8jKD^+2WBV3#?B zQ@(WDgtp63@-vktd<|}|>GWk+So~~M=)JUId_RNjrI+Dw*fm>B)A9~c`1p=gF%M(H zSsT@z|Fd6uqEvR^uXz7wMk_z%2g2MJ9L3hq&L}C$9k^<4 z3*c)|iWd={oPR8=Fll4ZBD_XroihD)bCSH0-#wt~dFQy*%_RCT?YG7Nw3x@gMZ5iP zbl1Om+IDNCUYM@8XM{MMNotq^94}+fCX0U`y>5EdM&vD%{8!B1f3uALf;asC|GQTR Zq-m`}SC205KOu@qNlqP7{QTA1{{wqkq@(}< literal 0 HcmV?d00001 diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100755 index 0000000..3c6594a --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,81 @@ +--- +# tasks file for zabbix-agent + +- name: Deploy zabbix repo + template: + src: templates/zabbix.list.j2 + dest: /etc/apt/sources.list.d/zabbix.list + force: yes + owner: root + group: root + mode: '0644' + when: ansible_distribution == 'Debian' + +- name: Deploy zabbix repo GPG + copy: + src: templates/zabbix-official-repo.gpg + dest: /etc/apt/trusted.gpg.d/zabbix-official-repo.gpg + force: yes + owner: root + group: root + mode: '0644' + when: ansible_distribution == 'Debian' + +- name: Install zabbix_agent Debian + apt: + name: + - zabbix-agent + - zabbix-get + - zabbix-sender + state: latest + update_cache: yes + when: ansible_distribution == 'Debian' + +- name: Deploy custom config + template: + src: templates/custom.conf.j2 + dest: /etc/zabbix/zabbix_agentd.d/custom.conf + owner: root + group: root + mode: '0644' + notify: zabbix-agent restart + +- name: Deploy custom TLS config + template: + src: templates/tls.conf.j2 + dest: /etc/zabbix/zabbix_agentd.d/tls.conf + owner: root + group: root + mode: '0644' + when: zabbix_psk != False + notify: zabbix-agent restart + +- name: Deploy zabbix PSK + template: + src: templates/zabbix_agentd.psk.j2 + dest: /etc/zabbix/zabbix_agentd.psk + force: yes + owner: zabbix + group: zabbix + mode: '0600' + when: zabbix_psk != False + notify: zabbix-agent restart + +# Using system hostname +- name: Change default config + lineinfile: + path: /etc/zabbix/zabbix_agentd.conf + regex: "^Hostname=" + line: "#Hostname=Zabbix server" + notify: zabbix-agent restart + +# Using ansible hostname +# - name: Change default config +# lineinfile: +# path: /etc/zabbix/zabbix_agentd.conf +# regex: "^Hostname=" +# line: "Hostname={{inventory_hostname | lower}}" +# notify: zabbix-agent restart + + + diff --git a/templates/custom.conf.j2 b/templates/custom.conf.j2 new file mode 100644 index 0000000..36ebbb5 --- /dev/null +++ b/templates/custom.conf.j2 @@ -0,0 +1,38 @@ +### Option: Server +# List of comma delimited IP addresses (or hostnames) of Zabbix servers. +# Incoming connections will be accepted only from the hosts listed here. +# If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally. +# +# Mandatory: no +# Default: +# Server= + +Server={{zabbix_server}},{{zabbix_proxies}} + +### Option: ServerActive +# List of comma delimited IP:port (or hostname:port) pairs of Zabbix servers for active checks. +# If port is not specified, default port is used. +# IPv6 addresses must be enclosed in square brackets if port for that host is specified. +# If port is not specified, square brackets for IPv6 addresses are optional. +# If this parameter is not specified, active checks are disabled. +# Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1] +# +# Mandatory: no +# Default: +# ServerActive= + +ServerActive={{zabbix_server}} + +### Option: HostMetadataItem +# Optional parameter that defines an item used for getting host metadata. +# Host metadata is used at host auto-registration process. +# During an auto-registration request an agent will log a warning message if +# the value returned by specified item is over limit of 255 characters. +# This option is only used when HostMetadata is not defined. +# +# Mandatory: no +# Default: +# HostMetadataItem= + +HostMetadataItem=system.uname + diff --git a/templates/tls.conf.j2 b/templates/tls.conf.j2 new file mode 100644 index 0000000..a5ea720 --- /dev/null +++ b/templates/tls.conf.j2 @@ -0,0 +1,45 @@ +####### TLS-RELATED PARAMETERS ####### + +### Option: TLSConnect +# How the agent should connect to server or proxy. Used for active checks. +# Only one value can be specified: +# unencrypted - connect without encryption +# psk - connect using TLS and a pre-shared key +# cert - connect using TLS and a certificate +# +# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection) +# Default: +# TLSConnect=unencrypted + +TLSConnect=psk + +### Option: TLSAccept +# What incoming connections to accept. +# Multiple values can be specified, separated by comma: +# unencrypted - accept connections without encryption +# psk - accept connections secured with TLS and a pre-shared key +# cert - accept connections secured with TLS and a certificate +# +# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection) +# Default: +# TLSAccept=unencrypted + +TLSAccept=psk + +### Option: TLSPSKIdentity +# Unique, case sensitive string used to identify the pre-shared key. +# +# Mandatory: no +# Default: +# TLSPSKIdentity= + +TLSPSKIdentity={{zabbix_psk_id}} + +### Option: TLSPSKFile +# Full pathname of a file containing the pre-shared key. +# +# Mandatory: no +# Default: +# TLSPSKFile= + +TLSPSKFile=/etc/zabbix/zabbix_agentd.psk diff --git a/templates/zabbix-official-repo.gpg b/templates/zabbix-official-repo.gpg new file mode 100644 index 0000000000000000000000000000000000000000..6bb416d2610d44160764878776d3c5e312b30744 GIT binary patch literal 2083 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 literal 0 HcmV?d00001 diff --git a/templates/zabbix.list.j2 b/templates/zabbix.list.j2 new file mode 100644 index 0000000..795534c --- /dev/null +++ b/templates/zabbix.list.j2 @@ -0,0 +1,2 @@ +deb http://repo.zabbix.com/zabbix/4.4/debian {{ansible_distribution_release}} main +deb-src http://repo.zabbix.com/zabbix/4.4/debian {{ansible_distribution_release}} main \ No newline at end of file diff --git a/templates/zabbix_agentd.psk.j2 b/templates/zabbix_agentd.psk.j2 new file mode 100644 index 0000000..4d7b08f --- /dev/null +++ b/templates/zabbix_agentd.psk.j2 @@ -0,0 +1 @@ +{{zabbix_psk}} \ No newline at end of file diff --git a/tests/inventory b/tests/inventory new file mode 100755 index 0000000..878877b --- /dev/null +++ b/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/tests/test.yml b/tests/test.yml new file mode 100755 index 0000000..400dc94 --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - zabbix-agent \ No newline at end of file diff --git a/vars/main.yml b/vars/main.yml new file mode 100755 index 0000000..fedc36c --- /dev/null +++ b/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for zabbix-agent \ No newline at end of file