Ansible自動デスクトップおよびラップトップのアプリケーション構成のシリーズを作成する方法を学びます。
Ansibleは驚くほど自動化された構成管理ツールです。このシリーズは、に焦点を当てされていることは稀その主なサーバーとクラウドの展開上、しかし、ワークステーションアプリケーション(デスクトップまたはノートブックかどうか)上のアプリケーションが、注目を集めます。
このシリーズでは最初の部分、私たちは、スクリプトパッケージのインストールの少数を作成して、あなたの基本的な使い方ansibleプルコマンドを示しています。それ自体はほとんど役に立たないが、その後の自動化のための準備をしました。
この記事では、人々は閉鎖されます、そして最後の部分で、私たちは、ワークステーションの自動設定のための完全な実用的なソリューションを持っています。今、私たちはAnsible構成を設定しようとしているので、将来がどうなることは私たちのワークステーションにアプリケーションを展開自動的に変更されます。この段階では、あなたが完了していることを仮定しての最初の部分の仕事を。そうでない場合は、あなたがこの記事のバックを完了したとき。あなたは既に最初の記事のコードはGitHubのリポジトリを持つ必要があります。我々は以前続ける上で作成の一部を指示します。
まず、ので、私たちはパッケージファイルをインストールする以上のことをしなければならないので、我々はいくつかの再編成を行う必要があります。今、私たちはlocal.ymlというスクリプトを持っており、次のものがあります。
- - ホスト:localhostの
- なる:真
- タスク:
- - 名前:インストールパッケージ
- やすい:名前= {{アイテム}}
- with_items:
- -htop
- - MC
- -tmux
私たちは、タスクを達成したい場合は、上記の構成で十分です。私たちのコンフィギュレーションに追加されたコンテンツでは、このファイルは非常に大規模で乱雑になります。最高のできの種類に応じて私たちの行動は、別々のファイルに再生する設定します。この要件を満たすために、手動タスクの何かtaskbookという名前のファイルを作成し、それは脚本のように果たしているが、はるかに合理化されています。のは、手動タスクのGitリポジトリ用のディレクトリを作成してみましょう。
- mkdirタスク
local.ymlスクリプトコードは、インストールパッケージファイルの手動タスクのための良い移行することができます。ちょうど良いタスクを作成したディレクトリにこのファイルを移動し、名前を変更してみましょう。
- mvlocal.ymlタスク/ packages.yml
今、私たちは実際には、我々は独立したタスク自体以外のすべてを合理化することができ、packages.yml大幅な減量を編集するためにそれを提出します。packages.ymlは、次のような形式に編集してみましょう:
- - 名前:インストールパッケージ
- やすい:名前= {{アイテム}}
- with_items:
- -htop
- - MC
- -tmux
あなたが見ることができるように、それは同じ構文を使用しますが、我々は、すべての不要なコンテンツは、この作業は必要ありません削除されました。今、私たちは、専用のインストールマニュアルタスクパッケージファイルを持っています。しかし、我々はまだ実行ansibleプルはまだfileコマンドを見つけるためという名前のファイルをlocal.yml必要です。だから我々は、これらの要素を含む新しいファイルを作成するには(ない作業ディレクトリに)私たちのライブラリのルートになります。
- - ホスト:localhostの
- なる:真
- pre_tasks:
- - 名前:アップデートリポジトリ
- apt:update_cache =はい
- changed_when:偽
- タスク:
- -include:タスク/ packages.yml
この新しいlocal.ymlは、Googleのインデックスをインポートするには、手動タスクの役割を果たしています。私はあなたがこのファイルで、このシリーズでは見ていない何かを追加しました。まず、このファイルの先頭に、私はpre_tasksを追加し、タスクの役割には、実行する他のすべてのタスクの前にタスクを実行することです。この場合、我々はそれがソフトウェアライブラリの私たちのリリースバージョンであるインデックスを更新するAnsibleコマンドを与え、次のような構成では、このタスクが必要と実行します。
- apt:update_cache =はい
この行はまた、さらなる説明を必要とします。
- changed_when:偽
防止Ansibleのタスクでこのラインは、アクションの変更の結果、自身がつながるシステムでも、変更を報告します。ここでは、ライブラリ・インデックスは、新たなデータが含まれている気にするつもりはありません、それはほとんどのライブラリは常に変化しているためです。屈折率の変化は、通常のプロセスであるので、私たちは、ライブラリを気にする傾向は変わりません。我々はこの行を削除した場合、我々は唯一のライブラリを更新する場合でも、後で報告プロセスの変化のすべてを見ることができます。ベストは、この種の変更を無視します。
次の段階では、我々は良い仕事マニュアルのインポートを作成し、日常的な作業です。:あなたは次の行を追加したいときに我々は別の手動タスクを追加するたびに
- タスク:
- -include:タスク/ packages.yml
あなたはansibleプルコマンドを実行している場合は、基本的に同じ記事をしたいはずです。違いは、私たちは私たちの組織を改善していることで、より効果的にそれを拡張します。次のように見つけるために、前の記事にあなたを保存するには、参照ansibleプルコマンドの構文は次のとおりです。
- sudoのansibleプル-U https://github.com/<github_user>/ansible.git
あなたがGitのリポジトリとアプリケーションの設定を引っ張って、その後、ansibleプルコマンドを覚えていればそれが含まれています。
今、私たちは良い基盤を構築していることを、我々は今、私たちAnsibleを拡大し、機能を追加することができます。具体的には、我々はやるワークステーションの展開を自動化するために設定を変更、追加します。この要件をサポートするために、我々は我々のAnsible設定を適用するために特別なアカウントを作成する必要があります。これは不要であり、我々はまだ我々自身のユーザにAnsibleコンフィギュレーションを実行することができます。しかし、単離されたユーザーの使用は、参加するために私たちを必要としないバックグラウンドで実行しているシステム・プロセスに分離することができます
私たちは、ユーザーを作成するには、従来の方法を使用することができますが、私たちはAnsibleを使用しているので、我々は、手動で変更を回避しようとしてください。代わりに、我々は、ユーザーが作成したタスクを処理するための手動タスクを作成します。現在の手動タスクは、ユーザーが作成されますが、あなたはより多くのユーザーを作成するには、このマニュアル作業で追加のアクションを追加することができます。私はansibleユーザー名となります(あなたの場所のすべての出現を更新するようにしてくださいするために、この変更を行った場合)、あなたは名前に自分のアイデアに従うことができます。さんはuser.ymlマニュアルと呼ばれるタスクを作成し、その中に以下のコードを書いてみましょう:
- - 名前:ansibleユーザーを作成
- ユーザー:名= ansibleはuid = 900
次に、我々は、次を書くとして、この新しい手動タスクへ追加するために、ファイルlocal.ymlを編集する必要があります。
- - ホスト:localhostの
- なる:真
- pre_tasks:
- - 名前:アップデートリポジトリ
- apt:update_cache =はい
- changed_when:偽
- タスク:
- -include:タスク/ users.yml
- -include:タスク/ packages.yml
我々はansibleプルコマンドを実行すると、ansibleという名前のユーザーがシステムに作成されます。私はIDのuidパラメータが900で、ユーザによりユーザに宣言するために来ていることに注意してください。これは必要ですが、直接作成されたUIDをお勧めしません。ログイン画面で、次の1000年におけるUIDが表示されていないので我々は、デスクトップansibeアカウントを訪問することを行く必要がなかったので、これは、素晴らしいです。UID 900は、単に与えられ、それが1000以下の数のいずれかを使用すべきではありません。あなたは既に使用中のUID 900かどうかを確認するために、システムで次のコマンドを使用することができます。
- 猫/ etc / passwdファイル| grep900
ただし、これまでのところ、私が使用するすべてのディストリビューションでは、私はそれがデフォルトです満たしていないので、何の問題も発生しません。このUIDを使用する必要があります。
今、私たちはすでにansibleという名前のアカウントを持って、それが自動化されたコンフィギュレーション後に使用されます。次に、我々は、自動運転へのジョブの実際のタイミングを作成することができます。私たちは、むしろそれは、先ほど作成したファイルusers.yml置くよりも、独自のファイルに分割する必要があります。cron.ymlディレクトリと呼ばれるタスクの手動でタスクを作成し、その中に以下のコードを記述します。
- - 名前:インストールcronジョブ(ansibleプル)
- クーロン:ユーザー= "ansible" 名前= "ansible条項" 分= "* / 10" 仕事= "は/ usr / binに/ ansibleプル-o -U https://github.com/<github_user>/ansible.git >を/ dev / null」
cronのモジュールの構文は、ほとんど自明です。この作用により、我々は、ユーザansible操作による定期的なジョブを作成しています。この作品は10分ごとに実行され、次のように実行されるコマンドです。
- / usr / binに/ ansibleプル-o -U https://github.com/<github_user>/ansible.git>を/ dev / null
同様に、我々はまた、あなたがこのファイルに展開私たちのワークステーションのすべてをしたい追加の定期的なジョブを追加することができます。私達はちょうど新しい仕事のタイミングにアクションを追加する必要があります。しかし、単にタイミングタスクマニュアルを追加することは十分ではありません、我々はまた、それが呼び出すことができるように、ファイルをlocal.ymlするためにそれを追加する必要があります。最後に次の行を追加します。
- -include:タスク/ cron.yml
ansibleプルコマンドが実行されたときに今、新しいタイミング動作を設定するには、ユーザーansibleで10分ごとになります。これはCPUリソースを大量に消費するので、しかし、Ansibleジョブを実行するために、各10分には、良い方法ではありません。我々はGitのリポジトリに何かを変更する必要がない限り、Ansibleのために実行するために、すべての10分は無意味です。
しかし、我々はこの問題を解決しました。-oパラメータを追加する前に、我々が使用したことがなかった私は、時限仕事ansibleピルを命じることに注意してください。これはAnsibleのみライブラリが最後ansibleプル以降に変更された後に呼び出された後に実行されます伝えます。ライブラリが変更されていない場合、それは何もしません。このように、あなたは、CPUリソースの無償無駄ではありません。リポジトリを引いたときにそんなにを使用するように設定する場合もちろん、我々は再びではなく、アプリケーション全体として、いくつかのCPUリソースを使用します。ときansibleプル実行、それはすべてのタスクと手動の作業を通じて再生されますが、少なくともそれは目的なしで実行されません。
我々はansibleプルを自動化するために必要なすべての構成要素を追加しているが、それはまだ正常に動作することはできません。それはシステムレベルのコマンドを実行することができます実行するために必要なansibleプルコマンドはsudo権限、。しかし、私たちが作成したユーザーansibleは、コマンドを実行するためにsudo権限を設定されていないので、タイマージョブによってトリガされたとき、実行が失敗します。通常、私たちは、この権限を持つようにansible設定するユーザーマニュアルにコマンドvisudoを使用することができます。しかし、私たちは、操作へのアプローチをAnsibleする必要があり、これは、モジュールがあなたをコピーするどのように機能するかを示す機会となります。コピーモジュールを使用すると、ファイルシステム内の任意の場所にライブラリからファイルをコピーすることができます。この場合、コラムでは、設定ファイルのsudoのコピーは、ユーザーがタスクにansible管理者権限を実行できるように/etc/sudoers.d/するでしょう。
オープンusers.yml、ファイルの末尾に次のアクションを追加します。
- - 名前:コピーsudoers_ansible
- コピー:SRC =ファイル/ sudoers_ansible DEST =の/ etc / sudoers.d / ansible所有者= rootグループ=ルートモード= 0440
私たちが見ることができるように、他の場所に私達の倉庫からファイルをコピーするために、モジュールをコピーしてください。このプロセスでは、我々はファイル(私たちは、その後に作成されます)sudoers_ansibleクロールすると呼ばれ、それは、/ etc / sudoersファイル/ ansibleにコピーして、rootが所有します。
次に、我々はコピーするファイルを作成する必要があります。リポジトリのルートディレクトリには、名前のファイルがあるディレクトリを作成します。
- MKDIRファイル
次に、先ほど作成したディレクトリ内のファイルは、以下を含め、sudoers_ansibleという名前のファイルを作成します。
- ansible ALL =(ALL)NOPASSWD:ALL
私たちがそうしているのと同じように、私たちは特定のユーザのためにsudo権限を設定することができ/etc/sudoer.dディレクトリにファイルを作成します。私たちは今、パスワードプロンプトなしでsudoをansibleにユーザーがフルコントロールを持つことができます。この形式は、手動で実行する必要なしにansibleプル動作後のミッション・ステーションを許可します。
さて、あなたは再びansibleプルを実行して、最新の変更を引くことができます。
- sudoのansibleプル-U https://github.com/<github_user>/ansible.git
それは変更があることが発見された場合、ここからは、バックグラウンドジョブでansibleプルタイミングはあなたの倉庫内の変更があるかどうかを確認するために一回10分ごとに実行されます、それはあなたのスクリプトやアプリケーションのマニュアルタスクを実行します。
だから今、私たちは仕事の完全なプログラムを持つことができます。あなたが最初の新しいラップトップまたはデスクトップをセットアップするときは、手動でansibleプルコマンドを実行するために行くが、唯一のは初めて。初めての後、ユーザーはバックグラウンドでansible、後続の実行タスクを引き継ぎます。あなたがあなたのマシンに変更を加えたいときは、単に戻って、ライブラリにその変更、それらの変更を行うには、あなたのGitリポジトリをプルする必要があります。次に、次のジョブは、各マシン上で実行するタイミングが、それは一部の変更をプルし、それらを適用します。あなたは一度だけ行う必要があり、すべてのワークステーションが一緒に変更するために従います変更します。少し変わったが、通常、あなたはマシンとマシンのリストが含まれているマニフェストファイルを持っていますが、この方法は、異なるルールに属します。しかしながら、ansibleプル法は、記事に記載されているように、非常に有効な方法を設定するための管理ステーションです。
私は私の持っているGithubのリポジトリは、この記事のコードを更新するので、あなたは常にあなたの文法をチェックし、比較するために、ブラウザに行くことができます。同時に独自のディレクトリへのコードの前の記事Iで。
で3番目のセクションは、我々はAnsibleの使用を導入することにより、シリーズを終了するには、GNOMEデスクトップの設定を行います。私はどのようにあなたの壁紙を設定し、画面の壁紙をロックし、デスクトップテーマなどを適用する方法を教えてくれます。
同時に、いくつかの宿題の時間に、ほとんどの人は、我々が使用するアプリケーション構成ファイルのさまざまなを持っています。おそらくバッシュは、Vimや環境設定ファイルを使用している他のツール。今、あなたは自動的に私たちが使用Ansibleライブラリによってあなたのマシンに設定をコピーしようとすることができます。この記事では、私はあなたがこの知識を適用することができた場合は、以下を参照してみてくださいファイルをコピーするので、行かなければならない方法を紹介します。
経由:https://opensource.com/article/18/3/manage-your-workstation-configuration-ansible-part-2