利用Ansible为集群初始化并配置免密
前情概要
集群的36台服务器安装好了centos7.9设置了统一的root密码,并配置好了主机名和ip。现在需要实现:
- 每台关闭防火墙和selinux
- 删除安装操纵系统时创建的默认用户user及其家目录
- 将集群的36台主机和ip信息添加到/etc/hosts文件
- 删除默认yum源配置文件,添加指定的repo文件
- 为集群36台主机配置ssh相互免密
Ansible实现
感觉Ansible比利用脚本来得更方便,以是利用Ansible。
playbook的yaml文件:- ---
- - name: Initialize servers
- hosts: all_servers
- gather_facts: no
- become: no
- tasks:
- - name: Disable firewall
- service:
- name: firewalld
- state: stopped
- enabled: no
- - name: Disable SELinux
- selinux:
- state: disabled
- policy: targeted
- - name: Disable SELinux immediately
- command: setenforce 0
- ignore_errors: yes
- - name: Ensure user is absent and home directory removed
- user:
- name: user
- state: absent
- remove: yes
- - name: Remove default yum repos
- file:
- path: "{{ item }}"
- state: absent
- with_fileglob:
- - /etc/yum.repos.d/*.repo
- - name: Copy http.repo to all servers
- copy:
- src: /root/http.repo
- dest: /etc/yum.repos.d/http.repo
- owner: root
- group: root
- mode: '0644'
- - name: Add hostname into /etc/hosts
- lineinfile:
- path: /etc/hosts
- line: "{{ hostvars[item]['ansible_host'] }} {{ item }}"
- state: present
- create: yes
- regexp: "^{{ hostvars[item]['ansible_host'] }}\\s+{{ item }}$"
- with_items: "{{ groups['all_servers'] }}"
- - name: Check /root/.ssh exists
- file:
- path: /root/.ssh
- state: directory
- mode: '0700'
- - name: Check id_rsa exists
- stat:
- path: /root/.ssh/id_rsa
- register: ssh_key
- - name: Generate SSH keypair if not already present
- openssh_keypair:
- path: /root/.ssh/id_rsa
- type: rsa
- size: 2048
- state: present
- mode: '0600'
- when: not ssh_key.stat.exists
- - name: Gather SSH public keys from all servers
- slurp:
- src: /root/.ssh/id_rsa.pub
- register: public_key
- - name: Set up authorized_keys for all servers
- authorized_key:
- user: root
- key: "{{ hostvars[item]['public_key']['content'] | b64decode }}"
- state: present
- with_items: "{{ groups['all_servers'] }}"
复制代码 inventory文件- [all_servers]
- hpc_mgr_1 ansible_user=root ansible_host=10.2.1.9 ansible_connection=local
- hpc_mgr_2 ansible_user=root ansible_host=10.2.1.11
- hpc_node_1 ansible_user=root ansible_host=10.2.1.13
- hpc_node_2 ansible_user=root ansible_host=10.2.1.15
- hpc_node_3 ansible_user=root ansible_host=10.2.1.17
- hpc_node_4 ansible_user=root ansible_host=10.2.1.19
- hpc_node_5 ansible_user=root ansible_host=10.2.1.21
- hpc_node_6 ansible_user=root ansible_host=10.2.1.23
- hpc_node_7 ansible_user=root ansible_host=10.2.1.25
- hpc_node_8 ansible_user=root ansible_host=10.2.1.27
- hpc_node_9 ansible_user=root ansible_host=10.2.1.29
- hpc_node_10 ansible_user=root ansible_host=10.2.1.31
- hpc_node_11 ansible_user=root ansible_host=10.2.1.33
- hpc_node_12 ansible_user=root ansible_host=10.2.1.35
- hpc_node_13 ansible_user=root ansible_host=10.2.1.37
- hpc_node_14 ansible_user=root ansible_host=10.2.1.39
- hpc_node_15 ansible_user=root ansible_host=10.2.1.41
- hpc_node_16 ansible_user=root ansible_host=10.2.1.43
- hpc_node_17 ansible_user=root ansible_host=10.2.1.45
- hpc_node_18 ansible_user=root ansible_host=10.2.1.47
- hpc_node_19 ansible_user=root ansible_host=10.2.1.49
- hpc_node_20 ansible_user=root ansible_host=10.2.1.51
- hpc_node_21 ansible_user=root ansible_host=10.2.1.53
- hpc_node_22 ansible_user=root ansible_host=10.2.1.55
- hpc_node_23 ansible_user=root ansible_host=10.2.1.57
- hpc_node_24 ansible_user=root ansible_host=10.2.1.59
- hpc_node_25 ansible_user=root ansible_host=10.2.1.61
- hpc_node_26 ansible_user=root ansible_host=10.2.1.63
- hpc_node_27 ansible_user=root ansible_host=10.2.1.65
- hpc_node_28 ansible_user=root ansible_host=10.2.1.67
- hpc_node_29 ansible_user=root ansible_host=10.2.1.69
- hpc_node_30 ansible_user=root ansible_host=10.2.1.71
- hpc_node_31 ansible_user=root ansible_host=10.2.1.73
- hpc_node_32 ansible_user=root ansible_host=10.2.1.75
- hpc_fnode_1 ansible_user=root ansible_host=10.2.1.77
- hpc_fnode_2 ansible_user=root ansible_host=10.2.1.79
复制代码 执行playbook:- ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i inventory.ini a.yaml --ask-pass
复制代码 总结
临时利用,体验很不错。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |