Red Hat Atomic Enterprise Quick Start ===================================== 0: Read the disclaimer ---------------------- This is still a work in progress. It can be done with 1 or more systems in a configuration of: - One master that also serves as a node - Zero or more dedicated nodes 1 Download RHEL --------------- Download the most recent version of RHEL x86_64: https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.1/x86_64/product-downloads 2 Install RHEL -------------- Install the version of RHEL that you just downloaded. 3 Register The system --------------------- [source,bash] subscription-manager register --auto-attach 4 Disable all repos ------------------- [source,bash] subscription-manager repos --disable="*" 5 Enable the ones weâll be using -------------------------------- [source,bash] ----------------------------------------- subscription-manager repos \ --enable="rhel-7-server-rpms" \ --enable="rhel-7-server-extras-rpms" \ --enable="rhel-7-server-optional-rpms" \ --enable="rhel-server-7-ose-3.0-rpms" ----------------------------------------- 6 Install Packages ------------------ [source,bash] ---------------------------------------------------------------------------- $ sudo yum -y install wget vim-enhanced net-tools bind-utils tmux git docker ---------------------------------------------------------------------------- 7 Setup repos ------------- [source,bash] ------------------------------------------------------------------------------------------------------------------------------- # Install our atomic enterprise repo $ sudo wget -O /etc/yum.repos.d/atomic-enterprise.repo http://mirror.ops.rhcloud.com/atomic/mirror/.atomic-enterprise-early-1/atomic-enterprise.repo # Install EPEL (For ansible) $ sudo yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm $ sudo sed -i -e "s/^enabled=1/enabled=0/" /etc/yum.repos.d/epel.repo ------------------------------------------------------------------------------------------------------------------------------- 8 Install ansible Package ------------------------- [source,bash] ----------------------------------------------- $ sudo yum -y --enablerepo=epel install ansible ----------------------------------------------- 9 Setup hosts ------------- [source,bash] ---------------------------------------------------------------------------------- $ sudo hostnamectl set-hostname ae-master.example.com $ sudo bash -c âecho â${YOUR IP ADDRESS} ae-master.example.comâ >> /etc/hostsâ ---------------------------------------------------------------------------------- 10 Clone Repos -------------- [source,bash] ---------------------------------------------------------------------------------- cd /root git clone https://github.com/projectatomic/atomic-enterprise-training.git training git clone https://github.com/projectatomic/atomic-enterprise-ansible.git ---------------------------------------------------------------------------------- 11 Setup SSH environment (for ansible) -------------------------------------- [source,bash] ---------------------------------- ssh-keygen # Accept the defaults ssh-copy-id ae-master.example.com ---------------------------------- Sample output: [source,bash] --------------------------------------------------------------------------------------------------------------- [root@ae-master ~]# ssh-copy-id ae-master.example.com The authenticity of host 'ae-master.example.com (192.168.122.239)' can't be established. ECDSA key fingerprint is 67:ca:e2:c2:eb:e0:fd:6c:de:74:bb:aa:6c:25:07:a7. Are you sure you want to continue connecting (yes/no)? yes /bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@ae-master.example.com's password: Number of key(s) added: 1 --------------------------------------------------------------------------------------------------------------- Now try logging into the machine, with: "ssh 'ae-master.example.com'" and check to make sure that only the key(s) you wanted were added. 12 setup ansible installer -------------------------- [source,bash] ------------------------------------------------------------------------------------------------------ /bin/cp -r ~/training/eap-latest/ansible/* /etc/ansible/ vi /etc/ansible/hosts # Edit the bottom lines to only include the one ae-master.example.com or add other nodes if they exist ------------------------------------------------------------------------------------------------------ 13 Run ansible -------------- [source,bash] ansible-playbook ~/atomic-enterprise-ansible/playbooks/byo/config.yml [CAUTION] Donât bother moving on if this fails Success looks (something) like this: [source,bash] ------------------------------------------------------------------------------- PLAY RECAP ******************************************************************** ae-master.example.com : ok=95 changed=42 unreachable=0 failed=0 localhost : ok=5 changed=0 unreachable=0 failed=0 ------------------------------------------------------------------------------- 14 run oc get nodes (things should be up now) --------------------------------------------- [source,bash] oc get nodes You should see: [source,bash] ----------------------------------------------------------------------------- NAME LABELS STATUS ae-master.example.com kubernetes.io/hostname=ae-master.example.com Ready ----------------------------------------------------------------------------- 15 Create sample app (from the training example earlier) -------------------------------------------------------- [source,bash] oc create -f /root/training/eap-latest/hello-pod.json Hereâs an in-the-field, live-fire example: [source,bash] ------------------------------------------------------------------------- [root@ae-master ~]# oc create -f /root/training/eap-latest/hello-pod.json pods/hello-atomic ------------------------------------------------------------------------- 16 Verify pod exists -------------------- Check to see that the pod exists: [source,bash] oc get pods While itâs starting, you should see: [source,bash] -------------------------------------------------- NAME READY REASON RESTARTS AGE hello-atomic 0/1 Pending 0 4s -------------------------------------------------- Keep running âoc get podsâ until the pod is in state âRunningâ, this can take roughly a minute and involves downloading a docker image so time can vary depending on network speed: [source,bash] -------------------------------------------------- NAME READY REASON RESTARTS AGE hello-atomic 1/1 Running 0 1m -------------------------------------------------- Get a longer description of the pod and note the IP: field, youâll need it for the next step: [source,bash] oc describe pods hello-atomic The output should look something like: [NOTE] Take notice of the IP field below: [source,bash] ---------------------------------------------------------------- Name: hello-atomic Image(s): atomicenterprise/hello-atomic:latest Host: ae-master.example.com/192.168.122.154 Labels: name=hello-atomic Status: Running IP: 10.1.0.2 Replication Controllers: <none> ... ---------------------------------------------------------------- 17 Access new pod ----------------- [source,bash] curl http://$IP_FROM_ABOVE:8080/ 18 Try new things ----------------- Thatâs it, your system should be up and running. You can now add new nodes. Try adding the internal registry with the âoadm registryâ command. Or try adding the enterprise router with the âoadm routerâ command. You can also take a look at other kubernetes examples: https://github.com/kubernetes/kubernetes/tree/master/examples [IMPORTANT] Remember to use the âocâ command instead of the âkubectlâ command when using Atomic Enterprise Platform.