Coder Social home page Coder Social logo

ansible-ssh-copy-id's Introduction

ansible-ssh-copy-id

Ansible cli-playbook для копирования ssh-ключей пользователя с текущей машины, откуда запускается команда, и ключа с личного компьютера.

Зависимости

Ansible, для подключение по паролю через ssh, использует консольную утилиту sshpass. Она будет необходима для корректной работы cli-playbook.

$> sudo apt-get install sshpass

Подготовка

  1. Клонируем репозиторий

    $> git clone https://github.com/cardinalit/ansible-ssh-copy-id.git
  2. Переходим в папку

    $> cd ansible-ssh-copy-id/
  3. Редактируем файл hosts и настраиваем глобальные переменные для всех хостов в группе [all:vars]

    $> vim ./hosts
    
    1 [all:vars]
    2 ansible_user=ansible-task
    3 ansible_ssh_pass="{{ vault_all_ansible_pass }}"
    4 ansible_become=true
    5 ansible_become_pass="{{ vault_all_ansible_become_pass }}"
    6 ansible_default_remote_user=admin
    7
    8 [my-host-group]
    9 localhost
  4. Далее необходимо создать / отредактировать существующий ansible-vault, который хранит чувствительные данные, такие как:

    • ssh пароль
    • пароль от sudo

    4.1 Создаем свой ansible-vault

    $> ansible-vault create ./group_vars/all
    
    New Vault password:
    Confirm New Vault password:

    Далее Вы увидите, откроется Ваш консольный редактор по умолчанию, и будет ожидать завершения ввода данных и сохранения файла. После этого, ansible-vault сохранит и зашифрует все данные с использованием Вашего пароля в директорию, которую Вы указали при запуске команды Выше.

    Формат записи данных сл.:
    var_name: value

    Пример:

    vault_all_ansible_pass: your_password
    vault_all_ansible_become_pass: your_password

    Эти переменные будут использоваться, как переменные во всем cli-playbook, поэтому важно давать им максимально читабельные и интуитивно-понятные имена.

    Как Вы могли заметить ранее, var_name уже использовались в файле инвентаризации hosts, когда мы его редактировали.

    4.2 Редактируем уже имеющийся в примере ansible-vault

    Пароль, используемый в примере: test

    $> ansible-vault edit ./group_vars/all
    
    Vault password:

    Далее откроется редактор со сл. содержимым:

    vault_all_ansible_pass: your_password
    vault_all_ansible_become_pass: your_password

    , где необходимо заменить <your_password> на Ваши реальные данные и сохранить.

    Чтобы посмотреть данные, которые находятся в ansible-vault, используется команда:

    $> ansible-vault view ./group_vars/all
    
    Vault password: 
    
    vault_all_ansible_pass: your_password
    vault_all_ansible_become_pass: your_password
    
    $>
  5. Запуск

    $> cd ./cli-playbook/
    $> ./ans-ssh-copy-id --ask-vault-pass
    
    Vault password: 
    
    ВАЖНО!
    
    Выполните на своем (домашнем) компьютере сл. команду `cat ~/.ssh/id_rsa.pub`
    Вывод команды скопируйте и вставьте сюда:

    После вставки Вашего публичного ключа, запустятся таски на выполнение для всех машин, известных в файле инвентаризации hosts.

ansible-ssh-copy-id's People

Contributors

cardinalit avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

ylubyanoy amixp

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.