Ansibleのプロフィールを取得します

  、ansibleプロフィール

  ansibleは、バルクのシステム構成、バッチ展開、実行するバッチコマンドなどを達成するために一緒に操作および保守ツール(人形、cfengineの、シェフ、FUNC、ファブリック)の利点の数をもたらし、自動運転やメンテナンスツールによって書かれたPython言語であります機能。その創設者、マイケルDeHaan(コブラーとソフトウェアのfuncが)、彼は3月9日、2012年にansible 0.01バージョンをリリースしました。2015年10月17日には、RedHatので買収したと発表しました。

  二、ansible機能

  1、ないクライアントは、ちょうどSSH、Pythonのバージョン2.6.6が上記の推奨されているのpythonをインストールしていません

  基礎となるプロトコル(WindowsベースのPowerShellの)に基づいて、通信のOpenSSH、SSHに基づく2、

  3、およびSSHは、公開鍵と秘密鍵認証やパスワード認証により、システムアカウントので、パスワード認証をサポートしているので、全体のプロセスは簡単で、便利で安全です。

  4、Windowsのためのサポートが、唯一の経営側がWindows、Linuxのシステム管理側がサポートしなければなりません 

  5、モジュラー:特定のタスクを完了するために、特定のモジュールを呼び出します

  6は、タスクのスケジューリングが脚本をサポートしています(同様のシェルスクリプト)

  7、冪等:タスクを再度実行し、N回の実施の効果と同じ、持ち込ま不測の事態の結果を繰り返さないでください

  8、あなたは(他の言語を呼び出すことができますPythonライブラリ)任意のプログラミング言語モジュールを使用することができます

  9、YAMLフォーマット、レイアウト作業は、豊富なデータ構造をサポートしています

  三、ansibleはどのように動作しますか?

  Ansibleどのクライアントは、基盤となる通信システムのソフトウェアに依存しすぎ、WindowsベースのLinuxベースのシステムのOpenSSHの通信は、ansibleによって管理ノード内の各アプリケーションモジュールの命令ツールプッシュを呼び出すことにより、クライアントは、Linuxシステムでなければなりません管理、ユーザ認証をPowerShellのありません実行を終了し、自動的に実装した後に生成された一時ファイルを削除することができました。

  四、ansible構図

Ansible主なコンポーネントは次のとおりです。

  ANSIBLE-プレイブック:タスクのスクリプト(タスクのセット)は、タスクのスケジューリングがansibleセットプロファイルを定義している、そこに実行ansibleため、通常はYAMLファイル形式のJSON

  INVENTORY:在庫管理ansibleホストは、/ etc / ansible /ホスト

  モジュール:ansible執行機能モジュールはもちろん、あなたもカスタマイズすることができ、構築されたコアモジュールの大部分をコマンド

  プラグイン:モジュール、プラグ型コネクタ、プラグ・ループ、可変プラグを補充は、フィルタインサートのように、関数が使用されていません

  API:アプリケーション・プログラムは、サードパーティのプログラミング・インタフェースを求めて

  ANSIBLE:組み合わせINVENTORY、API、モジュールは、緑色のボックスをプラグイン、コアインプリメンテーションツールであるansibleコマンドツール、として理解することができます

ansibleコマンド出典:

  ユーザ、一般ユーザ、システム管理者、すなわち

  CMDB(構成管理データベース)API呼び出し

  パブリック/プライベートクラウドAPI呼び出し

  ユーザー---> ansible-脚本----> ansible

次の二つの管理を実現するためにansible方法を使用します。

  アドホックコマンドansibleすなわち、主に一時的なコマンドのシーンのために

  大規模プロジェクトのシーンは、長期的な計画のためにansible、脚本が主に使用されている計画、前提の必要性

ansible-ハンドブック手順(スクリプト)を実行:
  Ansible-ハンドブックライト振り付けたタスクセット
  ansible-ハンドブックansibleコマンドによって1つずつのコマンド分割タスクセットは、所定の規則に従って一つずつ実行
:ansibleメイン操作対象
  HOSTSホスト
  NETWORKINGネットワーク設備

  五、ansibleインストール

  1、rpmパッケージのインストール:EPELソース

YUM ansible -yをインストール

  2、コンパイルしてインストールします

    2.1、コンパイルに必要な依存関係をインストール

YUMのpython-Jinja2のPyYAMLとのpython-paramikoのpython-バベルのpython-暗号をインストール-y

    2.2、ダウンロード元、エキスソースパッケージ

wgetのhttps://releases.ansible.com/ansible/ansible-latest.tar.gz
タールXF ansible-latest.tar.gz

    2.3、解凍するディレクトリを入力した後、コンパイルと実行がsetup.py installを

CDのansible-2.9.0
python setup.pyビルド
Pythonはsetup.py installを

    2.4 ansibleプロファイルディレクトリを作成し、適切なディレクトリにファイルをコピーします

MKDIRは/ etc / ansible
CPの例-r / *の/ etc / ansible

  3、gitの道

gitのクローンgitの://github.com/ansible/ansible.git --recursive
CD ./ansible
ソース./hacking/env-setu

  4、ピップのインストール

    4.1、Pythonのパッケージ管理ツールのピップをインストールして、Pythonの開発ライブラリ、依存関係とansible

YUMのpython-PIPのpython-develのインストール
yumのGCCのglibc-develのzibl-develのRPM-bulidのopenssl-develのインストール

  説明:ピップのpythonがインストールされているパッケージマネージャ、同様のyumを

    4.2、ピップansibleインストール

ピップ--upgradeピップをインストール
ピップansible --upgradeをインストール

   説明:YUMインストールピップデフォルトでは、最新バージョンではありません最初の更新ピップので、

4つの取り付けオプションがインストールされ、インストールするために好きなよう上記の、我々はansible --versionは、インストールが成功したかどうかを判断します

  六、ansible関連文書

    1、設定ファイル

      メインの設定ファイル、設定ansible動作特性を/etc/ansible/ansible.cfg

      の/ etc / ansible /ホストホストリスト

      の/ etc / ansible /役割/ロールストアディレクトリ

    2、ansibleプログラム文書

      / usr / binに/ ansibleメインプログラム、暫定オーダー実行ツール

      / usr / binに/ ansible-docのコンフィギュレーションファイルを表示、モジュールは、ツールが用意されています

      / usr / binに/ ansible-銀河のダウンロード/アップロードコードまたはモジュールプラットフォームの公式ウェブサイトの優れた役割

      / usr / binに/ ansiable-脚本カスタマイズされた自動化タスク、スケジュールスクリプトツール

      / usr / binに/ ansibleプルリモートコマンド実行ツール

      / usr / binに/ ansible・ボールトファイル暗号化ツール

      端末インタフェースインプリメンテーションツールでは/ usr / binに/ ansibleコンソールベースのユーザインタラクション

  七、ホストリスト目録

  ホスト・オペレーティング・バルク用ansible主な機能は、簡単なパケットであってもよいホストの一部を使用するファイルリスト内のホスト名、デフォルトのホストの/ etc / ansible / hostsファイルのリスト。

#これは、デフォルトansible「ホストのファイルです。
#これは、/ etc / ansible /ホストの中に生きるべき
# - コメントは「#」文字で始まります
# - 空白行は無視されます。
# - ホストのグループは、[ヘッダー]の要素によって区切られ
# - あなたはホスト名またはIPアドレスを入力することができます
# -  Aのホスト名/ IP複数のグループのメンバーになることができます

#例1:グループ解除ホストは、任意のグループヘッダーの前に指定します。

## green.example.com
## blue.example.com
## 192.168.100.1
## 192.168.100.10

#例2:「Webサーバ」グループに属するホストの集合

## [Webサーバ]
## alpha.example.org
## beta.example.org
## 192.168.1.100
## 192.168.1.110

#あなたが指定することができ、パターン、次の複数のホストを持っている場合
このような#それら:

WWW ## [001:006] .example.comと

#例3:「dbservers」グループ内のデータベースサーバの集合

## [dbservers]
## 
## db01.intranet.mydomain.net
## db02.intranet.mydomain.net
## 10.25.1.56
## 10.25.1.57

#ここでは、ホスト範囲のもう一つの例だ、この時間は何も存在しません
#リード0:

## DB- [99:101] -node.example.com

  説明:私たちのいくつかの例には/ etc / ansible / hostsファイルは、ホストリスト、我々はホストのリストを定義し、それを与えられた例を参照することができますを定義するには、の/ etc / ansible / hostsファイルには、括弧の文字でスタイルINIファイルを、次のグループ化されていないホストは、最初の一つ以上の括弧内に定義されている任意の基、前ヘッダを指定ステップと、グループ名が同時にホスト異なる複数のグループに統合されてもよいです。括弧でグループ化するために、次にブラケットと次との間に、ブラケットの下の対応するホスト書き込み、グループ名の必要性を示します。我々は指定されたパターンに従うように複数のホストを持っている場合、我々は、WWW [001:006]のような複数のホスト書くことができます.example.comと、www.001.example.com、www.002.example.comを表し.. ..www.006.example.com、私は私たちの例をサンプリングするオーバー見て、私たちは彼らの実際の状況に応じてホストのリストを定義することができると信じています。ターゲットホストがデフォルト以外のSSHポートを使用する場合はさらに、それはまた、ホスト名の後にコロンプラスポート番号の使用を示すことができます。

  例:

ntp.magedu.com
[Webサーバ]
www1.magedu.com:2222
www2.magedu.com
[dbservers]
db1.magedu.com
db2.magedu.com
db3.magedu.com


[websrvs]
WWW [01:100] .example.comの
[dbsrvs]
DB-【:F] .example.comの

  八、ansibleメインの設定ファイルの記述

私たちは、デフォルトのまま通常/etc/ansible/ansible.cfg ansibleメインの設定ファイルは、それを修正しません。

 [デフォルト]
#inventory =の/ etc / ansible /ホスト#ホストリストの設定ファイル
#library =を/ usr / share / my_modules /#ライブラリファイル格納ディレクトリ
リモートホストのディレクトリに保存されている#remote_tmp = $ HOME / .ansible / tmpに#PY、一時コマンドファイル
暫定注文#local_tmp =実行するマシンの$ HOME / .ansibleを/ tmpディレクトリ#
同時の#forks = 5#デフォルト数
#sudo_user =ルート#sudoのユーザのデフォルト
各実行ansible sshコマンドでパスワードを依頼するかどうかを#ask_sudo_pass =真#
#ask_pass =真
#remote_port = 22
#host_key_checking = Falseの#対応するサーバーhost_keyをチェックし、お薦めアンコメント
#開き、log_path =の/ var /ログ/ ansible.log#ログファイル
デフォルトモジュール#module_name =コマンド#

  ansibleの導入、設置、我々は、このソフトウェアの魅力の下ansible、感情についてのいくつかのホストを設定するために使用しようとしているプロファイルの基本的な説明を理解します

 まず、我々はansibleインストール、およびホストリストを設定したいすべての上記のインストールおよびホストのリストここでは詳述されていないを設定する方法について説明します。

ホストリストを定義します。

[Websers]
192.168.0.128
192.168.0.218
[appsers]
192.168.0.217

  注:私は、3台の仮想マシンが3台のサーバをシミュレート使用し、デフォルトのポートSSHポート22、そのsshのポートを指定しません

ansibleコマンドの使用を見ます

使用方法:ansible <ホストパターン> [オプション]

ホストのセットに対して単一のタスク「脚本」を定義し、実行します

オプション:
  -a MODULE_ARGS、--args = MODULE_ARGS
                        モジュールの引数
  --ask-ボールトパスは、ボールトパスワードの入力を求めます
  -B SECONDS、--background = SECONDS
                        X秒後に失敗し、非同期で実行
                        (デフォルト= N / A)
  -Cは、任意の変更を--checkことはありません。代わりに、いくつかを予測してみてください
                        発生する可能性があり、変更の
  -Dは、(小)ファイルとテンプレートを変更する際--diff表示します
                        これらのファイルの違い。--checkで素晴らしい作品
  その-e EXTRA_VARS、--extra- = EXTRA_VARS
                        キー=値やYAML / JSON、かのように追加の変数を設定します
                        で、ファイル名の先頭に追加@
  -f FORKS、--forks =フォーク
                        使用する並列プロセスの数を指定します
                        (デフォルト= 5)
  -h、このヘルプメッセージを表示して終了--help
  -i INVENTORY、--inventory = INVENTORY、--inventoryファイル= INVENTORY
                        在庫ホストパスまたはコンマ区切られたホストを指定します
                        リスト。--inventory-ファイルは廃止されました
  -l SUBSET、--limit = SUBSET
                        さらなる制限は、追加のパターンにホストを選択しました
  --list-ホストが一致するホストのリストを出力します。実行していません
                        他に何か
  -m MODULE_NAME、--module名= MODULE_NAME
                        実行するモジュール名(デフォルト=コマンド)
  -M MODULE_PATH、--moduleパス= MODULE_PATH
                        モジュールライブラリにプリペンドコロンで区切られたパス(複数可)
                        (デフォルト= [U '/ルート/ .ansible /プラグイン/モジュール'、
                        U 'は、/ usr / share / ansible /プラグイン/モジュール'])
  --new-ボールト-ID = NEW_VAULT_ID
                        鍵再生成に使用する新しいボルトアイデンティティ
  --new-ボールト・パスワード・ファイル= NEW_VAULT_PASSWORD_FILES
                        鍵更新のための新しいボールトパスワードファイル
  -o、--oneラインコンデンス出力
  -P POLL_INTERVAL、--poll = POLL_INTERVAL
                        -Bを使用した場合はポーリング間隔を設定します(デフォルト= 15)
  --syntaxチェックは脚本上の構文チェックを実行しますが、しないでください
                        それを実行
  このディレクトリに-t TREE、--tree = TREEログ出力
  使用に--vault-ID = VAULT_IDSボールトアイデンティティ
  --vaultパスワードファイル= VAULT_PASSWORD_FILES
                        ボールトパスワードファイル
  -v、--verbose冗長モード(より多くのために、-vvvvを有効にする-vvv
                        接続のデバッグ)
  --versionショープログラムのバージョン番号を表示して終了

  接続オプション:
    コントロールとして、どのようにホストに接続

    -k、--ask・パスの接続パスワードの入力を求めます
    --privateキー= PRIVATE_KEY_FILE、--key-ファイル= PRIVATE_KEY_FILE
                        接続を認証するために、このファイルを使用します
    -u REMOTE_USER、--user = REMOTE_USER
                        このユーザとして接続(デフォルト=なし)
    -c CONNECTION、--connection = CONNECTION
                        使用する接続タイプ(デフォルト=スマート)
    -T TIMEOUT、--timeout = TIMEOUT
                        秒単位で接続タイムアウトを上書き
                        (デフォルト= 10)
    --ssh-共通引数= SSH_COMMON_ARGS
                        例えば(SFTP / SCP / SSHに渡す共通の引数を指定します
                        ProxyCommand)
    --sftp補足引数= SFTP_EXTRA_ARGS
                        例えば-f(のみSFTPに渡す追加の引数を指定して、
                        -l)
    --scp補足引数= SCP_EXTRA_ARGS
                        SCPに渡す追加の引数を指定するだけで(例えば-l)
    --ssh補足引数= SSH_EXTRA_ARGS
                        (例えば-R)のみのsshに渡す追加の引数を指定します

  権限昇格のオプション:
    あなたは、ターゲットホスト上のようになってどのようにしているユーザーコントロール

    -s、須藤との操作を実行し--sudo(NOPASSWD)(非推奨、使用
                        )になります
    -U SUDO_USER、--sudoユーザー= SUDO_USER
                        所望須藤ユーザ(デフォルト=ルート)(非推奨、使用
                        )になります
    -S、--suは、suコマンドを使用して操作を実行します(非推奨、使用になります)
    -R SU_USER、--suユーザー= SU_USER
                        このユーザーとしてsuコマンドで操作を実行します(デフォルト=なし)
                        (非推奨、使用になります)
    -b、なると--become実行操作(パスワードを意味するものではありません。
                        )プロンプト
    --become法= BECOME_METHOD
                        (デフォルト=須藤)を使用するには、特権の昇格の方法、
                        有効な選択肢:[須藤| SU | pbrunです| pfexec | DOAS |
                        dzdo | KSU | スピーチ| pmrun]
    --becomeユーザー= BECOME_USER
                        このユーザーなどの操作を実行します(デフォルト=ルート)
    sudoのパスワードを尋ねる--ask-sudoは、合格(非推奨、使用になります)
    suコマンドのパスワードの入力を求める--ask-SU-渡す(非推奨、使用になります)
    -K、--ask-なるパス
                        権限昇格のパスワードの入力を求めます

一部のモジュールは、アドホック(含まれ、メタなど)に意味がありません。

  説明:ヘルプ以上、私たちは基本フォーマットansibleコマンドがansibleであることを理解<ホストパターン> [オプション]、ホスト・パターンは、我々は最初に、おそらくそれは指定されたホスト、それだと思うホストを、パターンマッチングを表している、私たちが言うに従います彼は何を一致させるパターンを述べました。ここでは、コマンドの基本フォーマットはansible + ansible指定されたホストであるモジュールを表す-aパラメータは、-mは、特定のモジュールの名前を表す一般的なオプションについて何かを言うために(もちろん、これはまた、我々は定義されていること、グループ名を指定して、ホストのグループ名リストすることができ、試合は、そのグループ名)+パラメータモジュール+モジュールの名前すべてのホスト、操作を行うために何かを(行うために、どのようなモジュールにansible動作し、ホストがモジュールにパラメータを渡すことであると多分手段)でした

ビューピングモジュール方式

ルート@ドッカ〜]#ansible-docのピング   
> PING(/usr/lib/python2.7/site-packages/ansible/modules/system/ping.py)

        些細なテストモジュールは、このモジュールは常に成功接触に `ピンポン」を返します。します
        プレイブックに意味をなさないが、それは確認する「`は/ usr / binに/ ansibleから便利ではありません
        使用可能なのpythonログインするとその能力が設定されています。これは、ICMPピング、これはされないが、
        ただ些細なテストモジュール。Windowsターゲットの場合は、代わりにモジュール[win_ping]を使用します。

OPTIONS(=必須です):

- データ
        データは `pingの」戻り値を戻します。
        このパラメータが `クラッシュ」に設定されている場合は、モジュールは、例外が発生します。
        [デフォルト:ピンポン]


ノート:
      * Windowsターゲットの場合は、代わりに[win_ping]モジュールを使用しています。

AUTHOR:Ansibleコアチーム、マイケルDeHaan
        メタデータ:
          状態:
          -  stableinterface
          supported_by:コア

  注:説明上記参照は、Linuxの男のヘルプインターフェースのようなビットは、ええ、私たちが助けにansibleモジュール男ansible-docの同等のビューを理解することができるで、この文書をより詳細に表示されますが、通常我々が見るその基本的な使い方がありますされます説明モジュールの主なパラメータの簡単な説明を表示するには、-sオプションは、このオプションでは、以下に示すように、我々は、コマンドオプションまたは-h --helpオプションを使用し、ビットLinuxのようなものです

[ルート@ドッカ〜]#ansible-docの-sピング 
- 名前は:使用可能なのpythonを確認し、ホストへの接続を試み、成功時に `ピンポン」を返します
  pingを実行:
      データ:#データは `pingの」戻り値を戻します。このパラメータは、 `クラッシュ」に設定されている場合は、
                               モジュールは、例外が発生します。
[ルート@ドッカ〜]#

  使用方法:速くピングモジュールを使用しての基本を理解していない-sオプション、ヘルプに上記の情報は、私たちは、ピングからモジュールの主な機能は、ホストに接続しようとすることであることを理解していれば、オンラインでホスト「ピンポン」復帰

リモートホストとのPingテストモジュールはオンラインです

[ルート@ドッカ〜] #ansible websers -mピング 
192.168.0.128 | SUCCESS => {
    「変更」:偽、 
    "卓球"
}
192.168.0.218 | SUCCESS => {
    「変更」:偽、 
    "卓球"
}
[ルートドッキングウィンドウ@〜] #ansible appsers -mピング 
192.168.0.217 | SUCCESS => {
    「変更」:偽、 
    "卓球"
}
[ドッキングウィンドウ@ルート〜] #ansibleすべての-mのping 
192.168.0.128 | SUCCESS => {
    「変更」:偽、 
    "卓球"
}
192.168.0.218 | SUCCESS => {
    「変更」:偽、 
    "卓球"
}
192.168.0.217 | SUCCESS => {
    「変更」:偽、 
    "卓球"
}
[ルート@ドッカ〜]#

  注:原因3つのホストへの私のテスト環境、すでに情報が失敗した場合に返されるので、パスワードのためのプロンプト、ansibleデフォルトについて言うべき価値が認定への道に基づいてSSH鍵認証を使用することはありませんされ、SSHキーベースの認証を行っています(構成に基づいて、SSH鍵認証については、私のブログを参照https://www.cnblogs.com/qiuhom-1874/p/11783371.htmlを)、SSHキーベースの認証を行うことなく、リモートホストならば、我々はオプションを追加する必要があります-以下に示すようにkは、パスワード認証モードを指定したユーザ名です

[ルート@ドッカ〜] #ansibleすべての-m -kのping
SSHパスワード: 
192.168.0.128 | SUCCESS => {
    「変更」:偽、 
    "卓球"
}
192.168.0.218 | SUCCESS => {
    「変更」:偽、 
    "卓球"
}
192.168.0.217 | SUCCESS => {
    「変更」:偽、 
    "卓球"
}
[ルート@ドッカ〜]#

  注:私たちは、パスワードが入力されていることを見ることができ、3つのホストが結果を返されたが、これはなぜですか?私たちはホスト3場合ansible、認証が成功した場合には、ホスト上で当社指定の認証にパスワードを入力するように成功したリターンを私たちがかかりますので、障害が返すことができなかった、私たちのホストが同じパスワードだと思うので、その不適切なタイトパスワードは同じではありませんか?これは私たちにリモートホストを制御するために、不便の多くを与えるだろう、あなたがansible使用する前に、SSH鍵認証に基づいて良い仕事をすることをお勧めします。

これらは私が友人のガガの注目のようなansible他の用途を、更新していきます、次の基本的な使用ansibleソフトウェアやプレゼンテーションです。ひどく書かれた、私を修正してください、ありがとうございました!! 

おすすめ

転載: www.cnblogs.com/qiuhom-1874/p/11827990.html