我试着用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