{"id":349,"date":"2014-04-10T14:40:53","date_gmt":"2014-04-10T21:40:53","guid":{"rendered":"https:\/\/analogman.org\/?p=349"},"modified":"2014-04-10T23:07:49","modified_gmt":"2014-04-11T06:07:49","slug":"installation-of-zimbra-8-06-community-edition-on-a-hyper-v-vm","status":"publish","type":"post","link":"https:\/\/www.analogman.org\/?p=349","title":{"rendered":"Installation of zimbra 8.06 Collaboration Server Open Source on a hyper-v vm"},"content":{"rendered":"<p>Installation of zimbra 8.06 Collaboration Server Open Source on a hyper-v vm<\/p>\n<p>March  2014 &#8211; ken lombardi<br \/>\nklombardi@2bridgestech.com<br \/>\n<a href=\"http:\/\/www.2bridgestech.com\/mediawiki\/index.php\/Main_Page\" title=\"2bridges Technologies Wiki\">www.2bridgestech.com\/mediawiki<\/a><\/p>\n<p>Well &#8211; I thought I would jot down some notes while I was installing ZCS &#8211; Open Source on a Hyper-V cluster. Single server installation. <\/p>\n<p>In the short time since this installation we have all been confronted with the Heartbleed exploit so right up front I am going to say &#8211; make sure when you are done check the version of openssl that you are running.<\/p>\n<p><em>openssl version -a<\/em><\/p>\n<p>You will want to take a look at the build date &#8211; make sure it is equal to or greater than April 7 of 2014<\/p>\n<p>I hope this helps someone get this pretty straight forward installation up and running. What a great email server. <\/p>\n<p>Here goes.<\/p>\n<p>First I built vm with 4gb ram and 20gb hd<br \/>\nSet network card to vlan2 (adjust to your needs) &#8211; we use vlans to manage ip space &#8211; if you are doing this on your local box or? you most likely won&#8217;t be using vlans. YMMD<br \/>\nInstalled ubuntu 12.04<br \/>\nOnly included open ssh server in addition to core components (see note above &#8211; confirm safe version when done)<\/p>\n<p>I set a static ip during installation<\/p>\n<p>192.168.x.2.99\/24<br \/>\n192.168.x.2 gw<br \/>\nSet name servers to 192.168.x.3 8.8.8.8<br \/>\n(of course all of these types of things need to be changed to meet your needs)<\/p>\n<p>&#8211; why does it take sooooo long to install? &#8211; <\/p>\n<p>***<br \/>\nLogged in as me <\/p>\n<p><em>sudo su  <\/em> (yeah I know we are supposed to sudo each command but I am old and what&#8217;s the worst thing that could happen? &#8211; so just remember as you look at the commands during the installation &#8211; unless I specify otherwise I am running them in an elevated state &#8211; as root)<\/p>\n<p><em>apt-get update<br \/>\napt-get upgrade<\/em><\/p>\n<p>wait awhile for this to finish &#8211; good to go<\/p>\n<p>***<\/p>\n<p>set hostname to zimbra2b<br \/>\ndomain 2bridgestacoma.com<br \/>\n(again edit to suit your needs &#8211; we own that domain so I just used it for testing)<\/p>\n<p><em>hostname &#8211;fqdn<\/em> = zimbra2b.2bridgestacoma.com<\/p>\n<p>I am going to use bind9 instead of dnsmasq (because Chris hates dnsmasq sooooo much)<br \/>\ndnsmasq may be a little lighter weight and easier to config &#8211; but maybe you want to use this computer as a full fledged DNS server for your domain(s) as well as a mail server&#8230;<\/p>\n<p><em>apt-get install bind9<\/em><\/p>\n<p>***<\/p>\n<p>Now edit \/etc\/bind\/named.conf.options<br \/>\nAdd the forwarder dns server ip address &#8211; I used 8.8.8.8 and changed to default directory to &#8220;\/etc\/bind&#8221;<br \/>\nI used vi &#8211; you use the editor of your choice. This is what it looked like when I was done.<\/p>\n<blockquote><p>options {<br \/>\n        directory &#8220;\/etc\/bind&#8221;;<\/p>\n<p>        \/\/ If there is a firewall between you and nameservers you want<br \/>\n        \/\/ to talk to, you may need to fix the firewall to allow multiple<br \/>\n        \/\/ ports to talk.  See http:\/\/www.kb.cert.org\/vuls\/id\/800113<\/p>\n<p>        \/\/ If your ISP provided one or more IP addresses for stable<br \/>\n        \/\/ nameservers, you probably want to use them as forwarders.<br \/>\n        \/\/ Uncomment the following block, and insert the addresses replacing<br \/>\n        \/\/ the all-0&#8217;s placeholder.<br \/>\n       forwarders {<br \/>\n               8.8.8.8;<br \/>\n        };<br \/>\n\/\/================================================<br \/>\n\/\/ If BIND logs error messages about the root key being expired,<br \/>\n\/\/ you will need to update your keys.  See https:\/\/www.isc.org\/bind-keys<br \/>\n\/\/================================================<br \/>\n        dnssec-validation auto;<br \/>\n        auth-nxdomain no;    # conform to RFC1035<br \/>\n        listen-on-v6 { any; };<br \/>\n};\n<\/p><\/blockquote>\n<p>Now add a zone to named.conf.local<\/p>\n<p>klombardi@zimbra2b:\/etc\/bind# <em>vi named.conf.local<br \/>\n<\/em><\/p>\n<blockquote><p>\/\/<br \/>\n\/\/ Do any local configuration here<br \/>\n\/\/<\/p>\n<p>\/\/ Consider adding the 1918 zones here, if they are not used in your<br \/>\n\/\/ organization<br \/>\n\/\/ include &#8220;\/etc\/bind\/zones.rfc1918&#8221;;<br \/>\n\/\/<\/p>\n<p>zone &#8220;2bridgestacoma.com&#8221; {<br \/>\n     type master;<br \/>\n     file &#8220;db.2bridgestacoma.com&#8221;;<br \/>\n};<\/p>\n<\/blockquote>\n<p>You can store your zone files where ever you want &#8211; if you are going to do lots with bind you might want to change the location &#8211; your call. I was lazy and just put them in with the other config files.  Note that in the named.conf.options you can change this directory<\/p>\n<p>Then create the data file<\/p>\n<p><em>vi \/etc\/bind\/db.2bridgetacoma.com<\/p>\n<p><\/em><br \/>\nHere is the content of mine<\/p>\n<p>root@zimbra2b:\/etc\/bind# more db.2bridgestacoma.com<\/p>\n<blockquote><p>;<br \/>\n; BIND data file for local 2bridgestacoma.com<br \/>\n;<br \/>\n$TTL     604800<br \/>\n@  IN    SOA zimbra2b.2bridgestacoma.com. webmaster.2bridgestacoma.com. (<br \/>\n                  2014032702              ; Serial<br \/>\n                     604800                  ; Refresh<br \/>\n                      86400                   ; Retry<br \/>\n                    2419200                 ; Expire<br \/>\n                     604800 )                ; Negative Cache TTL<br \/>\n;<br \/>\n@                                IN    A     192.168.x.99<br \/>\n2bridgestacoma.com.   IN    NS    zimbra2b.2bridgestacoma.com.<br \/>\n2bridgestacoma.com.   IN    MX  10     zimbra2b.2bridgestacoma.com.<br \/>\nzimbra2b              IN    A     192.168.x.99<br \/>\nmail                  IN    CNAME    zimbra2b.2bridgestacoma.com.<\/p>\n<\/blockquote>\n<p>Keep in mind that there are lots of ways to do this&#8230;try whatever works for you.<br \/>\nWhat&#8217;s the worst thing that could happen? &#8211; You will have to fix it.<\/p>\n<p>Then I edit the \/etc\/network\/interfaces to put the name server ip for this machine in 1st place. I used 127.0.0.1 because I know that I am going to be moving this box to a different IP when it is put into service.<\/p>\n<p>root@zimbra2b:\/etc# more network\/interfaces<\/p>\n<blockquote><p># This file describes the network interfaces available on your system<br \/>\n# and how to activate them. For more information, see interfaces(5).<\/p>\n<p># The loopback network interface<br \/>\nauto lo<br \/>\niface lo inet loopback<\/p>\n<p># The primary network interface<br \/>\nauto eth0<br \/>\niface eth0 inet static<br \/>\n     address 192.168.2.99<br \/>\n     netmask 255.255.255.0<br \/>\n     network 192.168.2.0<br \/>\n     broadcast 192.168.2.255<br \/>\n     gateway 192.168.2.2<br \/>\n     # dns-* options are implemented by the resolvconf package, if installed<br \/>\n     dns-nameservers 127.0.0.1 192.168.51.3 8.8.8.8<br \/>\n     dns-search 2bridgestacoma.com<\/p>\n<\/blockquote>\n<p>You may want to hand edit the \/etc\/resolv.conf file by hand to reflect this change.<br \/>\nNow reset the bind9 service<\/p>\n<p><em>root@zimbra2b:\/etc# service bind9 restart<\/em><\/p>\n<p>you could use<br \/>\n<em>\/etc\/init.d\/bind9 restart<\/em><\/p>\n<p>***<br \/>\nHere are some places for background&#8230;<br \/>\n<a href=\"http:\/\/wiki.zimbra.com\/wiki\/Split_dns\" title=\"zimbra wiki\" target=\"_blank\">http:\/\/wiki.zimbra.com\/wiki\/Split_dns<\/a><br \/>\n<a href=\"http:\/\/blog.zimbra.com\/blog\/archives\/2007\/06\/making-zimbra-bind-work-together.html\" title=\"Zimbra bind\" target=\"_blank\">http:\/\/blog.zimbra.com\/blog\/archives\/2007\/06\/making-zimbra-bind-work-together.html<\/a><br \/>\n<a href=\"http:\/\/www.servermom.org\/how-to-install-and-setup-bind9-on-ubuntu-server\/136\/\" title=\"Set up Bind\" target=\"_blank\">http:\/\/www.servermom.org\/how-to-install-and-setup-bind9-on-ubuntu-server\/136\/<br \/>\n<\/a><\/p>\n<p>***<\/p>\n<p>Now you will want to test your configuration&#8230;missed semi-colons can cause \u2018issues\u2019<br \/>\n(ok &#8211; so I missed a semi-colon, oh yeah, and a period, oh yeah and some letters)<\/p>\n<p><em>root@zimbra2b:\/etc\/bind# dig 2bridgestacoma.com mx<\/em><\/p>\n<blockquote><p>; <<>> DiG 9.8.1-P1 <<>> 2bridgestacoma.com mx<br \/>\n;; global options: +cmd<br \/>\n;; Got answer:<br \/>\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29296\n;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0\n\n;; QUESTION SECTION:\n;2bridgestacoma.com.          IN    MX\n\n;; ANSWER SECTION:\n2bridgestacoma.com.   604800    IN    MX   10 zimbra2b.2bridgetacoma.com.\n\n;; AUTHORITY SECTION:\n2bridgestacoma.com.   604800    IN    NS     zimbra2b.2bridgetacoma.com.\n\n;; Query time: 3 msec\n;; SERVER: 127.0.0.1#53(192.168.2.99)\n;; WHEN: Fri Mar 28 17:04:15 2014\n;; MSG SIZE  rcvd: 89\n<\/p><\/blockquote>\n<p>You may want to check DNS resolution for someplace out in the real internet too.<\/p>\n<p>***<\/p>\n<p>Now go to zimbra and download the zcs file for ubuntu<\/p>\n<p><a href=\"https:\/\/www.zimbra.com\/downloads\/\" title=\"Zimbra Downloads\" target=\"_blank\">https:\/\/www.zimbra.com\/downloads\/<\/a><\/p>\n<p><em>zcs-8.0.6_GA_5922.UBUNTU12_64.20131203103702.tar <\/em><\/p>\n<p>This is the file that I downloaded.<\/p>\n<p>Extract this (de-tar?) this file.<\/p>\n<p>       <em>root@zimbra2b:\/home\/mydirectory# tar -xvf zcs-8.0.6_GA_5922.UBUNTU12_64.20131203103702.tar<\/em><\/p>\n<p>Cd down into the zcs-8.0.6_GA_5922.UBUNTU12_64.20131203103702 directory and execute the install.sh file<\/p>\n<p>(remember that the name of the file you download from zimbra may have a different name)<\/p>\n<p><em>.\/install.sh<br \/>\n<\/em><\/p>\n<blockquote><p>Checking for prerequisites&#8230;<br \/>\n     FOUND: NPTL<br \/>\n     FOUND: netcat-openbsd-1.89-4ubuntu1<br \/>\n     FOUND: sudo-1.8.3p1-1ubuntu3.6<br \/>\n     FOUND: libidn11-1.23-2<br \/>\n     FOUND: libpcre3-8.12-4<br \/>\n     MISSING: libgmp3c2<br \/>\n     FOUND: libexpat1-2.0.1-7.2ubuntu1.1<br \/>\n     FOUND: libstdc++6-4.6.3-1ubuntu5<br \/>\n     MISSING: libperl5.14<\/p>\n<p>Checking for suggested prerequisites&#8230;<br \/>\n     MISSING: pax does not appear to be installed .<br \/>\n     FOUND: perl-5.14.2<br \/>\n     MISSING: sysstat does not appear to be installed.<br \/>\n     MISSING: sqlite3 does not appear to be installed.<\/p>\n<p>###WARNING###<\/p>\n<p>The suggested version of one or more packages is not installed.<br \/>\nThis could cause problems with the operation of Zimbra.<\/p>\n<\/blockquote>\n<p>***<\/p>\n<p>I had to stop here and install the missing prerequisites&#8230; listen to some music.<br \/>\nIt sure is nice that it checks and lets you know&#8230;.up front (try to spell the packages right)<\/p>\n<p>You can do them one at a time or all at once&#8230;your choice.<\/p>\n<p><em>apt-get install libgmp3c2 libperl5.14 pax sysstat sqlite3<\/em><\/p>\n<p>For some reason I insist on sqllite3 or sql-lite3 or anything but the right spelling. I suppose I could copy and paste&#8230;<\/p>\n<p>Once all that is done run the installation script again. Install all of the items you need (I install them all thinking that someday I will use ldap and radius)<\/p>\n<p>&#8211; why does it take sooooo long? &#8211; I need to get faster computers, eh?<\/p>\n<p>This is what you should see (this may change over time but I have no control over that)<\/p>\n<p>***<\/p>\n<blockquote><p>Main menu<\/p>\n<p>   1) Common Configuration:<br \/>\n   2) zimbra-ldap:                             Enabled<br \/>\n   3) zimbra-store:                            Enabled<br \/>\n        +Create Admin User:                    yes<br \/>\n        +Admin user to create:                 admin@2bridgestacoma.com<br \/>\n******* +Admin Password                        UNSET<br \/>\n        +Anti-virus quarantine user:           virus-quarantine.gi6g_oezh@2bridgestacoma.com<br \/>\n        +Enable automated spam training:       yes<br \/>\n        +Spam training user:                   spam.kjsz5lai@2bridgestacoma.com<br \/>\n        +Non-spam(Ham) training user:          ham.qfqtv4bm@2bridgestacoma.com<br \/>\n        +SMTP host:                            zimbra2b.2bridgestacoma.com<br \/>\n        +Web server HTTP port:                 80<br \/>\n        +Web server HTTPS port:                443<br \/>\n        +Web server mode:                      https<br \/>\n        +IMAP server port:                     143<br \/>\n        +IMAP server SSL port:                 993<br \/>\n        +POP server port:                      110<br \/>\n        +POP server SSL port:                  995<br \/>\n        +Use spell check server:               yes<br \/>\n        +Spell server URL:                     http:\/\/zimbra2b.2bridgestacoma.com:7780\/aspell.php<br \/>\n        +Configure for use with mail proxy:    FALSE<br \/>\n        +Configure for use with web proxy:     FALSE<br \/>\n        +Enable version update checks:         TRUE<br \/>\n        +Enable version update notifications:  TRUE<br \/>\n        +Version update notification email:    admin@2bridgestacoma.com<br \/>\n        +Version update source email:          admin@2bridgestacoma.com     <\/p>\n<p>   4) zimbra-mta:                              Enabled<br \/>\n   5) zimbra-snmp:                             Enabled<br \/>\n   6) zimbra-logger:                           Enabled<br \/>\n   7) zimbra-spell:                            Enabled<br \/>\n   8) Default Class of Service Configuration:<br \/>\n   r) Start servers after configuration        yes<br \/>\n   s) Save config to file<br \/>\n   x) Expand menu<br \/>\n   q) Quit                                   <\/p>\n<p>Address unconfigured (**) items  (? &#8211; help)<\/p>\n<\/blockquote>\n<p>***<\/p>\n<p>Note that the admin password needs to be set. Press 3 and the appropriate sub choice.<br \/>\nEnter your password &#8211; I&#8217;ve noticed this has an issue with certain special characters? anyone else?<\/p>\n<p>***<\/p>\n<blockquote><p>CONFIGURATION COMPLETE &#8211; press &#8216;a&#8217; to apply<br \/>\nSelect from menu, or press &#8216;a&#8217; to apply config (? &#8211; help) s<\/p>\n<p>Save config in file: [\/opt\/zimbra\/config.48847]<br \/>\nSaving config in \/opt\/zimbra\/config.48847&#8230;done.<\/p>\n<p>*** CONFIGURATION COMPLETE &#8211; press &#8216;a&#8217; to apply<br \/>\nSelect from menu, or press &#8216;a&#8217; to apply config (? &#8211; help) a<br \/>\nSave configuration data to a file? [Yes] yes<br \/>\nSave config in file: [\/opt\/zimbra\/config.48847]<br \/>\nSaving config in \/opt\/zimbra\/config.48847&#8230;done.<br \/>\nThe system will be modified &#8211; continue? [No] yes<br \/>\nOperations logged to \/tmp\/zmsetup.03282014-182540.log<br \/>\nSetting local config values&#8230;done.<br \/>\nInitializing core config&#8230;Setting up CA&#8230;done.<br \/>\nDeploying CA to \/opt\/zimbra\/conf\/ca &#8230;done.<br \/>\nCreating SSL zimbra-store certificate&#8230;done.<br \/>\nCreating new zimbra-ldap SSL certificate&#8230;done.<br \/>\nCreating new zimbra-mta SSL certificate&#8230;done.<br \/>\nInstalling mailboxd SSL certificates&#8230;done.<br \/>\nInstalling MTA SSL certificates&#8230;done.<br \/>\nInstalling LDAP SSL certificate&#8230;done.<br \/>\nInitializing ldap&#8230;done.<br \/>\nSetting replication password&#8230;done.<br \/>\nSetting Postfix password&#8230;done.<br \/>\nSetting amavis password&#8230;done.<br \/>\nSetting nginx password&#8230;done.<br \/>\nCreating server entry for zimbra2b.2bridgestacoma.com&#8230;done.<br \/>\nSetting Zimbra IP Mode&#8230;done.<br \/>\nSaving CA in ldap &#8230;done.<br \/>\nSaving SSL Certificate in ldap &#8230;done.<br \/>\nSetting spell check URL&#8230;done.<br \/>\nSetting service ports on zimbra2b.2bridgestacoma.com&#8230;done.<br \/>\nAdding zimbra2b.2bridgestacoma.com to zimbraMailHostPool in default COS&#8230;done.<br \/>\nSetting zimbraFeatureTasksEnabled=TRUE&#8230;done.<br \/>\nSetting zimbraFeatureBriefcasesEnabled=FALSE&#8230;done.<br \/>\nSetting MTA auth host&#8230;done.<br \/>\nSetting TimeZone Preference&#8230;done.<br \/>\nInitializing mta config&#8230;done.<br \/>\nSetting services on zimbra2b.2bridgestacoma.com&#8230;done.<br \/>\nCreating domain 2bridgestacoma.com&#8230;done.<br \/>\nSetting default domain name&#8230;done.<br \/>\nCreating domain 2bridgestacoma.com&#8230;already exists.<br \/>\nCreating admin account admin@2bridgestacoma.com&#8230;done.<br \/>\nCreating root alias&#8230;done.<br \/>\nCreating postmaster alias&#8230;done.<br \/>\nCreating user spam.kjsz5lai@2bridgestacoma.com&#8230;done.<br \/>\nCreating user ham.qfqtv4bm@2bridgestacoma.com&#8230;done.<br \/>\nCreating user virus-quarantine.gi6g_oezh@2bridgestacoma.com&#8230;done.<br \/>\nSetting spam training and Anti-virus quarantine accounts&#8230;done.<br \/>\nInitializing store sql database&#8230;done.<br \/>\nSetting zimbraSmtpHostname for zimbra2b.2bridgestacoma.com&#8230;done.<br \/>\nConfiguring SNMP&#8230;done.<br \/>\nSetting up syslog.conf&#8230;done.<br \/>\nStarting servers&#8230;done.<br \/>\nInstalling common zimlets&#8230;<br \/>\n     com_zimbra_proxy_config&#8230;done.<br \/>\n     com_zimbra_adminversioncheck&#8230;done.<br \/>\n     com_zimbra_bulkprovision&#8230;done.<br \/>\n     com_zimbra_email&#8230;done.<br \/>\n     com_zimbra_viewmail&#8230;done.<br \/>\n     com_zimbra_cert_manager&#8230;done.<br \/>\n     com_zimbra_phone&#8230;done.<br \/>\n     com_zimbra_srchhighlighter&#8230;done.<br \/>\n     com_zimbra_attachcontacts&#8230;done.<br \/>\n     com_zimbra_clientuploader&#8230;done.<br \/>\n     com_zimbra_ymemoticons&#8230;done.<br \/>\n     com_zimbra_attachmail&#8230;done.<br \/>\n     com_zimbra_url&#8230;done.<br \/>\n     com_zimbra_date&#8230;done.<br \/>\n     com_zimbra_webex&#8230;done.<br \/>\n     com_zimbra_tooltip&#8230;done.<br \/>\nFinished installing common zimlets.<br \/>\nRestarting mailboxd&#8230;done.<br \/>\nCreating galsync account for default domain&#8230;done.<\/p>\n<p>You have the option of notifying Zimbra of your installation.<br \/>\nThis helps us to track the uptake of the Zimbra Collaboration Server.<br \/>\nThe only information that will be transmitted is:<br \/>\n     The VERSION of zcs installed (8.0.6_GA_5922_UBUNTU12_64)<br \/>\n     The ADMIN EMAIL ADDRESS created (admin@2bridgestacoma.com)<\/p>\n<p>Notify Zimbra of your installation? [Yes] yes<br \/>\nNotifying Zimbra of installation via http:\/\/www.zimbra.com\/cgi-bin\/notify.cgi?VER=8.0.6_GA_5922_UBUNTU12_64&#038;MAIL=admin@2bridgestacoma.com<\/p>\n<p>Notification complete<\/p>\n<p>Setting up zimbra crontab&#8230;done.<\/p>\n<p>Moving \/tmp\/zmsetup.03282014-182540.log to \/opt\/zimbra\/log<\/p>\n<p>Configuration complete &#8211; press return to exit<\/p>\n<\/blockquote>\n<p>***<br \/>\nIncase you forget the password you created for the zimbra admin login<\/p>\n<p><em>root@zimbra2b:\/opt\/zimbra\/bin# .\/zmprov sp admin@2bridgestacoma.com somepassword<\/p>\n<p><\/em><br \/>\nI&#8217;ve noticed that this has some issues with certain special characters. I should pay more attention next time and write it up.<\/p>\n<p>***<\/p>\n<p>Now you can go to a browser and point it at the ip address you assigned.<\/p>\n<p>https:\\\\192.168.x.99:7071<\/p>\n<p>Login with the admin\/password combo and start setting things up.<br \/>\nYAY for Zimbra!<\/p>\n<p>Thank you <a href=\"http:\/\/www.2bridgestech.com\" title=\"2bridges Technologies\" target=\"_blank\">2bridges Technologies <\/a>for letting me write and post these things (and work on such great projects)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Installation of zimbra 8.06 Collaboration Server Open Source on a hyper-v vm March 2014 &#8211; ken lombardi klombardi@2bridgestech.com www.2bridgestech.com\/mediawiki Well &#8211; I thought I would jot down some notes while I was installing ZCS &#8211; Open Source on a Hyper-V cluster. Single server installation. In the short time since this installation we have all been [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[27,10,1,23],"tags":[],"class_list":["post-349","post","type-post","status-publish","format-standard","hentry","category-linux","category-training","category-uncategorized","category-windows"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.analogman.org\/index.php?rest_route=\/wp\/v2\/posts\/349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.analogman.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.analogman.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.analogman.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.analogman.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=349"}],"version-history":[{"count":10,"href":"https:\/\/www.analogman.org\/index.php?rest_route=\/wp\/v2\/posts\/349\/revisions"}],"predecessor-version":[{"id":359,"href":"https:\/\/www.analogman.org\/index.php?rest_route=\/wp\/v2\/posts\/349\/revisions\/359"}],"wp:attachment":[{"href":"https:\/\/www.analogman.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=349"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.analogman.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=349"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.analogman.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}