kdestroy
kinit -k -t myprincipal.keytab myprincipal/HOST.com
export KAFKA_CLIENT_KERBEROS_PARAMS="-Djava.security.auth.login.config=/etc/kafka/conf/kafka_client_jaas.conf"
/usr/hdp/current/kafka-broker/bin/kafka-console-consumer.sh \
--zookeeper zookeeper.com:2181 \
--topic topicname \
--from-beginning \
--security-protocol SASL_PLAINTEXT
Use Kafka command line with Kerberos
Login to Container in Kubernetes
Step 0
Get all pods
kubectl get po --all-namespaces
Find the pod name in which your container is running
Step 1
Get the container name from running pod
kubectl describe po pod_name --namespace my_namespace
Example output
Name: pod_name
Namespace: my_namespace
Node: docker-host-03/10.1.3.115
Start Time: Wed, 23 Nov 2016 16:57:15 +1100
Labels: name=my_container_name,pod-template-hash=2802333548
Status: Running
IP: 10.20.71.4
Note the label with value name
Step 2
Login to container
Example
kubectl exec -it pod_name --namespace my_namespace -c my_container_name bash
Why does my LinkedIn inbox always show one unread message ?
Even if I have read all of my Linkedin messages , it still shows one unread message. Strange but true.
I am not sure what is the problem but i can tell how i fixed that.
- Click on any message that you have already read.
- Mark it as UNREAD
- Click on another message that you have already read.
- Mark it as UNREAD
See , if you notice any change in unread messages indicator ?
For me it changed correctly and then I read both messages one by one and it made my all messages as Read.
Have great time using Linkedin :)
Websites for learning Regular expressions
Regular expressions are like swiss knife which can do lot of work in small amount of code.
However knowing them deeply is very important to write code which is optimal.
I found below good websites for them while using and learning about them.
A very good website to have visual debugging for Regular expressions
https://www.debuggex.com/
Website to create and test regular expressions
http://regexr.com/
https://regex101.com/
A good website for Regular expressions tutorials
http://www.rexegg.com/
SBT Native Packager Building Rpm with Python files
project > plugins.sbt and add the pluginaddSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.1.1")src/main/rpm/pre%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')The above script is removing the
bra-java-repack-jars and brb-python-bytecompile process from pre step of RPM installation.import RpmConstants._ maintainerScripts in Rpm := maintainerScriptsAppendFromFile((maintainerScripts in Rpm).value)( Pre -> (sourceDirectory.value / "main" / "rpm" / "pre") )
The complete
rpm.sbt is shown belowimport sbt.Keys._
import NativePackagerHelper._
enablePlugins(UniversalPlugin)
enablePlugins(RpmPlugin, RpmDeployPlugin)
maintainer in Linux := "admin@mail.com"
packageSummary in Linux := "Package code"
packageDescription := s"Application ${name.value}"
rpmVendor := "My company"
version in Rpm <<= version { (v: String) =>
v.trim.replace("-SNAPSHOT", s".${System.currentTimeMillis}")
}
rpmLicense := Option("Apache")
rpmObsoletes := Seq(s"${name.value}")
// This does not work
rpmBrpJavaRepackJars := false
defaultLinuxInstallLocation := "/var/lib/airflow"
// This allows to override the install location using RPM prefix
rpmPrefix := Some(defaultLinuxInstallLocation.value)
import RpmConstants._
// Remove all jars
mappings in Universal := (mappings in Universal).value.filterNot{
case (file, fname) => fname.endsWith(".jar")}
// Add fat jar
mappings in Universal += {
val fatJar = (assembly in Compile).value
fatJar -> s"${name.value}.jar"
}
// Copy contents of dags folder
mappings in Universal ++= directory("src/main/dags")
// Add version.txt file
mappings in Universal += {
val file = target.value / "version.txt"
IO.write(file, s"${(version in Rpm).value}")
file -> "version.txt"
}
import RpmConstants._
maintainerScripts in Rpm := maintainerScriptsAppendFromFile(
(maintainerScripts in Rpm).value)(
Pre -> (sourceDirectory.value / "main" / "rpm" / "pre")
)
publishTo <<= version { (v: String) =>
val artifactory = "https://artifactory.com/"
if (v.trim.endsWith("SNAPSHOT"))
Some("Artifactory Realm" at artifactory + "artifactory/rpm-snapshots")
else
Some("Artifactory Realm" at artifactory + "artifactory/rpm-releases/")
}Build the rpm using sbt command
rpm:packageBinrpm:publishHow to configure SSL/TLS for Jenkins
Enable only TLS 1.2
JENKINS_JAVA_OPTIONS="-Dhttps.protocols=TLSv1.2 -Djava.awt.headless=true"
Configure the certificate
Covert and export pkcs12 version to import into keystore
sudo openssl pkcs12 -inkey /var/lib/jenkins/ssl/myhost.key -in /var/lib/jenkins/ssl/myhost.cer -export -out /var/lib/jenkins/ssl/myhost.pkcs12
sudo keytool -importkeystore -srckeystore /var/lib/jenkins/ssl/myhost.pkcs12 -srcstoretype pkcs12 -destkeystore /var/lib/jenkins/ssl/jenkins.jks
Enter some password where ever it asks. (I have used jenkins)
Edit the /etc/sysconfig/jenkins with following
JENKINS_ARGS="--httpsKeyStore=/var/lib/jenkins/ssl/jenkins.jks --httpsKeyStorePassword=jenkins --httpsPort=8080"
Printing on mac with command line
Get the printer name
lpstat -v
Send the print and set paper size
lp -d NAMEofPRINTER -o media=A4 ./*.doc