我试着用Ansible做了一下操作系统的初始化设置!!!

Contents

    • Roleの概要

 

    • Linuxサーバの初期設定(Playbook)を,role形式で書く

 

    role内の各ファイル

角色概述

    • roleとは,Ansibleに組み込まれているplaybookをモジュール化し管理する仕組み

 

    roleで扱うメリットは,1つのplaybookで構成することは可能ではあるが,システムが大規模になればなるほど1つのplaybookで構成することは現実的ではない.(変更が容易ではなくなる)そのため,roleという小さい単位で分割することでplaybookの再利用性を高めることが可能.

每个role里的文件

setting.yml
├─ 角色/公共(common)/
├──── 默认(defaults)/
│─── ── 主要(main).yml
├──── 文件(files)/
├──── 处理器(handlers)/
│─── ── 主要(main).yml
├──── 元数据(meta)/
├──── 任务(tasks)/
├──── 模板(templates)/
├──── 测试(tests)/
│─── ── 清单(inventory)/
│─── ── ──── 清单(inventory).ini
└──── 变量(vars)/

用role形式编写Linux服务器的初始设置(Playbook)。

roles/common/tasks/main.yml 的中文释义是什么?

--
- name: Upgrade all yum packages excluding kernel
  yum:
    name: '*'
    state: latest
    update_cache: yes
    exclude: kernel*
  vars:
    ansible_python_interpreter: /usr/bin/python2

- name: Install the required packages
  yum:
    name:
      - "@Development Tools"
      - "epel-release"
      - "https://repo.ius.io/ius-release-el7.rpm"
    state: present
  vars:
    ansible_python_interpreter: /usr/bin/python2

- name: Install Python3.6
  yum:
    name:
      - "python36u"
      - "python36u-libs"
      - "python36u-devel"
    state: present
    enablerepo: ius
  vars:
    ansible_python_interpreter: /usr/bin/python2

- name: Deploy hosts file
  template:
    src: hosts.j2
    dest: /etc/hosts
    owner: root
    group: root
    mode: 0644

- name: Create new users
  user:
    name: "{{ item }}"
    shell: /bin/bash
    home: "/home/{{ item }}"
    state: present
  with_items: "{{ new_users }}"
  notify: Distribute authorized key

角色/常见/变量/主要.yml ///.yml)

---
new_users:
  - "user01"
  - "www"

角色/常见/处理器/main.yml

---
- name: Distribute authorized key
  authorized_key:
   user: "{{ item }}"
   key: "{{ lookup('file','/home/ansible/.ssh/id_rsa.pub') }}"
  with_items: "{{ new_users }}"

设置.yml

---
- name: Initialize OS setting for Linux Servers 
  #処理対象サーバ
  hosts: web_servers
  become: yes

  roles:
   - role: common //呼び出すroleを指定

库存/库存.ini

[test_servers]
localhost

[web_servers]
web-01 ansible_host={処理対象サーバのIPアドレス}

[web_servers:vars]
ansible_python_interpreter=/usr/bin/python3

请提供给我一份中文的参考。

Ansible的日本語文档可以在此链接找到:https://docs.ansible.com/core-translated