1、ansible役割は、
標準化されたルールのセットをansible公式は、例えばロールと呼ばれる、我々は、ロールに抽象化のnginxのnginxのプロセスを設定することができる
共感Redisの役割として理解することができるように同じであり、その構成プロセスはansible固定テンプレート有する
[ルート@ 〜M01]#のCDの/ etc / ansible /役割/
[ルート@ M01の/ etc / ansible /役割]#ツリー
。
├──のrsync#ロール名
│├──ファイル#は、ファイルを保存コピーする必要があり
│├──ハンドラ#トリガータスクスクリプト
│├──タスク#特定のタスクスクリプト
│├──テンプレート#テンプレートファイル
│は└──#変数ストレージファイルをvarsの
(例えば、rsyncのサービスを設定するには)2、ansible役割のディレクトリテンプレート
ます。mkdir -pの/ etc / ansible /役割/ rsyncの(ディレクトリが一元管理するように、ロールを作成する)
MKDIR {ファイル、ハンドラ、タスク、テンプレート、VARS}(提供死にましたディレクトリ)
1)CDのrsyncの
viのタスク/ main.yml
- name: 01-add-group
group:
name: www
gid: 666
tags: 01-add-group
- name: 02-add-user
user:
name: www
create_home: no
shell: /sbin/nologin
uid: 666
group: www
tags: 02-add-user
- name: 03-install rsync
yum:
name: rsync
state: installed
tags: 03-install rsync
- name: 04-copy rsyncd.conf
copy:
src: rsyncd.conf
dest: /etc/
notify:
- restarted rsyncd
tags: 04-copy rsyncd.conf
- name: 05-create rsync.passwd
copy:
src: rsync.passwd
dest: /etc/
mode: 600
tags: 05-create rsync.passwd
- name: 06-create backup and data directory
file:
path: "{{ item }}"
state: directory
owner: www
group: www
loop:
- "{{ path_backup }}"
- "{{ path_data }}"
tags: 06-create backup and data directory
- name: 08-start rsyncd
service:
name: rsyncd
state: started
tags: 08-start rsyncd
- name: 09-enbaled rsyncd
systemd:
name: rsyncd
enabled: yes
tags: 09-enbaled rsyncd
2)CDファイル(設定ファイルはファイル・ディレクトリにグループ化されている)
3)のvi VARS / main.ymの L(置く定義変数)
path_backup: /backup
path_data: /data
4)VIハンドラ/ main.yml(通知トリガ再開機構)
- name: restart rsyncd
service:
name: rsyncd
state: restarted
5)ファイルスイッチの作成
実行)6を
ansible-脚本-Cはrsync_install.yml
ansible・脚本のrsync_install.ymlを
。7、文字テンプレートansible関数が呼び出す
機能モジュールのファイルとテンプレートが同様のモジュール機能します。ライン上の他のホストへの構成ファイル内のファイルモジュールに直接一括コピー:同じではありませんシーンを使用し
、それはあなたが書かれた設定パラメータ内のrsyncとNFSプロファイルのように、変更されませんが、SSHのように設定されている設定ファイルを最適化ログインホストIP IPは、変更を保持するために、対応する変更です。今回はそれがはるかに簡単なモジュールのテンプレートです
1)ここでは、初期の役割を行うために、ホストの役割を持つ私たちの団結のすべての基本的なニーズを構成することであるのinit役割、作成
ます。mkdir -pの/ etc / ansible /役割/ initを
MKDIR {ファイル、ハンドラ、タスクを、テンプレート、VARS}
2)VIタスク/ main.ymlの
#01の設定元基地
- 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
3)CPは、/ etc / ssh / sshd_configテンプレート/ sshd_config.j2(ここでプロファイルはモジュールの下にファイルを書いていない)最適化パラメータ
22 #Port
#AddressFamily任意
ListenAddressを{{ansible_facts.eth0.ipv4.address}}
#ListenAddress ::