{"id":669,"date":"2017-01-05T05:22:59","date_gmt":"2017-01-04T22:22:59","guid":{"rendered":"http:\/\/blog.trichev.com\/?p=669"},"modified":"2017-08-10T09:10:35","modified_gmt":"2017-08-10T02:10:35","slug":"rancid-linux-centos-7-installation-for-juniperciscoarista-devices","status":"publish","type":"post","link":"https:\/\/trichev.com\/blog\/2017\/01\/05\/rancid-linux-centos-7-installation-for-juniperciscoarista-devices\/","title":{"rendered":"Rancid linux CentOS 7 installation for Juniper\/Cisco\/Arista devices"},"content":{"rendered":"<p><strong>Installation<\/strong><\/p>\n<p>yum install nano wget ftp telnet perl tcl expect gcc cvs rcs httpd autoconf openssh-clients postfix -y<\/p>\n<p>groupadd netadm<br \/>\nuseradd -g netadm -c &#8220;Networking Backups&#8221; -d \/usr\/local\/rancid rancid<br \/>\nmkdir \/usr\/local\/rancid\/pkg<br \/>\ncd \/usr\/local\/rancid\/pkg<br \/>\nwget ftp:\/\/ftp.shrubbery.net\/pub\/rancid\/rancid-3.4.1.tar.gz<br \/>\ntar zxvf rancid-3.4.1.tar.gz<br \/>\ncd rancid-3.4.1<br \/>\n.\/configure &#8211;prefix=\/usr\/local\/rancid\/<br \/>\nmake install<\/p>\n<p><strong>Configuration<\/strong><\/p>\n<p>cp \/usr\/local\/rancid\/pkg\/rancid-3.4.1\/cloginrc.sample \/usr\/local\/rancid\/.cloginrc<br \/>\nchmod 0600 \/usr\/local\/rancid\/.cloginrc<br \/>\nchown -R rancid:netadm \/usr\/local\/rancid\/<br \/>\nchmod 775 \/usr\/local\/rancid\/<br \/>\ncp \/usr\/local\/rancid\/pkg\/rancid-3.4.1\/README \/usr\/local\/rancid<\/p>\n<p><strong>SSH key\/keys generation<\/strong><\/p>\n<p>su &#8211; rancid<br \/>\nssh-keygen -t ecdsa (for Juniper)<br \/>\nssh-keygen -t rsa -b 4096 (for Cisco\/Arista devices)<br \/>\nssh-keygen -f .ssh\/id_rsa.pub -l (Show fingerprint of specified public key file)<\/p>\n<p><strong>clogin configuration<\/strong><\/p>\n<p>vi \/usr\/local\/rancid\/.cloginrc<br \/>\n<code>#add method * ssh<br \/>\n#add user * rancid<br \/>\n#add password * RancidPW EnablePW<br \/>\nadd password * blah<\/p>\n<p>#Juniper<br \/>\nadd user juniper-device-01 rancid<br \/>\nadd method juniper-device-01 {ssh}<br \/>\nadd identity juniper-device-01 $env(HOME)\/.ssh\/id_ecdsa<\/p>\n<p>#Cisco\/Arista<br \/>\nadd user ciscoarista-device-02 rancid<br \/>\nadd method ciscoarista-device-02 {ssh}<br \/>\nadd identity ciscoarista-device-02 $env(HOME)\/.ssh\/id_rsa<br \/>\nadd autoenable ciscoarista-device-02 1<\/code><\/p>\n<p><strong>Rancid configuration<\/strong><\/p>\n<p>vi \/usr\/local\/rancid\/etc\/rancid.conf<br \/>\nLIST_OF_GROUPS=&#8221;LOC1 LOC2&#8243;<br \/>\nFILTER_PWDS=NO; export FILTER_PWDS<br \/>\nNOCOMMSTR=NO; export NOCOMMSTR<\/p>\n<p>Once happy with your groups, you need to run rancid-cvs to create the directories\/files required as the rancid user<br \/>\nsu &#8211; rancid<br \/>\n\/usr\/local\/rancid\/bin\/rancid-cvs<\/p>\n<p><strong>router.db config<\/strong><br \/>\ncat &#8220;juniper-device-01;juniper;up&#8221; &gt;&gt; \/usr\/local\/rancid\/var\/LOC1\/router.db<br \/>\ncat &#8220;ciscoarista-device-02;arista;up&#8221; &gt;&gt; \/usr\/local\/rancid\/var\/LOC1\/router.db  or  cat &#8220;ciscoarista-device-02;cisco;up&#8221; &gt;&gt; \/usr\/local\/rancid\/var\/LOC1\/router.db<\/p>\n<p>vi \/etc\/aliases:<br \/>\n<code>rancid-LOC1: mail1@mail.com<br \/>\nrancid-admin-LOC1: mail1@mail.com<br \/>\nrancid-LOC2: mail1@mail.com<br \/>\nrancid-admin-LOC2: mail1@mail.com<\/code><\/p>\n<p>newaliases<\/p>\n<p><strong>SMTP postfix relay configuration<\/strong><\/p>\n<p>vi \/etc\/postfix\/main.cf<br \/>\n<code>inet_interfaces = 192.168.0.100<br \/>\nalias_maps = hash:\/etc\/aliases<br \/>\nalias_database = hash:\/etc\/aliases<br \/>\nrelayhost = 192.168.0.111<br \/>\nsmtp_fallback_relay = 192.168.0.112<br \/>\nmydomain = subdomain.domain.com<br \/>\nmyorigin = monhost.subdomain.domain.com<br \/>\nmydestinations = monhost.subdomain.domain.com<br \/>\nlocal_transport = error:local mail delivery is disabled<\/code><\/p>\n<p>systemctl restart postfix<br \/>\nsystemctl status postfix<\/p>\n<p><strong>Juniper device configuration<\/strong><br \/>\n<code>    set system login class RANCID permissions access<br \/>\n    set system login class RANCID permissions admin<br \/>\n    set system login class RANCID permissions firewall<br \/>\n    set system login class RANCID permissions flow-tap<br \/>\n    set system login class RANCID permissions interface<br \/>\n    set system login class RANCID permissions network<br \/>\n    set system login class RANCID permissions routing<br \/>\n    set system login class RANCID permissions secret<br \/>\n    set system login class RANCID permissions security<br \/>\n    set system login class RANCID permissions snmp<br \/>\n    set system login class RANCID permissions storage<br \/>\n    set system login class RANCID permissions system<br \/>\n    set system login class RANCID permissions trace<br \/>\n    set system login class RANCID permissions view<br \/>\n    set system login class RANCID permissions view-configuration<br \/>\n    set system login user rancid full-name RANCID<br \/>\n    set system login user rancid uid 2020<br \/>\n    set system login user rancid class RANCID<br \/>\n    set system login user rancid authentication ssh-ecdsa \"ecdsa-sha2-nistp256 loooooooooooooooong-hash LOC1MGMTRANCID\"<\/code><\/p>\n<p><strong>Cisco device configuration<\/strong><br \/>\n#You could find ssh rsa key fingerprint by <code>ssh-keygen -f .ssh\/id_rsa.pub -l <\/code>command<br \/>\n<code>    username rancid privilege 15<br \/>\n    ip ssh pubkey-chain<br \/>\n    username rancid<br \/>\n    key-hash ssh-rsa ssh-rsa-fingerprint-without-colons<\/code><\/p>\n<p><strong>Arista device configuration<\/strong><br \/>\n<code>    aaa authorization exec default local none<br \/>\n    username rancid privilege 15 secret secret-password<br \/>\n    username rancid sshkey ssh-rsa ssh-rsa-key-public-part-from-id_rsa.pub rancid@monhost<\/code><\/p>\n<p><strong>Check if ssh password less configuration works fine<\/strong><br \/>\n#juniper<br \/>\n\/usr\/local\/rancid\/bin\/jlogin -c &#8220;show version&#8221; juniper-device-01<br \/>\n#arista\/cisco<br \/>\n\/usr\/local\/rancid\/bin\/jlogin -c &#8220;show configuration&#8221; ciscoarista-device-02<\/p>\n<p><strong>Rancid manual start<\/strong><br \/>\n\/usr\/local\/rancid\/bin\/rancid-run<\/p>\n<p><strong>CRON setup<\/strong><br \/>\ncrontab -u rancid -e<\/p>\n<p><code>1 * * * * \/usr\/local\/rancid\/bin\/rancid-run<\/p>\n<p># Daily Clean Up of Diff Files at 11 50 pm<br \/>\n50 23 * * * \/usr\/bin\/find \/usr\/local\/rancid\/var\/logs -type f -mtime +2 -exec rm {} \\;<\/p>\n<p># Daily Clean Up of .SITE.run.lock Files at 11 50 pm<br \/>\n50 23 * * * rm \/tmp\/.*.lock<\/code><\/p>\n<p><strong>ViewVC installation<\/strong><\/p>\n<p>I suggest if RANCID has been provisioned as a VM, snapshot at this point in case you make a any mistakes configuring View VC.<\/p>\n<p>cd \/usr\/local\/rancid\/pkg<br \/>\nwget http:\/\/viewvc.tigris.org\/files\/documents\/3330\/49392\/viewvc-1.1.23.tar.gz<br \/>\ntar -zxvf viewvc-1.1.23.tar.gz<br \/>\ncd viewvc-1.1.23<br \/>\n.\/viewvc-install ## we set the installation path as \/usr\/local\/viewvc<\/p>\n<p>Consult the INSTALL document for detailed information on completing the installation and configuration of ViewVC on your system. Here\u2019s a brief overview of the remaining steps:<\/p>\n<p>1) Edit the \/usr\/local\/viewvc\/viewvc.conf file.<\/p>\n<p>2)Copy \/usr\/local\/viewvc\/bin\/cgi\/viewvc.cgi to an already-configured cgi-bin directory.<\/p>\n<p>vi \/usr\/local\/viewvc\/viewvc.conf<\/p>\n<p><code>root_parents = \/usr\/local\/rancid\/var\/CVS : cvs<br \/>\nrcs_dir = \/usr\/bin\/<br \/>\n#use_enscript = 1<br \/>\n#enscript_path = \/usr\/bin\/<br \/>\n#use_highlight = 1<br \/>\n#highlight_path = \/usr\/bin<\/code><\/p>\n<p>cp \/usr\/local\/viewvc\/bin\/cgi\/*.cgi \/var\/www\/cgi-bin\/<\/p>\n<p>chown apache:apache \/var\/www\/cgi-bin\/query.cgi<br \/>\nchown apache:apache \/var\/www\/cgi-bin\/viewvc.cgi<\/p>\n<p>vi \/etc\/httpd\/conf\/httpd.conf<br \/>\n<code>ScriptAlias \/rancid \"\/var\/www\/cgi-bin\/viewvc.cgi\"<br \/>\nScriptAlias \/query \"\/var\/www\/cgi-bin\/query.cgi\"<\/p>\n<p>&lt;Location \/viewvc&gt;<br \/>\nAuthType basic<br \/>\nAuthName &quot;Client Access&quot;<br \/>\nAuthUserFile \/usr\/local\/viewvc\/passwd<br \/>\nRequire valid-user<br \/>\n&lt;\/Location&gt;<\/code><\/p>\n<p>htpasswd -c  \/usr\/local\/viewvc\/passwd admin<\/p>\n<p>systemctl restart httpd<\/p>\n<p>Links:<br \/>\n<a href=\"https:\/\/www.cryptomonkeys.com\/2013\/09\/rancid-junos\/\">https:\/\/www.cryptomonkeys.com\/2013\/09\/rancid-junos\/<\/a><br \/>\n<a href=\"https:\/\/www.ip-life.net\/rancid-setup-on-ubuntu-10-04-lts\/\">https:\/\/www.ip-life.net\/rancid-setup-on-ubuntu-10-04-lts\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Installation yum install nano wget ftp telnet perl tcl expect gcc cvs rcs httpd autoconf openssh-clients postfix -y groupadd netadm useradd -g netadm -c &#8220;Networking Backups&#8221; -d \/usr\/local\/rancid rancid mkdir \/usr\/local\/rancid\/pkg cd \/usr\/local\/rancid\/pkg wget ftp:\/\/ftp.shrubbery.net\/pub\/rancid\/rancid-3.4.1.tar.gz tar zxvf rancid-3.4.1.tar.gz cd rancid-3.4.1 .\/configure &#8211;prefix=\/usr\/local\/rancid\/ make install Configuration cp \/usr\/local\/rancid\/pkg\/rancid-3.4.1\/cloginrc.sample \/usr\/local\/rancid\/.cloginrc chmod 0600 \/usr\/local\/rancid\/.cloginrc chown -R rancid:netadm \/usr\/local\/rancid\/ [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[231],"tags":[212,32,213,28,14,11],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/trichev.com\/blog\/wp-json\/wp\/v2\/posts\/669"}],"collection":[{"href":"https:\/\/trichev.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/trichev.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/trichev.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/trichev.com\/blog\/wp-json\/wp\/v2\/comments?post=669"}],"version-history":[{"count":12,"href":"https:\/\/trichev.com\/blog\/wp-json\/wp\/v2\/posts\/669\/revisions"}],"predecessor-version":[{"id":681,"href":"https:\/\/trichev.com\/blog\/wp-json\/wp\/v2\/posts\/669\/revisions\/681"}],"wp:attachment":[{"href":"https:\/\/trichev.com\/blog\/wp-json\/wp\/v2\/media?parent=669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trichev.com\/blog\/wp-json\/wp\/v2\/categories?post=669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trichev.com\/blog\/wp-json\/wp\/v2\/tags?post=669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}