Ansibleプロフィール

詳細なプロフィール

設定ファイルの大半は、コメント行項目のデフォルトの設定です。INIファイルが設定いくつかのカテゴリに分けフォーマットを、以下、次のように別々に導入されるであろう。
それまでは、構成ファイルの場所、およびどのように公式サイトからのコンフィギュレーション・ファイルのテンプレートを取得する見てください。

場所プロファイル

Ansibleだけつのプロファイルansible.cfg。プロファイルは、次の順序効果の最初のものを見つけるために、複数の位置で存在することができます。

  • ANSIBLE_CONFIG(環境変数)
  • ansible.cfg(現在のコマンドの実行ディレクトリ)
  • 〜/ .Ansible.cfg(ユーザのホームディレクトリの下)
  • /etc/ansible/ansible.cfg

初回のみを有効にする設定ファイルを検索します。さらに優先順位は、環境変数のプロファイルよりも高いだけでなく、別途設けました。各設定項目に対応する変数の名前は、以下の公式文書に記載されています。
https://docs.ansible.com/ansible/latest/reference_appendices/config.html#common-options

方法を指定するコマンドラインパラメータがありますが、これは上記の構成よりも高い優先度です。しかし、脚本の設定は、より高い優先順位を指定して、コマンドラインパラメータでカバーされることはありません。

コンフィギュレーション・ファイルのテンプレートを取得します。

Ansibleのインストール後、デフォルトの設定ファイルは、/ etc / ansible /ディレクトリに生成されます。それはPIPやソースコードによってインストールされている場合でも、あなたは、手動で作成する必要はありません。あなたは公式のgithubの次の日に行くことができます:

$ mkdir /etc/ansible
$ cd /etc/ansible
$ wget https://raw.githubusercontent.com/ansible/ansible/devel/examples/ansible.cfg

[デフォルト]

一般的な接続構成クラスを定義します。

[defaults]

# some basic default values...

#inventory      = /etc/ansible/hosts  # 定义Inventory,用于定义主机列表配置
#library        = /usr/share/my_modules/  # 自定了lib库存放目录
#module_utils   = /usr/share/my_module_utils/
#remote_tmp     = ~/.ansible/tmp  # 临时文件远程主机存放目录
#local_tmp      = ~/.ansible/tmp  # 临时文件本地存放目录
#plugin_filters_cfg = /etc/ansible/plugin_filters.yml
#forks          = 5  # 默认开启的并发数
#poll_interval  = 15  # 默认轮询时间间隔
#sudo_user      = root  # 默认sudo用户
#ask_sudo_pass = True  # 是否需要sudo密码
#ask_pass      = True  # 是否需要密码
#transport      = smart
#remote_port    = 22
#module_lang    = C
#module_set_locale = False

# additional paths to search for roles in, colon separated
#roles_path    = /etc/ansible/roles  # 默认下载的Roles存在的目录

# uncomment this to disable SSH key host checking
#host_key_checking = False  # 首次连接是否需要检查key认证,建议放开注释设为False

# SSH timeout
#timeout = 10  # 默认超时时间

# logging is off by default unless this path is defined
# if so defined, consider logrotate
#log_path = /var/log/ansible.log  # 执行日志存放目录

# default module name for /usr/bin/ansible
#module_name = command  # 默认执行模块

# set plugin path directories here, separate with colons
#action_plugins     = /usr/share/ansible/plugins/action  # 各类插件的存放目录
#become_plugins     = /usr/share/ansible/plugins/become
#cache_plugins      = /usr/share/ansible/plugins/cache
#callback_plugins   = /usr/share/ansible/plugins/callback
#connection_plugins = /usr/share/ansible/plugins/connection
#lookup_plugins     = /usr/share/ansible/plugins/lookup
#inventory_plugins  = /usr/share/ansible/plugins/inventory
#vars_plugins       = /usr/share/ansible/plugins/vars
#filter_plugins     = /usr/share/ansible/plugins/filter
#test_plugins       = /usr/share/ansible/plugins/test
#terminal_plugins   = /usr/share/ansible/plugins/terminal
#strategy_plugins   = /usr/share/ansible/plugins/strategy

# if set to a persistent type (not 'memory', for example 'redis') fact values
# from previous runs in Ansible will be stored.  This may be useful when
# wanting to use, for example, IP information from one group of servers
# without having to talk to them in the same playbook run to get their
# current IP information.
#fact_caching = memory  # getfact 缓存的主机信息存放方式

# retry files
# When a playbook fails a .retry file can be created that will be placed in ~/
# You can enable this feature by setting retry_files_enabled to True
# and you can change the location of the files by setting retry_files_save_path

#retry_files_enabled = False
#retry_files_save_path = ~/.ansible-retry  # 错误重启文件存放目录

上記のすべてのこれらの構成のほとんどは、デフォルトのままにします。一方のみがhost_key_checking = Falseコメントを手放すことができます。

[privilege_escalation]

安全上の理由から、時には直接右は言及するための設定はsudoユーザ設定の主要部分である一般のユーザーにsudoの権限を与える必要があり、上、rootユーザーに直接、この時間は、アプリケーションを配備する必要はありません。

[privilege_escalation]
#become=True  # 是否sudo
#become_method=sudo  # sudo方式
#become_user=root  # sudo后变为root用户
#become_ask_pass=False  # sodu后是否验证密码

[paramiko_connection]

この関数は、下の共通理解の一部ではありません。

[paramiko_connection]

# uncomment this line to cause the paramiko connection plugin to not record new host
# keys encountered.  Increases performance on new host additions.  Setting works independently of the
# host key checking setting above.
#record_host_keys=False  # 不记录新主机的key以提升效率

# by default, Ansible requests a pseudo-terminal for commands executed under sudo. Uncomment this
# line to disable this behaviour.
#pty=False  # 禁用sudo功能

[ssh_connection]

ホストへのAnsibleデフォルトのssh接続、ここではいくつかの設定SSH接続は次のとおりです。

# Enabling pipelining reduces the number of SSH operations required to
# execute a module on the remote server. This can result in a significant
# performance improvement when enabled, however when using "sudo:" you must
# first disable 'requiretty' in /etc/sudoers
#
# By default, this option is disabled to preserve compatibility with
# sudoers configurations that have requiretty (the default on many distros).
#
#pipelining = False  # 管道加速功能,需配合requiretty使用方可生效

この設定オプションは、最も多くのではないか、デフォルトのままにします。

[加速]

Ansible加速接続構成:

[accelerate]
#accelerate_port = 5099  # 加速连接端口
#accelerate_timeout = 30  # 命令执行超时时间,单位秒
#accelerate_connect_timeout = 5.0  # 连接超时时间,单位秒

# The daemon timeout is measured in minutes. This time is measured
# from the last activity to the accelerate daemon.
#accelerate_daemon_timeout = 30  # 上一个活动连接的时间,单位分数

# If set to yes, accelerate_multi_key will allow multiple
# private keys to be uploaded to it, though each user must
# have access to the system via SSH to add a new key. The default
# is "no".
#accelerate_multi_key = yes

ここでの設定項目はAnsibleの接続速度を提供に関連する、またはデフォルトの過半数を維持します

[SELinuxの】

SELinuxはほとんど使用されていない、またはデフォルト設定を保持します:

# Set this to yes to allow libvirt_lxc connections to work without SELinux.
#libvirt_lxc_noseclabel = yes

[色]

出力色の設定。元の設定はデフォルトのまま、ほとんど変更することなく、非常に良いされています:

[colors]
#highlight = white
#verbose = blue
#warn = bright purple
#error = red
#debug = dark gray
#deprecate = purple
#skip = cyan
#unreachable = red
#ok = green
#changed = yellow
#diff_add = green
#diff_remove = red
#diff_lines = cyan

詳細なインベントリの設定

在庫管理には、デフォルトの場所は、/ etc / ansible /ホストで、これはansible.cfgプロファイルの先頭で定義され、Ansibleホストの設定ファイルです。
また、あなたが使用するインベントリファイルを指定するには、コマンドラインansible -iパラメータを使用することができます。
注意:使用#はコメントの内容を書くこと。

ホストとグループの定義

グループ名の括弧内部表現で書かれています。ホスト名は、IPアドレスを指定できますまた、ホスト名にすることができます。ホスト名が複数のグループに書き込むことができ、複数回表示されることがあります。
ホストがデフォルト以外のSSHポートを使用している場合は、ホスト名の後にコロンのSSHポート番号を指定することができます。
構成例::

# 配置示例

# 可以用IP地址
192.168.1.1

# 也可以使用Hostname
www.ansible.com
docs.ansible.com:2222

# 使用中括号表示一个分组的开始,主机与主机之间可以有空行不影响分组
[webservers]
web1.ansible.com

# 用[10:20]表示连续的数组,包括10和20
web[10:20].ansible.com

[dbservers]
db-a.ansible.com
# 也可以用中括号处理连续的字母
db-[b:f].ansible.com

カスタム変数

いくつかの非標準的な構成要件については、インベントリの構成で設定することができます。これは、いくつかのパーソナライゼーション・ホストに設定された要件を満たすことができます。
Ansibleは、変数を変更したり、カスタマイズするためのさまざまな方法をサポートしてインベントリはその一つの変更です。

ホスト変数を定義する
ホストを定義すると同時に、ホスト変数を定義することができるとき。

[webserverrs]
web1.ansible.com http_port=8000  # 自定义http_port的端口号为8000

変数の定義されたセットは、
変数のセットを定義し、ホストやカスタム変数のセットを変更することができます。

[groupservers]
web1.ansible.com
web2.ansible.com

[groupservers:vars]
http_port=8000

グループデフォルト
Ansibleは、2つのデフォルト・グループを定義しました。

  • すべて:すべてのホストが含まれて
  • グループ化されていない:すべてのホストのないグループが含まれていません

ネストされたグループ

グループ内のインベントリは他の基を含むことができる、それがネストされています。追加するために大規模なグループの名前にネスト:子供たちを、メンバーは、ネストされたグループ名の代わりにホスト名を表明しました:

[apache]
httpd1.ansible.com
httpd2.ansible.com

[nginx]
ngx1.ansible.com
ngx2.ansible.com

[webservers:children]
apache
nginx

[webservers:vars]
ntp_server=ntp1.aliyun.com

また、あなたは、ネストされたグループの変数のセット、変数の共通セットと同じに設定することができます。

複数の変数の定義

設定ファイルが別々のファイルを定義するの目録で定義された変数に加えて、インベントリはまた、独立していてもよいです。
以下の変数は、優先順位の順に配置された種々の方法を、提供されます。

  1. コマンドライン値(例えば「-uユーザー」)
  2. 役割のデフォルト
  3. インベントリファイルやスクリプトグループVARS
  4. 在庫group_vars /すべて
  5. 脚本のgroup_vars /すべて
  6. 在庫group_vars / *
  7. 脚本のgroup_vars / *
  8. インベントリファイルやスクリプトホストVARS
  9. 在庫HOST_VARS / *
  10. 脚本HOST_VARS / *
  11. ホストの事実/キャッシュされset_facts
  12. VARSを再生
  13. vars_prompt遊びます
  14. vars_filesを再生
  15. (役割/ VARS / main.ymlで定義されている)の役割VARS
  16. (唯一のブロック内のタスクのための)ブロックVARS
  17. タスクは(唯一のタスクのために)varsの
  18. include_vars
  19. set_facts /登録VARS
  20. 役割(およびinclude_role)のparams
  21. paramsを含めます
  22. 余分なVARS(常に優先に勝ちます)

https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#ansible-variable-precedence

もっと一般的に使用される以下の4つです。

  • インベントリー・プロファイル
  • 脚本領域はVARSで定義されています
  • ディレクトリ内のVARSファイルのロール(役割/ X / VARS / main.yml)
  • ディレクトリとhosts_vars内のファイルをGroup_vars

バールプロファイルは、ホストフーズボールのように、個別に定義され、Webサーバは、その変数が定義されたグループの以下の3人の有効なホスト名またはファイル名で定義されているローリーのグループを、所属します:

  • の/ etc / ansible / group_vars /ローリー
  • の/ etc / ansible / group_vars / Webサーバ
  • の/ etc / ansible / host_vars /フーズボール

以下のためのSSH接続パラメータ

AnsibleインベントリSSHは、リモートホストを指定するときに基づく、対話モードは、次のパラメータは、より一般的な列挙されている指定された接続のためにも構築されたパラメータ:

  • ansible_ssh_host:ホストへの接続を指定します。
  • ansible_ssh_port:SSH接続ポート、デフォルトの22を指定します。
  • ansible_ssh_user:ユーザーがSSHを指定して接続します
  • ansible_ssh_pass:SSH接続パスワードを指定します。
  • ansible_ssh_private_key_file:秘密鍵ファイルを指定します

接続は、接続プラグ、プラグインは、これら上記のように独自の変数を使用する使用します。いくつかの一般的な接続変数で次のような効果が同じで、プラグインを識別することができるされています。

以下の3つが共通の変数に接続されています。

  • ansible_host
  • ansible_port
  • ansible_user

ここでは一般的な3、優先順位に上書き特定超えるべきです。

SSHプラグインの変数の合計は、これらの変数とデフォルト値を含む対応する名前、環境変数、対応する変数名のすべては、あなたが公式のドキュメントをチェックすることができる方法どのセット:
https://docs.ansible.com/ansible/latest/pluginsを/connection/ssh.html#ssh-connection

すべての接続の表示、こちらを参照してください。
https://docs.ansible.com/ansible/latest/plugins/connection.html?highlight=ansible_ssh_host

おすすめ

転載: blog.51cto.com/steed/2432142