18/03/2018 - ANSIBLE
Bu örneğimizde yerel bilgisayarımızda Ansible kullanarak, SSH üzerinden uzaktaki bilgisayarı versiyonlayacağız ve "tree" ismindeki paketi yükleyeceğiz.
Yerel bilgisayarınızda SSH anahtarlarının bulunduğunu varsayıyorum. Uzaktaki bir bilgisayara SSH ile bağlanmak isterseniz, yerel bilgisayardaki ~/.ssh/id_rsa.pub
dosyasının içeriğini uzak bilgisayardaki ~/.ssh/authorized_keys
dosyasına eklemeliyiz.
Yerel bilgisayardaki SSH anahtarlarını kontrol edelim. Burada bizi ilgilendiren id_rsa.pub
dosyasının varlığıdır.
local-user:local-server$ ls -l ~/.ssh/
-rw------- 1 inanzzz staff 3243 20 Mar 2017 id_rsa
-rw-r--r-- 1 inanzzz staff 748 20 Mar 2017 id_rsa.pub
-rw------- 1 inanzzz staff 5176 17 Mar 13:40 known_hosts
Uzak bilgisayardaki authorized_keys
kontrol edelim.
remote-user:remote-server$ ls -l ~/.ssh/
-rw------- 1 inanzzz staff 5176 17 Mar 13:40 authorized_keys
Yerel sunucudaki id_rsa.pub
dosyasının içeriğini kopyalayıp, uzak sunucunun authorized_keys
dosyasına ekleyelim.
local-user:local-server$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1y++SDsT1xc9+L2Q # This is actually longer
remote-user:remote-server$ echo "ssh-rsa AAAAB3NzaC1y++SDsT1xc9+L2Q" >> ~/.ssh/authorized_keys
Yerel sunucudayken, uzak sunucunun kullanıcı adını ve IP adresini kullanarak SSH bağlantısı kuracağız.
local-user:local-server$ ssh remote-user@192.168.99.31
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-92-generic x86_64)
remote-user@linux:~$
all:
hosts:
remote:
ansible_connection: ssh
ansible_user: remote-user
ansible_host: 192.168.99.31
ansible_port: 22
---
# This playbook sets up whole stack.
- name: Configurations to "remote" host
hosts: remote
remote_user: remote-user
become: yes
tasks:
- name: Install tree
apt:
name: tree
state: present
update_cache: yes
tags:
- tree
local-user:local-server$ ansible-playbook site.yml -i hosts.yml -vvvv
PLAYBOOK: site.yml ************************************************************
1 plays in site.yml
PLAY [Configurations to "remote" host] ****************************************
TASK [Gathering Facts] ********************************************************
ok: [remote]
META: ran handlers
TASK [Install tree] ***********************************************************
META: ran handlers
META: ran handlers
PLAY RECAP ********************************************************************
remote : ok=2 changed=1 unreachable=0 failed=0
remote-user:remote-server$ tree --version
tree v1.7.0