ES Version Installed 6.1.2
Machine - RHEL 7.5
FILE: es-data0.service
        [Unit]
         Description=Elasticsearch
         Documentation=http://www.elastic.co
         Wants=network-online.target
         After=network-online.target
         
        [Service]
        RuntimeDirectory=elasticsearch
        Environment=ES_HOME=/usr/share/elasticsearch
        #Environment=CONF_DIR=/etc/elasticsearch
        Environment=ES_PATH_CONF=/etc/elasticsearch/es-data0
        #Environment=DATA_DIR=/var/lib/elasticsearch
        #Environment=LOG_DIR=/var/log/elasticsearch
        Environment=PID_DIR=/var/run/elasticsearch/es-data0
        EnvironmentFile=-/etc/sysconfig/es-data0
        
        WorkingDirectory=/usr/share/elasticsearch
        
        User=elasticsearch
        Group=elasticsearch
        
        #ExecStartPre=/usr/share/elasticsearch/bin/elasticsearch-systemd-pre-exec
        
        ExecStart=/usr/share/elasticsearch/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid --quiet
                                                    #\
                                                    #-Edefault.path.logs=${LOG_DIR} \
                                                    #-Edefault.path.data=${DATA_DIR} \
                                                    #-Edefault.path.conf=${CONF_DIR}
         
        # StandardOutput is configured to redirect to journalctl since
        # some error messages may be logged in standard output before 
        # elasticsearch logging system is initialized. Elasticsearch
        # stores its logs in /var/log/elasticsearch and does not use
        # journalctl by default. If you also want to enable journalctl
        # logging, you can simply remove the "quiet" option from ExecStart.
        StandardOutput=journal
        StandardError=inherit
        
        # Specifies the maximum file descriptor number that can be opened by this process
        LimitNOFILE=65536
        
        # Specifies the maximum number of processes
        LimitNPROC=4096
        
        # Specifies the maximum number of bytes of memory that may be locked into RAM
        # Set to "infinity" if you use the 'bootstrap.memory_lock: true' option
        # in elasticsearch.yml and 'MAX_LOCKED_MEMORY=unlimited' in /etc/sysconfig/es-data0
        #LimitMEMLOCK=infinity
        
        # Specifies the maximum size of virtual memory
        LimitAS=infinity
        
        # Specifies the maximum file size
        LimitFSIZE=infinity
        
        # Disable timeout logic and wait until process is stopped
        TimeoutStopSec=0
        
        # SIGTERM signal is used to stop the Java process
        KillSignal=SIGTERM
        
        # Send the signal only to the JVM rather than its control group
        KillMode=process
        
        # Java process is never killed
        SendSIGKILL=no
        
        # When a JVM receives a SIGTERM signal it exits with code 143
        SuccessExitStatus=143
        
        [Install]
        WantedBy=multi-user.target
        
        # Built for distribution-6.1.2 (distribution)
FILE: /etc/sysconfig/es-data0
        DATA_DIR=/data/elasticsearch/es-data0
        ES_HOME=/usr/share/elasticsearch
        ES_JVM_OPTIONS=/etc/elasticsearch/es-data0/jvm.options
        ES_PATH_CONF=/etc/elasticsearch/es-data0
        ES_STARTUP_SLEEP_TIME=5
        LOG_DIR=/var/log/elasticsearch/es-data0
        MAX_LOCKED_MEMORY=unlimited
        MAX_MAP_COUNT=262144
        MAX_OPEN_FILES=65536
        PID_DIR=/var/run/elasticsearch
        RESTART_ON_UPGRADE=false
Error when starting any ES instance:
Config directory is /etc/elasticsearch/, from there the key- and truststore files are resolved relatively
...some stacktrace with irrelevant information...
Caused by: org.elasticsearch.ElasticsearchException: Unable to read /etc/elasticsearch/server.jks (/etc/elasticsearch/server.jks). Please make sure this files exists and is readable regarding to permissions. Property: searchguard.ssl.transport.keystore_filepath
The server.jks file is relative to the config/ directory
The server.jks file is present in the /etc/elasticsearch/es-data0 directory
Note: This is all managed by chef. This is based on the elasticsearch chef-cookbook
I have run diffs on all relevant files on a working machine that is loading the correct config directory from the environment variables set in the es-data0.service file
Startup from good running instance:
Config directory is /etc/elasticsearch/es-data0/, from there the key- and truststore files are resolved relatively
I need help getting ES to use the correct config directory.