19、Ansible役割

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ファイル(設定ファイルはファイル・ディレクトリにグループ化されている)
19、Ansible役割
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)ファイルスイッチの作成
19、Ansible役割
実行)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 ::

おすすめ

転載: blog.51cto.com/13858002/2433669