1.Ansibleは管理を実現します:
Ad-Hoc -------------------- ansibleコマンドを使用して、管理を直接完了します。主に、一時的なコマンド使用シーンの
プレイブックに使用されます------------ -------主に大規模なプロジェクトシナリオで使用されるAnsibleスクリプトには、事前の計画が必要です
2.アドホックコマンド(アドホック)を実行します。
2-1:コマンドラインを介して、一時的なコマンドを使用して、プレイブックを作成せずにすばやくテストおよび変更できます。簡潔で効率的です。
Ansibleコマンド実行プロセス:
1。独自の構成ファイルを
ロードします。2。対応するモジュールファイルをロードします
。3。ansibleを介してモジュールから対応する一時pyファイルを生成し、リモートサーバーの対応する実行ユーザーHOME / .ansible / tempにファイルを転送します。 /tmp/ansible-tmp-number/xxx.pyファイル
4.ファイル+ xを実行します
5.実行して結果を返し
ます6.一時ファイルを削除して終了します
2-2:一時コマンドで使用される一般的なモジュール:
文件模块:
-copy 将本地文件复制到受管主机
-file 设置文件的权限和其他属性
-lineinfile 确保特定行是否在文件中
-synchronize 使用rsync同步内容
系统模块:
-firewalld 使用firewalld管理任意端口和服务
用firewalld 管理任意端口和服务
-reboot 重启
-service 管理服务
-user 添加、删除和管理用户账户
Net Tools模块:
-get_url 通过http、https、或者ftp下载文件
nmcli 管理网络
-uri 与web服务交互
2-3アドホックの一般的に使用されるパラメータ:
3. Ansibleのプレイブック:
3-1。Playbook:YAMLマークアップ言語で書かれた繰り返し可能なタスクのリストです。
3-2.yaml形式では、通常、拡張子
ansible- playbook xxx.ymlとして.ymlを使用してプレイブックを実行します(環境内のインベントリとansible.cfgが必要です)注:タスクとタスクの間、およびプレイとプレイの間には、次の条件が必要です。 -
3-3。ansible-playbookのデフォルト出力は、詳細なタスク実行情報を提供しません。
-vパラメーターは、次の4つのレベルを提供します。-v(タスク結果の表示)-vv(タスク結果とタスク構成の表示)-vvv(管理対象ホストとの接続情報を含む)-vvvv(接続プラグインに関連する詳細を追加)度オプション)(管理対象ホストでスクリプトを実行するために使用されるユーザーと実行されたスクリプトを含む)
3-4。playboolを実行する前に構文を確認することをお勧めします
。Ansible-playbook--syntax-checkwebserver.ymlに
構文エラーがあり、エラーの場所ERROR!Sが表示されます。
3-5.yamlにはインデントに関する厳密な要件はありませんが、2つの基本原則があります
。1)同じ階層の同じレベルのデータ要素は同じインデントを持っている必要があります(再生自体はキーと値のペアのコレクションです。同じプレイのキーは同じインデントを使用する必要があります);会議後: ""スペースが必要です
2)。アイテムが別のアイテムの子である場合、インデントは親アイテムより大きくなければなりません。形式は次のとおりです。
3-6:プレイブックの一般的な実行コマンド:
ansible-playbook xxx.yml ... ansible执行playbook
--check|-C ##检测
--syntax-check ##检测语法
--list-hosts ##列出hosts
--list-tags ##列出tag
--list-tasks ##列出task
--limit ##指定执行主机
-v -vv ##显示过程
4.vimrcでyamlのインデント形式を編集します。
5. ansibleの変数:
5-1:役割:
プレイブックの一部の値を変数に置き換えて、プレイブックの作成を簡素化します
<1。変数はプレイブックで再利用できます
<2 。変数はリスト内のホストとホストグループに対して定義できます
<3。変数はファクトと外部ファイルを使用して、またはコマンドライン
<4で定義できます。registerキーワードが使用されるのはなぜですか?キャプチャコマンド出力
<
5。ansibleボールトの使用< 6。ansiblefactは、管理対象ホストから自動的に検出される変数です。
5-2:変数の命名に
は数字と下線のみを含めることができ、文字
は下線または文字でのみ開始できます
5-3:可変レベル
グローバル:コマンドラインまたは構成ファイルから設定された
ペイ:インプレイおよび関連構造で設定
ホスト:リスト、ファクトによって収集または登録されたタスク
可変優先度設定:
狭い範囲が広い範囲よりも優先されます
5-4:変数を使用する一般的な方法:
5-4-1:プレイブックの冒頭にあるvarsブロックで変数を定義します(一般的な方法)
5-4-2:-eパラメーターを直接追加して、アドホックコマンドラインで変数を定義します。
ansible test -e“ username = westos”;
5-4-3:ansible.cfgの同じレベルのディレクトリに変数ファイルを作成します。
「{{username}}」などの変数を呼び出すときは、二重引用符の使用に注意してください。
JINJA2テンプレートの使用:
はじめに:Jinja2
は、Pythonで次に広く使用されているテンプレートエンジンです。
彼のデザインアイデアは、Djangoのテンプレートエンジンに基づい
ており、構文と一連の強力な関数を拡張しています。
最も注目すべきものは、サンドボックス実行とオプションの自動エスケープの追加です
使用例:
---
- hosts: all
tasks:
- name: system info
template:
src: hostinfo.j2
dest: /tmp/hostinfo
注:他のプレイブックまたはタスクをインポートします。
- import_playbook:task.yml
6. Ansibleの管理事実:
ファクト情報の収集:
gather_acts; collect_acts:no | falseを
使用してコレクションを閉じることができます;システム変数名を使用します。これは次のように一般的です:
hostname: {
{
ansible_facts['hostname'] }}
ip: {
{
ansible_facts["eth0"]["ipv4"]["address"] }}
DNS: {
{
ansible_facts['dns']['nameservers'][-1] }}
vda1: {
{
ansible_facts['devices']['vda']['partitions']['vda1']['size'] }}
kernel: {
{
ansible_facts['kernel'] }}
事実情報を表示する:ansible test(list)-m setup | less
7.Ansibleの暗号化制御:
创建建立文件
1.
ansible-vault create westos
2.
vim westos-vault
lee
ansible-vault create --vault-password-file=westos-valut westos
#加密现有文件
ansible-vault encrypt test
#查看加密文件
ansible-vault view westos
ansible-vault view --vault-password-file=westos-valut westos
#编辑加密文件
ansible-vault edit westos1
ansible-vault edit --vault-password-file=westos-valut westos
##解密文件
ansible-vault decrypt westos ##文件永久解密
ansible-vault decrypt westos --output=linux ##文件解密保存为linux
##更改密码
ansible-vault rekey westos1
ansible-vault rekey westos1 --new-vault-password-file=key1
#playbook#
ansible-playbook apache_install.yml --ask-vault-pass