Ansible笔记

请参考以下网站。

实践!Ansible最佳实践(上)

实践!Ansible最佳实践(下篇)

将Ansible的角色注册到Ansible Galaxy并进行再利用。

Ansible 使用中的顾虑和对策(未完成)

    • ssh 接続ができる必要がある.

 

    • ssh 接続時のパスワードについて :: 入力不要にする or 入力する or 補助ツールを利用する

 

    • 接続先で管理者権限でコマンド等を実行できる必要がある :: sudo 等を利用する

 

    接続先で sudo を利用する場合 :: 入力不要にする or 入力する or 補助ツールを利用する

使用 with_items 时要注意的事项。

参考项目将位于循环内。

    間違い
- debug:
    msg: "{{ item }}"
    with_items: "{{ message_list }}"
    正しい
- debug:
    msg: "{{ item }}"
  with_items: "{{ message_list }}"

在每个独立的主机上执行playbook。

使用 -l 选项

% ansible-playbook -i ~/ansible_hosts -l taget_host test.yml

请确认playbook。

–列出主机,列出任务,检查选项

% ansible-playbook -i ~/ansible_hosts --list-hosts --list-tasks --check test.yml

查看已定义的变量

ansible -i hosts -m debug -a "var=hostvars" all
ansible -i hosts -m debug -a "var=hostvars['localhost']" all

使用 -v 选项来打开/关闭调试信息

- debug:
   msg: "This only displays with ansible-playbook -vv+"
   verbosity: 2

忽略初次连接时的ssh主机密钥确认。

将以下设置添加到$HOME/.ansible.cfg中。

[defaults]
host_key_checking = False

按照每个发行版和版本的设置

从最佳实践开始

host: all
  tasks:
    - name: group by distribution and version
      group_by: key="{{ ansible_distribution }}_{{ ansible_distribution_version }}"

host: Ubuntu_14*
 ......

从个人角度来看,我觉得这边的方法更容易理解,但不知道你怎么想。

when: ansible_distribution == 'Ubuntu' and ansible_distribution_release == 'precise'

在部署管理中想做的事情。

    • 同じことを繰り返したくない。

 

    何度行っても同じ構成になるようにしたい。(設定ミスの排除含む)

需要的功能 nà

    • すべてのホストで共通の設定(すべてってなんだ)

 

    • OS別の共通設定(Windows, Linux のバージョン、ディストリビューション毎の共通設定)

 

    • 役割毎の設定(Web、DBなどなど)

 

    • 地域別の設定(タイムゾーン、NTPサーバ、リポジトリサーバなど距離が関係するもの)

 

    • その他、自分で考えたグループ(思いつかない、DMZ に配置した Web サーバとか役割と地域で識別できる?)

 

    • ホスト毎の個別設定(ホスト名、IPアドレス、IP は DHCP か?)

 

    安定していて、学習コストが低い(本質ではない。大事なのは設定の中身)

其他

相较于“构成管理工具”,我更觉得“部署管理工具”更适合我。

广告
将在 10 秒后关闭
bannerAds