ansible実験モジュール

ansible実験
実験環境:
3つのホストのIPアドレス、CPUコアの役割ホスト名
ホスト1 192.168.200.111 Ansible ansible 1
ホスト2 192.168.200.112クライアントCLIENT1 1
ホスト192.168.200.113クライアントCLIENT2 2 3
=========== ========================================
環境準備ができて
3つのホストを変更する[1]ホスト名ansibleクライアント1クライアント2
[2] 3ホストは、ファイアウォールおよびセキュリティメカニズムをオフに
インターネットnslookupをwww.baidu.com 3へのアクセスを保証するために、[3]
1 [4]ホストを
VIMの/ etc /ホスト
192.168.200.111 ansible
192.168.200.112 CLIENT1
192.168。 200.113クライアント2
保存して終了
SCPの/ etc / hosts 192.168.200.112:/etc/
SCP / etc / hostsの192.168.200.113:/etc/
[5] YUMインストールをansible(推奨)
CD /etc/yum.repos.d
wgetのhttp://mirrors.aliyun.com/repo/Centos-7.repo
LS
クリーンすべてYUM
YUMインストール-Y ansible
ansible --version //接続に成功したかどうかを試験するために使用される
[6]が搭載PIP ansible(比較面倒、Pythonの長い時間は、インストールするために)
サポートパッケージが実装
YUM lrzsz VIMネットツールをインストール-y GCCのgccの-C ++のncurses ncurses- develの解凍のzlib-develのzlibのopensslの-develののopenssl
Python3.5コンパイラソース
のtar-3.5.2.tgzのPython -C XFは/ usr / src /
CD /usr/src/Python-3.5.3/
--prefix =は./configureは/ usr / local /パイソン/ && && make installを作る
のpython3へのpython3の/ usr /ビン/に/ LN -sは/ usr / local / Pythonの/ binが
のpython3へ
のpython3 -Vへ
使用PIP3のインストールがansible
は/ usr / local / Pythonの/ binに/ PIP3 ansibleインストール
待ちansibleインストールを、何の設定ファイルノートピップベースのインストール、あなたは自分自身を確立する必要がありません。
-s LNは/ usr / local / Pythonの/ binに/ ansible /は/ usr / local /ビン/
どのansible
ansible --version //のバージョンを確認
無料のインタラクティブSSHログインを作成するには、[7]を
[SSH-keygenは-t rsaの//この双方向の対話]は
自由対話的に:
SSH-keygenは-t rsaの-P「」-fの.ssh / id_rsaと// - P「」空白のパスワードを指定する-fの.ssh / id_rsaと持っていないファイルの場所を指定し、キャリッジリターン。
.ssh LS /
---------------------------------------------- --------------------
[8] CLIENT1ホスト:
環境の準備:
ホスト名CLIENT1
bashの
ifconfigコマンドens32
のiptables -F
setenforce 0
systemctl STOP firewalld
-------------------------------------------------- ----------------
[9] CLIENT2ホスト:
環境の準備:
ホスト名CLIENT2
bashの
ifconfigコマンドens32
のiptables -F
setenforce 0
systemctl停止firewalld
------------ -------------------------------------------------- -------
[10] ansibleクライアントホストは、公開鍵送信
ansible操作するホスト
SSH-コピー-ID [email protected]
SSH-コピー-ID [email protected]
無料密封接続のための[11]テストを、ホストansibleオペレーティング
SSH [email protected]
SSH [email protected]
======= ===以下はansibleを介してデバイスを管理するために配備ansibleです。
[12] ansible配置
ホストansible上で動作する
} CPの/etc/ansible/hosts{,.bak
vimのは/ etc / ansible /ホスト//メンバーを追加し、最後の行にグループを設定し
、[crushlinux]
192.168.200.112
192.168.200.113
保存して終了
のping -i crushlinux -m ansible
  //またはansible -iは/ etc / ansible /ホストを使用しますピングcrushlinuxを-m
------ -----環境が終了した
テスト:
二つのホストansible Viewクライアントディスク:
ansible crushlinux -a "番目のDF"
- ========= ====================
1000台のホストが鍵ペアを作ったため、すでにクライアントのキーの上に割り当てられている場合、あなたはRM -rfの.ssh /缶(問題を解決authorized_keysには)鍵ペアを削除
yumのsshpass使用を搭載し
ansibleホスト上:
YUM -Yにintall sshpass
----------------------------- ---------------------
[sshpass使用】
1、直接リモート・ホストに接続されている
sshpass -p {{ユーザー名、パスワードSSH}}} @ {IPホスト
2、指定されたSSHリモート接続ポート
sshpass -p {パスワードのssh -p $ {ポート}}}ユーザ名が@ {{}ホストIP
。3、ファイルの内容は、リモートホストに接続されているパスワードファイルからパスワードとして読み取ることが
sshpass -f $ { SSH暗号テキストファイル}}ユーザ名@ {{}ホストIP
。4、リモートからローカル・ホスト・ファイルには引か
{IP} @ sshpass -p {ユーザー名・パスワード} {} SSHホストを:$ {リモートホストディレクトリ$ {}ローカルホストのディレクトリ}
ディレクトリのファイルをホストする5は、リモートホストのディレクトリにコピーされ
sshpass -p {パスワード} SCP $ {ローカルディレクトリ} {ユーザー名} @ {ホストIP}:$ {}リモートホストディレクトリ
------- ------------------------------------------------
EG:
-p 123456 SSH-コピーsshpassは、上記のid [email protected]上記
sshpass -p 123456 SSH-コピーのようなID上記[email protected]
これにより、//は、成功してきて送信するための鍵は、このアプローチは、相互作用のない動作です
[ RM -rfの.ssh / known_hostsに//は他のホストと確立された接続を削除
注意:sshpassは問題に最初の接続解決しない
-p 1234456 SSH [email protected] sshpassされる
//接続が失敗したことがわかります]を
ソリューションは次のとおりです。
図6に示すように、リモート・ホストに接続し、コマンド実行
sshpass -p {パスワード} SSH -o StrictHostKeyChecking = NO {ユーザー名@ {}}ホストにIPを'RM -rf / TMP /試験'
//// = -o StrictHostKeyChecking NO:パスワードを無視ヒント
例えば:なしsshpass -p 1234456 sshの-o StrictHostKeyChecking = [email protected]
もう一つの方法です:
vimのは/ etc / SSH / ssh_configの
35 //まったく何も変更しているStrictHostKeyCheckingない
セーブで終了し
、必要なときに接続できないが// yesの
方法があり、あなたが鍵ペア送信できない
VIMの/ etc / ansible /ホスト
最後の行に追加する 
[NOKEY]
clent2 ansible_ssh_host = 192.168.200.113 ansible_ssh_port = 22ルートansible_ssh_passある= 123456 = ansible_ssh_user
clent1 ansible_ssh_host = 192.168.200.112 ansible_ssh_port = 22 ansible_ssh_user =ルートansible_ssh_pass = 123456
保存して終了
ansible NOKEY -mのping //あなたが渡すことができればパスがポン返され、参照
================================= =========
注:[1] {に/ etc / ansible /ホスト}ファイルデフォルトのインベントリansibleファイル場合は、指定できない
ansible crushlinux -mピングを
  デフォルトのファイルの場所が場所ではない場合、 (-iファイルパス)に必要なファイルの場所ansible -iの/ etc / ansible /ホスト crushlinux -mピング
[2]実施例グループ・メンバーシップを定義する
のVimは/ etc / ansible /ホスト
[クライアント]
クライアント1
クライアント2
[TEST01]
クライアント[1:2] //これらのメソッドができ
、保存して終了
ansibleクライアント-mピング
ansible -mピングTEST01
==============================================
ansible構文
1、 ansibleクライアント-mピング//クライアントが-m特定モジュールで表される基を表し
2、ansibleクライアント-mコマンド-a「フリー-m」//コマンドモジュール、すなわちどのコマンドコマンドモジュールは、パラメータを渡す実行に対応するシェルコマンドを提供-a表しますデフォルトでは、即ち、省略することができるされているクライアント-m -a ansible "-m無料"
。3、ansibleクライアント-m -a "無料-m" 192.168.200.112 // --limit --limitを示す定義した実行ホスト
4、ダイレクト実施のためのIP
ansible 192.168.200.112 -a "無料-m" //固定IP
またはansible 192.168.200。* -a "無料-m "//ネットワークセグメントを表し
============================================ ==
ansibleコマンド
入力ansibleを押しタブキーを2回あなたは多くのを見ることができます
================================= =============
Ansible本番環境では、次のシナリオがで使用されているコマンドの非常に頻繁に使用の一つである
非硬化性需要
の一時的な1回限りの操作
二次開発インターフェース呼び出しの
フォーマット:
ansible <ホストパターン> [オプション]
パラメータ:
-v:出力情報詳細な実施プロセスは、プロセスは、すべての情報取得するために行うことができる
-iパス:インベントリ情報は、指定された、デフォルトは/ etc / ansible /ホスト
NUM -fた:同時スレッド、デフォルトの5スレッド
-p rivateキー= pRIVATE_KEY_FILEボタンが秘密のファイル指定
を行う際に使用するモジュール:-m NAMEを
-Mディレクトリを:指定モジュールのストレージ・パスを、デフォルトは、/ usr /共有/ ansibleで
-a引数:モジュールのパラメータ指定
を指定し、リモートホストのUSERNAME runコマンド:-u USERNAME
-Iサブセット:限られた実行ホスト
--list-ホスト:適格なホストのリストに記載されているが、任意のコマンドを実行しません。
ホストグループとホスト注:
すべてのすべてのホストに代わって
webA:WEBBは、複数のホストを指定することができ
、すべて:\はwebAすべてを指定してもwebA、注意、およびエスケープ記号\必要が含まれていません!
Ansible-DOC:ヘルプドキュメント
ansible-docの-l
ansible-docの-sシェル// - S指定されたモジュール
ansible-docの-s生
===============================================
ケース:
Aチェックすべてのホストが生き残っ:
ansibleすべてのping -f -m 5
B、列挙されたcrushlinux基、すべてのホストリスト
ansible crushlinux --listホスト
ansible crushlinux --list
ansibleリターン:赤、緑、実行中に異常があることを示しターゲットホストに変更を加えることに成功していないの実装という、オレンジ色は、コマンド実行ステータス変更の目的を表しています。
===============================================
2、ansible -playbook
一連のタスクを実行するために、Linuxシステムやソースshコマンドに似ています。
ワーキングメカニズム:集中処理タスクのために良い脚本を書いたファイルを読み込むことで、ansible・脚本の脚本コマンドは、ファイル形式のYMLに続いて、脚本のファイルストレージタスクが実行される
文法を:ansible-脚本playbook.yml
コンパイラplaybookyml前に良いアドバイスを必要とします書き込みplaybook.yml絶対ファイルパス
3、ansible-コンソール
ansible-コンソールがansibleである。をユーザーに提供するための対話型ツール
端末入力ansible-コンソールコマンドの後に表示ansibleデフォルトのパスワード
三、ansibleモジュール
1は、コマンドモジュールは、のリダイレクト機能シェルのパイプラインをサポートしていない
のchdirを:ディレクトリに事前にリモートホスト上でコマンドを実行する前に、
例えば:すべてのホストのユーザーを作成し、表示
ansible crushlinux -m生-a "をcrushlinux useraddの「
ansibleすべてのコマンド-a -m」CHDIR = /ホームLS ./ "
ansible crushlinux -a『稼働時間』は
作成します。ファイルが既に存在する場合は、実行するためにファイルを作成し、それがタスクを作成しません
削除した:コマンドに実行されたファイルを削除し、ファイルが存在しない場合は、タスクを削除実行されません
executeble:シェルプログラムは、の実行コマンドで指定された
2、シェルモジュールを
シェルがリモートホスト上でコマンドを実行モジュール、同等のシェルプロセスは、リモートホストを呼び出し、その後、そのようなパイプ、リダイレクトとしてシェルの特性を、サポートしていることを除いて、シェルのサブコマンド、及びコマンドモジュールを実行するためにオープンシェル。
EG:ansible crushlinuxシェル-a -m 'エコー「crushlinux '>を/ tmp / test.txtの'
ansible crushlinuxシェル-a -m' CAT /tmp/test.txt '
ansible crushlinuxシェル-a -m' ifconfigコマンドens32 | awkを"

コマンドを実行するための最も原始的な方法(のpythonを頼っていないが、SSHのみによって達成)
EG:RAW ansible crushlinux -m -a 'yumのクリーンすべて'
'yumをインストールnmapの-Y' ansibleすべての-m -a RAWを
。4、コピーモジュール
DEST指摘ファイルのターゲット・ディレクトリの場所をコピーして、絶対パスを使用します。ソースはディレクトリですが、また、ターゲットディレクトリを参照する場合は、対象ファイルが既に上書き元のコンテンツが存在する場合は、
SRC:ソースファイルのパスからポイントを、あなたは、相対パスまたは絶対パスを使用して直接指定されたディレクトリをサポートし、ソースがディレクトリである場合、ターゲットがなければならないだろうことができますカタログ
モード:対象のファイルのアクセス権、オプションの尖ったアウトをコピーし
、所有者を:コピーがメインターゲットファイルオプションで、指摘
コピーが指摘し、オプションファイルのターゲットのセットです:グループ
コンテンツを:ターゲットホストにコピーされたコンテンツアウトポイント、 SRCと一緒に使用することができない、先ファイルに指定されたデータに対応するコピーコンテンツ。
EG:コピーansible crushlinux -m -a "SRC =の/ etc / DEST =ホストを/ tmp /所有者MODE = 777 = =ルートcrushlinuxグループ"
。5 、ホスト名モジュール
名:ホスト名
例:ansibleホスト名-a「名前= crushlinux」-m CLIENT1
6、yumのモジュール
名:、あなたはバージョン番号をパッケージの名前をもたらすことができ、バージョン番号が最新バージョンにデフォルトのインストールとして指定されていません
状態=本|最新|存在しない:パッケージ実行の動作は、pressentインストーラパッケージは、最新のパッケージ、不在Expressのアンインストーラパッケージの最新バージョンを表すことを示して示しています。
disablerepo:YUMリポジトリとIDをインストールを無効
enablerepoは:YUMでインストール時に参照IDを有効にする
代わりに、デフォルトの設定ファイル使用のyumのランタイム構成ファイル:confファイル
ディアブルGPGチェック-yeslnoを:有効にするかどうか整合性チェック機能
EG:ansible crushlinux YUM -a -m "名前= DHCP現状="
ansible crushlinux YUM -a -m "名前= httpdの現状="
============= ======================================
場合:環境:
ansible 1、変更の/ etc /ホスト2、ansible 3がインストール、ホストはansible 4ファイル変更、他の二つのホストが何もしなかったSSHキー
[1] -p 123456 SSHコピーsshpass前記ID上記[email protected]
sshpass -p 123456 SSH- [email protected]言及したID-コピー上記
ansible crushlinuxのping -m
-a -mコピーansible crushlinux "SRC =の/ etc / DEST =ホストの/ etc /所有者ホスト644 MODE = = =ルートルートグループ"
ansible 192.168.200.112ホスト名-a -m "名前= CLIENT1"
ansible 192.168.200.113 -m -aホスト名"clien2名="
ansible crushlinux RAW -a -m "&&のiptables -F firewalld systemctl STOP"
========================== ===========================
7、サービスモジュール
名:マネージドサービスの名称
状態=開始が|停止|再起動:アクションは、ブートが閉じ含まれていますまたは再起動
が有効= YES | NO:指定したサービスは、ブートから起動するように設定されているかどうかを
ランレベル:あなたは最初から有効になってブートを設定した場合は、内の作動目標最初から定義する必要があります
例:ansible crushlinux -mサービス-a "名= httpdの状態=有効開始= yes "を
8、ユーザモジュール
名:必須パラメータは、名前アカウント
状態=存在|欠席を:アカウントを作成するか、アカウントを削除し、現在は創造を表し、不在Expressが削除されました。
システムは、= YES | NO:システムアカウントがない
uidを:ユーザUID
グループ:基本のユーザグループ
のグループ:追加のユーザー・グループの
シェル:使用されるデフォルトのシェル
家を:ユーザのホームディレクトリ。
移動ホーム= YES | NO:あなたはすでにホームディレクトリを設定した場合、既存のホームディレクトリの移動が存在します。
パスワード:ユーザーのパスワード、それが使用文字列の暗号化に推奨され
たコメント:ユーザーが情報のコメント
REMOVE = YESを|いいえ:ユーザのホームディレクトリを削除するかどうかを時間状態=欠け、
例えば:ansible crushlinux -mユーザー-a "名= USER1をUID = 502 =はいシステムグループグループルート= = = sshdのシェル/ sbinに/ nologinに=ホーム/ホーム/コメント= USER1 USER1パスワード= "ユーザーテスト" '
ansible crushlinuxユーザー-m -a' =国家名=不在削除USER1 =はい
9、スクリプトの
スクリプトモジュールは、シェルスクリプトのローカルサーババッチの遠隔操作を可能にします。
例えば、多くのマシンのようにnginxのインストール
最初のインストールパッケージansibleアップロード
書き込み、他の複数のマシンにインストールスクリプトをnginxのパッケージをインストールするスクリプトを
スクリプトの実行を書きます

おすすめ

転載: www.cnblogs.com/elin989898/p/11987963.html