Ansible Docs $ansible-navigator doc -l
ansible-navigator doc <ansible.builtin.dnf>
Official
Yaml Re
Basic 名詞解釋 Requirement Linux , macos ,unix like host: need >python3.5
Inventory 1 2 $cd /etc/ansible$vim hosts
INI or YAML
1 2 3 4 5 6 [bind_server] servera.lab.example.com serverb.lab.example.com (server count)>=0 [web_server] .....
1 2 3 4 5 6 7 8 9 [usa] washington1.example.com washington2.example.com [canada] ontario01.example.com ontario02.example.com [north-america:children ] canada usa
ansible.cfg 1 2 3 4 5 6 7 8 9 10 11 [defaults] inventory = ./inventory remote user = devops ask_pass = false # $ssh-keygen # $ssh-copy -id [privilege_escalation] become = true become method = sudo become_user = root become_ask_pass = true
1 2 $cp /etc/ansible/hosts inventory$ansible -navigator inventory -m stdout <--list or --graph>
Playbook.yml 1 2 3 4 5 6 7 8 9 --- - name: Adduser hosts: bind_server tasks: - name: username is chih ansible.builtin.user: name: chih uid: 8888 state: present
Run 1 $ansible -navigator run -m stdout playbook.yml
Ansible simple buildup Ansible.cfg & Inventory 1 2 3 4 5 6 7 8 9 10 11 [defaults] inventory = ./inventory remote_user = devops ask_pass = false # $ssh-keygen # $ssh-copy -id [privilege_escalation] become = true become_method = sudo become_user = root become_ask_pass = false
1 2 3 4 5 6 [bind_server] servera.lab.example.com serverb.lab.example.com [unbound_server] servverc.lab.example.com
$ansible-navigator inventory --graph -m stdout
$ansible-navigator exec --ansible -m ansible.builtin.user -a 'name=rcwang' bind_server
ansibel.builtin.user -a : bliud user bind_server : In bind_server Playbook 1 2 3 4 5 6 7 8 9 10 11 12 13 --- - name: useradd hosts: bind_server tasks: - name: adduser jjli ansible.builtin.user: name: jjli state: present - name: adduser hcyang ansible.builtin.user: name: hcyang ...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 --- - name: bind-chroot server setup hosts: bind_server tasks: - name: Step1. Installation ansible.builtin.package: name: bind-chroot state: present - name: Step2. First Start ansible.builtin.service: name: named-chroot enable: true
Other parameter 增加輸出的細部資訊$ansibel-navigator run newuser.yml -m stdout -vvvv
選項v 描述 -v 顯示任務結果。 -vv 任務結果和任務配置都會顯示 -vvv 包含關於與受管主機連接的資訊 -vvvv 增加了連接外掛程式相關的額外詳細程度選項,包括受管主機上用於執行腳本的用戶,以及所執行的腳本
$ansible-navigator run newuser.yml -m stdout --syntax-check
Variable & Fact Playbook variable $vim newuser.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 --- - name: useradd hosts: bind_server vars: user1: chiawei uid1: 5566 vars_files: - userlist.yml tasks: - name: adduser "{{user1}} " ansible.builtin.user: name: "{{user1}} " uid: "{{uid1}} " state: present - name: adduser "{{ user2 }} " ansible.builtin.user: name: "{{ user2 }} " uid: "{{uid2}} " ...
$vim userlist.yml
Host & group variable 1 2 3 4 5 6 7 8 9 10 [bind_server] servera.lab.example.com ip4.addr=172.25.250.11 # Host variable serverb.lab.example.com ip4.addr=172.25.250.12 [bind_server:vars] # group variable install_sodtware = bind-chroot service_name = named-chroot [unbound_server] servverc.lab.example.com
$mkdir group_vars host_vars
1 2 3 4 5 6 7 8 $mkdir group_vars $mkdir host_vars$cd group_vars$vim bind_server$cd ..$cd host_vars$vim servera.lab.example.com$vim serverb.lab.example.com
1 2 install_software = bind-chroot service_name = named-chroot
$vim servera.lab.example.com
1 ipv4_addr = 172.25.250.11
$vim serverb.lab.example.com
1 ipv4_addr = 172.25.250.12
Register
Vault Task control $vim user_add.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 - name: User Management hosts: serverd.lab.example.com vars: user_lists: - name: hcyang user_id: 1236 - name: jjli user_id: 1235 tasks: - name: adduser {{ item.name }} ansible.builtin.user: name: "{{ item.name }} " uid: "{{ item.user_id }} " state: present loop: "{{ user_lists }} " register: useradd_result - name: print results ansible.builtin.debug: msg: | An user is add with name {{ item.name }} loop: "{{ useradd_result. results }} "
期末考整理 DNS Http varnish database
DNS
HTTP_server
Https cerify ~1:10:00
Varnish and haproxy 1:10:00 ~
Database