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 か?)
- 安定していて、学習コストが低い(本質ではない。大事なのは設定の中身)
其他
相较于“构成管理工具”,我更觉得“部署管理工具”更适合我。