アドホック、プレイブック、変数、Ansibleでの暗号化

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

おすすめ

転載: blog.csdn.net/lb1331/article/details/111998681