Ansible应用之批量免密

本文介绍了如何使用Ansible进行批量配置,包括在多台主机间建立SSH免密登录和同步/etc/hosts文件。首先,编辑了/etc/hosts文件,然后创建了Ansible主机清单。接着,通过一个名为'send-pubkey.yml'的 playbook 发送公钥到所有主机,并在ansible.cfg中关闭host_key_checking。最后,使用'send-hosts.yml' playbook 同步所有节点的/etc/hosts文件并设置主机名。

Ansible应用之批量免密

1.编写/etc/hosts 文件

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.9.29.106 master
10.9.29.105 node1
10.9.29.107 node2

2.编译ansible 主机清单 hosts.ini

Master端

[master]
master

[nodes]
node1
node2

[ansible]
[ansible:children]
master
nodes

3.发送公钥

send-pubkey.yml

---
- hosts: all
  gather_facts: no
  remote_user: root
  vars:
    ansible_ssh_pass: 1  #这里写root密码
  tasks:
  - name: Set authorized key taken from file
    authorized_key:
      user: root
      state: present
      key: "{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"

/etc/ansible/ansible.cfg 打开以下注释
host_key_checking = False

ansible-playbook -i hosts.ini send-pubkey.yml

4.发送 /etc/hosts

cp /etc/hosts .

send-hosts.yml

---
- name: 同步所有节点的 /etc/hosts 文件 并且设置主机名
  hosts: ansible
  gather_facts: no
  tasks:
  - name: 同步 hosts 文件
    copy:
      src: hosts
      dest: /etc/hosts
  - name: 设置各自的主机名
    shell:
      cmd: hostnamectl set-hostname "{{ inventory_hostname }}"
    register: sethostname
  - name: 验证是否成功设置了主机名
    debug:
      var: sethostname.rc
...
ansible-playbook -i hosts.ini send-hosts.yml
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值