06 ansibleスクリプト関数の実践導入

 


導入ansibleスクリプト関数の実践
============================================= ================================================== =
01は、スクリプトを書くの重要な機能は、説明
OKスクリプト情報に設定された変数を
スクリプトの実行OK登録情報は、コマンド情報の出力結果を表示することができたときにスクリプト内に配置されたbを
スクリプトで設定B OK判定情報を
循環させるスクリプト情報に配置されたcを
Dは、スクリプト内のエラーを無視するように設定されている
スクリプトタグ情報にDのセットを
スクリプトにトリガ情報を設定するE
スクリプトに統合することF、スクリプト


02は、スクリプト変数情報を設定し
1:スクリプトファイルに書き込まれた直接
VARS:
oldboy01:DATA01
oldboy02 :DATA02

方法:コマンドラインで指定
ansible-脚本--extra-varsは= oldboy01 = DATA01

三つの方法:ホストリストファイルへの書き込み
[Oldboy]
oldboy01 = DATA01
oldboy02 = DATA02

変数の設定3種類の方法で、優先順位を設定されている???の三つの方法
を最優先:コマンドライン変数の設定
優先順位の低い:スクリプト変数をするように設定されている
ホスト変数の設定のリスト:過去

役割スクリプトの統合:グローバル変数の設定方法


スクリプト内の03セットのログイン情報
Oldboyの: -ホスト
タスク:
-名前:チェックサーバーポート
シェル:netstatの-lntup ---ポート情報
登録:get_server_port < -ポート情報

-名前:ディスプレイを情報ポート
デバッグ:MSGは= {{}} get_server_port.stdout_lines
プロセス情報を表示し、サービスが正常に開始されている
PS:スペースなし設けられた可変情報

のスクリプトで提供04.情報が決定
条件が決定される指定する方法:
(ansible_hostname ==「nfs01」 )
(ansible_hostname ==「WEB01」)
管理対象ホストシステムのセットアップディスプレイモジュールの詳細

-ホスト:oldboy
REMOTE_USER:ルート
タスク:
-名:ファイルチェック
ファイル:パス= / TMP / this_is _ {{ansible_hostname}} _ファイル状態=タッチ
:(ansible_hostnameは== "NFS")または(ansible_hostname == "バックアップ")

-名前:httpdのインストール
YUM:NAME = httpdの状態=インストール
するとき:(系统情况== "CentOSの")

-名前:httpd2をインストール
YUM:名= httpd2状態=インストール
するとき:(系统情况== "のUbuntu")

組み込み変数のメソッドを取得:
ansible Oldboyセットアップを-a -m「フィルタ= ansible_hostname」
共通ホスト情報を:
ansible_all_ipv4_addresses:ディスプレイのIPv4の情報のみ。
ansible_devices:のみを表示ディスクデバイス情報。
ansible_distribution:CentOSのは、同じようSUSE:どのようなシステム、例えば表示します。
ansible_distribution_major_version:システムの主なバージョンが表示されます。
ansible_distribution_version:のみシステムのバージョンを示しています。
ansible_machine:例えば、ディスプレイシステムの種類、32ビット、または64ビット。
ansible_eth0:eth0の情報のみを表示します。
ansible_hostname:ホスト名だけ。
ansible_kernel:のみを表示し、カーネルのバージョン。
ansible_lvm:LVMショー情報。
ansible_memtotal_mbは:全システムメモリが表示されます。
ansible_memfree_mb:使用可能なシステムメモリの表示。
ansible_memory_mb:詳細表示メモリ状況。
ansible_swaptotal_mbは:総スワップメモリを表示します。
ansible_swapfree_mb:表示スワップメモリ使用可能なメモリ。
ansible_mounts:表示システムマウントされたディスクの状況。
ansible_processor:表示CPUの数(具体的には機種毎に示すCPU)。
ansible_processor_vcpus:表示CPUの数(表示のみ総数)。

副情報を取得する方法:
ansible_eth0 [IPv4の】

04.在剧本中设置循环信息
VIM test04.yml
-ホスト:全
REMOTE_USER:ルート
タスク:
-名:ユーザーの追加
ユーザーを:名前= {{item.name}}グループ= {{item.groups}}状態=本
with_items :
- {名: 'testuser1の'グループ'ビン'}
- {名: 'testuser2'、グループ: 'ルート'}

VIM test05.yml
-ホスト:全
REMOTE_USER:ルート
タスク:
-名:インストールPKG
YUM:名前= {{アイテム}}状態=本
with_items:
- wgetの
-ツリー
- lrzsz

05.設定スクリプトでエラーを無視し
、コマンドモジュールをチェックし、それがエラーに遭遇するなど、状態に戻ります既定の脚本は脚本の実行が中断
はいエラー無視:IGNORE_ERRORSを追加することができ
Vimのtest06.yml
すべて: -ホスト
REMOTE_USER:ルート
タスク:
-名前を:偽無視
コマンド:/ binに/偽
IGNORE_ERRORS:はい
-名前:新しい新しいファイルタッチ
パス=を/ tmp / oldboy_ignore州=タッチ:ファイルを

06.在剧本中设置标签功能
-ホスト:oldboy
IGNORE_ERRORS:はい
REMOTE_USER:ルート
タスク:
-名前:ファイルのチェック
ファイルを:パス=を/ tmp / this_is _ {{ansible_hostname}} _ファイルの状態=タッチ
:(ansible_hostname ==「nfs01 「)または(ansible_hostname == "バックアップ")
タグ:T1

-名前:悪いの
コマンド:ECH 123
#ignore_errors:はい
タグ:T2

-名:インストールのhttpd
のyum:インストール名= httpdの状態=
(ansible_all_ipv4_addresses == [: "172.16.1.7"、 "10.0.0.7"])
タグ:T3

-名:インストールhttpd2
YUM:NAME = httpd2状態=インストール
:(ansible_distribution == "Ubuntuは")
タグ:T4

タグは、タスクが実行される指定:ansible-脚本は= T2のtest05.yml --tags
ansible-脚本--skip-タグ=:スキップされたタスク指定されたタグ T2のtest05.ymlを

07.在剧本中设置触发功能
-ホスト:バックアップ
REMOTE_USER:ルート
タスク:
-名前:01のrsyncをインストール
YUM:名=現在のrsync状態=

-名:02プッシュconfigファイルの
コピー:SRC = /ファイル/ {{アイテム。います。 SRC}} DEST =の/ etc / {{item.dest}}モード= {{item.modeは}}
with_items:
- {SRC: "rsyncd.conf"、DEST: "rsyncd.conf"、モード: "0644"}
- {SRC: "rsync.password"、DEST: "rsync.password"モード: "0600"が}
通知:再始動rsyncサーバ

ハンドラ:
-名前:再起動rsyncサーバの
サービス:名= RSYNCD状態=再起動


08.複数のスクリプトを統合する
方法1:include_tasks:f1.yml
-ホスト:すべての
REMOTE_USER:ルート
タスク:
- include_tasks:f1.yml
- include_tasks:f2.ymlを

方式二:インクルードは、次のとおりです。f1.ymlを
-インクルードは、次のとおりです。f1.yml
-含める:f2.ymlを

方式三: - import_playbook:
[ルート@ M01 ansible-脚本]#猫main.yml
- import_playbook:base.yml
- import_playbook:rsync.yml
- import_playbook:nfs.yml
- import_playbook:oxxx.yml
- import_playbook:rsync.yml
- import_playbook:nfs.yml

おすすめ

転載: www.cnblogs.com/linux985/p/11320228.html