User Tools

Site Tools


сервис_ansible

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
сервис_ansible [2025/05/24 06:22]
val [Пример 5]
сервис_ansible [2025/09/17 06:45] (current)
val [Роль OpenVPN сервера]
Line 11: Line 11:
   * [[https://​www.cisco.com/​c/​dam/​m/​ru_ru/​training-events/​2019/​cisco-connect/​pdf/​introduction_automation_with_ansible_idrey.pdf|Введение в автоматизацию с помощью Ansible (Cisco)]]   * [[https://​www.cisco.com/​c/​dam/​m/​ru_ru/​training-events/​2019/​cisco-connect/​pdf/​introduction_automation_with_ansible_idrey.pdf|Введение в автоматизацию с помощью Ansible (Cisco)]]
   * [[https://​nwmichl.net/​2020/​02/​24/​first-simple-ansible-playbooks/​|First simple Ansible playbooks Cisco IOS]]   * [[https://​nwmichl.net/​2020/​02/​24/​first-simple-ansible-playbooks/​|First simple Ansible playbooks Cisco IOS]]
 +
 +  * [[https://​r4ven.me/​it-razdel/​instrukcii/​ansible-cmdb-strukturizacziya-i-vizualizacziya-ansible-facts/​|ansible-cmdb — программа на Python, которая структуризирует собранные Ansible facts и визуализирует их с помощью HTML с красивым форматированием]]
  
  
Line 344: Line 346:
  
 server# ansible-playbook inst_http.yml -i gate, server# ansible-playbook inst_http.yml -i gate,
-</​code><​code>​+</​code>​ 
 + 
 +==== Asterisk IAX конфигурация ==== 
 + 
 +<​code>​
 # cat iax.conf.j2 # cat iax.conf.j2
 </​code><​code>​ </​code><​code>​
Line 382: Line 388:
 </​code><​code>​ </​code><​code>​
 # ansible-playbook ast_iax_corps.yml --extra-vars '​{"​X":"​{{ ansible_eth0.ipv4.address.split(\"​.\"​)[3] }}","​YS":​[1,​2,​3,​4,​5,​6,​7,​8,​9,​10,​11,​12,​13]}'​ # ansible-playbook ast_iax_corps.yml --extra-vars '​{"​X":"​{{ ansible_eth0.ipv4.address.split(\"​.\"​)[3] }}","​YS":​[1,​2,​3,​4,​5,​6,​7,​8,​9,​10,​11,​12,​13]}'​
 +</​code>​
 +
 +==== Провижининг IP телефонов ====
 +<​code>​
 +~/​phone-prov#​ cat inventory.yml
 +</​code><​code>​
 +all:
 +  vars:
 +    phones:
 +      - [ '​403',​ '​tpassword403',​ '​server.corp13.un',​ '​000E08C190C2',​ '​spa'​ ]
 +      - [ '​404',​ '​tpassword404',​ '​server.corp13.un',​ '​BCC34221709A',​ '​kx-hdv'​ ]
 +</​code><​code>​
 +~/​phone-prov#​ cat kx-hdv.j2
 +</​code><​code>​
 +# Panasonic SIP Phone Standard Format File #
 +
 +## SIP Settings
 +PHONE_NUMBER_1="​{{ pn }}"
 +SIP_AUTHID_1="​{{ pn }}"
 +SIP_PASS_1="​{{ secret }}"
 +SIP_PRXY_ADDR_1="​{{ sipproxy }}"
 +SIP_RGSTR_ADDR_1="​{{ sipproxy }}"
 +DIAL_PLAN_1="​*xx|[1-4]xx|0xxxxx|8xxxxxxxxxx"​
 +</​code><​code>​
 +~/​phone-prov#​ cat spa.j2
 +</​code><​code>​
 +<​flat-profile>​
 +  <​Proxy_1_>​{{ sipproxy }}</​Proxy_1_>​
 +  <​User_ID_1_>​{{ pn }}</​User_ID_1_>​
 +  <​Password_1_>​{{ secret }}</​Password_1_>​
 +  <​Dial_Plan_1_>​( xxx | 8xxxxxxxxxx | 0xxxxx | *xx )</​Dial_Plan_1_>​
 +</​flat-profile>​
 +</​code><​code>​
 +~/​phone-prov#​ cat phone-prov.yml
 +</​code><​code>​
 +- hosts: localhost
 +  tasks:
 +    - name: debug
 +      debug:
 +        msg: "{{ item.0 }} ... {{ item.4 }}"
 +      loop: "{{ phones }}"
 +    - name: Create phone conf
 +      template:
 +        src: "{{ model }}.j2"
 +        dest: "/​var/​www/​html/​{{ model }}-{{ mac }}.cfg"​
 +      vars:
 +        pn: "{{ item.0 }}"
 +        secret: "{{ item.1 }}"
 +        sipproxy: "{{ item.2 }}"
 +        mac: "{{ item.3 }}"
 +        model: "{{ item.4 }}"
 +      loop: "{{ phones }}"
 +</​code><​code>​
 +~/​phone-prov#​ ansible-playbook phone-prov.yml -i inventory.yml
 </​code>​ </​code>​
 ===== Использование handlers ===== ===== Использование handlers =====
Line 677: Line 737:
   * [[Сервисы Gateway и routing#​Управление таблицей маршрутизации]]   * [[Сервисы Gateway и routing#​Управление таблицей маршрутизации]]
  
 +==== ansible-vault ====
 +<​code>​
 +$ ansible-vault encrypt_string --vault-id @prompt strongpassword
 +</​code><​code>​
 +New vault password (default): 12345678
 +...
 +</​code><​code>​
 +Encryption successful
 +!vault |
 +          $ANSIBLE_VAULT;​1.1;​AES256
 +...
 +          6234
 +</​code><​code>​
 +~/openvpn1# cp inventory.yaml inventory2.yaml
 +
 +~/openvpn1# cat inventory2.yaml
 +</​code><​code>​
 +...
 +    ansible_ssh_pass:​ !vault |
 +          $ANSIBLE_VAULT;​1.1;​AES256
 +...
 +          6234
 +    ansible_sudo_pass:​ !vault |
 +          $ANSIBLE_VAULT;​1.1;​AES256
 +...
 +          6234
 +...
 +</​code><​code>​
 +~/​openvpn1# ​ ANS_V_SEC=12345678
 +
 +~/openvpn1# echo $ANS_V_SEC | ansible-playbook openvpn1.yaml -i inventory2.yaml -e "​variable_host=test_nodes"​ --vault-password-file=/​bin/​cat
 +</​code>​
 ==== Фрагмент роли с условиями и отладкой ==== ==== Фрагмент роли с условиями и отладкой ====
  
сервис_ansible.1748056964.txt.gz · Last modified: 2025/05/24 06:22 by val