Bu örneğimizde yerel bilgisayarımızda Ansible kullanarak, SSH üzerinden uzaktaki bilgisayarı versiyonlayacağız ve "tree" ismindeki paketi yükleyeceğiz.


Ön şartlar


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.


Kontrol


Yerel sunucu


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 sunucu


Uzak bilgisayardaki authorized_keys kontrol edelim.


remote-user:remote-server$ ls -l ~/.ssh/
-rw------- 1 inanzzz staff 5176 17 Mar 13:40 authorized_keys

Kurulum


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

SSH bağlantı testi


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:~$

Versiyonlama


hosts.yml


all:
hosts:
remote:
ansible_connection: ssh
ansible_user: remote-user
ansible_host: 192.168.99.31
ansible_port: 22

site.yml


---
# 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

Kurulum


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

Test


remote-user:remote-server$ tree --version
tree v1.7.0