Ansible角色

第一章 Ansible rolers介绍

官方地址:

https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html

第二章 角色目录规划

01.目录说明:

官方的目录结构,必须这样定义!

[root@m01 ~]# cd /etc/ansible/roles/
[root@m01 /etc/ansible/roles]# tree
.
├── nfs                   #角色名称
│   ├── files             #存放需要copy的文件
│   ├── handlers          #触发任务剧本
│   ├── tasks             #具体任务剧本
│   ├── templates         #模版文件
│   └── vars              #存放变量文件

02.创建项目目录

因为每台服务器都需要创建用户组,用户,安装服务等,所以我们可以将这些相同的任务单独创建一个init初始化角色。

角色规划:

1.init      #初始化任务
2.rsync     #rsync服务
3.nfs       #nfs服务
4.lsyncd    #lsyncd服务

创建角色目录:

[root@localhost roles]#  mkdir {init,nfs,rsync,lsyncd}/{vars,tasks,templates,handlers,files} -p
[root@localhost roles]# tree
.
├── init
│   ├── files
│   ├── handlers
│   ├── tasks
│   ├── templates
│   └── vars
├── lsyncd
│   ├── files
│   ├── handlers
│   ├── tasks
│   ├── templates
│   └── vars
├── nfs
│   ├── files
│   ├── handlers
│   ├── tasks
│   ├── templates
│   └── vars
└── rsync
    ├── files
    ├── handlers
    ├── tasks
    ├── templates
    └── vars

第三章 编写init角色剧本

01.创建对应目录

mkdir /etc/ansible/roles/init/{vars,tasks,templates,handlers,files} -p

02.编写任务剧本

[root@m01 ~]# cat /etc/ansible/roles/init/tasks/main.yml 
#01.配置base源
- name: 01_configure_yum_repos
  yum_repository:
    name: base 
    description: base yum repo
    baseurl:
      - http://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
    gpgcheck: no
#02.配置epel源
- name: 02_configure_yum_Repos
  yum_repository:
    name: epel
    description: epel yum repo
    baseurl:
      - https://mirrors.tuna.tsinghua.edu.cn/epel/7/$basearch
    gpgcheck: no
#03.安装常用软件
- name: 03_install_server
  yum: 
    name: "{{ packages }}" 
  vars:
    packages:
    - ntpdate 
    - lsof
    - tree 
    - iftop
    - iotop
#04.创建用户组
- name: 04_create_group
  group:
    name: www
    gid: 666
#05.创建用户
- name: 05_create_user
  user:
    name: www
    uid: 666
    group: www 
    shell: /sbin/nologin
    create_home: no
#06.创建数据目录和脚本目录
- name: 06_create_dir
  file:
    path: "{{ item }}"
    state: directory
    mode: '0755'
  loop:
    - /data
    - /server/scripts
#07.创建同步时间定时任务
- name: 07_cron_ntpdate
  cron: 
    name: Time_Update
    minute: "*/5"
    job: '/sbin/ntpdate time1.aliyun.com'
#08.拷贝优化后的ssh配置文件
- name: 08_copy_ssh
  template: 
    src: sshd_config.j2
    dest: /etc/ssh/sshd_config 
    mode: '0600'
    backup: yes
  notify: restart sshd

03.编写jinja模版文件

未完

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值