ansible roles 作业

本文介绍了如何使用Ansible自动化配置系统基础设置,包括设置Asia/Shanghai时区、配置NTP服务器、管理主机名和hosts文件,以及公钥分发。通过创建任务文件和模板文件,实现对目标主机的时钟同步、主机文件更新和SSH密钥自动化分发。
摘要由CSDN通过智能技术生成

完成系统基础配置:

1、时区设置为Asia/Shanghai,时钟同步 

2、主机名和hosts文件配置

3、公钥分发

上图是一张ansible roles的目录结构图,我们在创建roles时根据自己的需求创建各目录,用不到的目录可创建为空目录,或不创建 。

1、创建目录

~]# mkdir -p test/{tasks,templates,files,vars}

 2、创建main.yml 文件

 上图就是一个整体的目录结构

3、准备变量文件 vars/main.yml

ntp_server: 192.168.43.10
time_zone: Asia/Shanghai

(1)把Asia/Shanghai定义为变量,让task去引用这个变量,可以根据不同的场景修改;

(2)ntp server 设置成一个变量,并设置ntp server服务器地址;

4、准备配置文件templates/ntp.conf.j2

将已修改好的配置文件放在templates/下并以j2后缀

5、编写tasks/main.yml文件

因为任务不是很多,直接将所有task放入main.yml文件中。

(1)时区设置,只需一步,使用shell模块,去引用前面在vars中设置的变量time_zone,

- name: set timezone

  shell: /usr/bin/timedatectl set-timezone {{ time_zone }}

(2)时钟同步: 需要两步完成,先设置ntp server ,使用template模块,将设置好的conf.j2配置文件复制到远程主机的etc下,然后重启ntpd,

- name: set ntp server

  template:

    src: ntp.conf.j2

    dest: /etc/ntp.conf

- name: restart ntpd

  systemd:

    name:ntpd

    daemon_reload: yes

    state: started

(3)主机和hosts文件配置:将写好的host文件存放在hosts目录下,使用template模块,将host文件分发到其他主机;

- name: copy host file

  template:

    src: /etc/hosts

    dest: /etc

(4)公钥分发部分

- name: create sshkey                                 #创建sshkey
  shell: ssh-keygen -N "" -f /root/.ssh/id_rsa -q     #生成密钥对

- name: copy sshkey
  authorized_key: 
    user: root                                               #被控制的远程主机上的用户名                                                
    key: "{{ lookup('file','/root/.ssh/id_rsa.pub') }}"       #本机的公钥地址

- name: close ssh check                                      #关闭初次访问提示询问
  shell: sed -i "s/^.*StrictHostKeyChecking.*$/   StrictHostKeyChecking no/g" /etc/ssh/ssh_config

- name: fetch copy                                      #从各被控制主机将公钥拷贝到本机
  fetch: src=/root/.ssh/id_rsa.pub dest=/tmp/ssh/

- name: append file authorized_keys.log                 #将各个公钥合并成一个文件
  shell: find /tmp/ssh/* -type f -exec sh -c 'cat {}>>/tmp/ssh/authorized_keys.log' \;
  run_once: true

- name: copy authorized_keys                        # 将合成的公钥进行分发                                                
  copy: src=/tmp/ssh/authorized_keys.log dest=/root/.ssh/authorized_keys mode=0600             
     

6、编写主的test.yml文件调用test角色

- name: set timezone and ntpd

  hosts: test

  remote_user: root

  roles: 

    - test

 7、整体目录结构查看

8、执行playbook

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值