Hướng dẫn ansible_python_interpreter - ansible_python_interpreter

Tôi muốn instal InfluxDB và cấu hình với Ansible. Sao chép tệp và cấu hình InfluxDB là OK nhưng việc tạo cơ sở dữ liệu và phần tạo người dùng là lỗi "ansible_python_interpreter".

Tôi đã tìm kiếm lỗi này và thử một cái gì đó nhưng tôi không thể giải quyết vấn đề này với chính mình

Đây là tệp máy chủ ansible của tôi

[loadbalancer]
lb      ansible_host=192.168.255.134

[loadbalancer:vars]
ansible_python_interpreter="/usr/bin/python3"
#ansible_python_interpreter="/usr/bin/env python"
#ansible_python_interpreter="/usr/libexec/platform-python"

Đây là tệp yaml của tôi

# influxdb install and configuration

---
  - hosts: lb
    become: true
    tasks:
      - name: Copy Repo Files
        copy:
          src: ./files/influxdb.j2
          dest: /etc/yum.repos.d/influxdb.repo
          remote_src: no
      - name: Install Influxdb
        yum:
          name: influxdb
          state: latest
        notify:
             influxdb_ok
      - name: Crete Database
        community.general.influxdb_database:
          hostname: 192.168.255.134
          database_name: deneme
      - name: Create User
        community.general.influxdb_user:
          user_name: deneme_user
          user_password: deneme123

    handlers:
      - name: Start Influx Service
        service:
          name: influxdb
          state: started
          enabled: yes
        listen: influxdb_ok

Tôi đã cố gắng cài đặt Python3 Remote VM (LB). Tôi đã cố gắng thay đổi tham số thông dịch. Tôi đã cố gắng cài đặt mô -đun yêu cầu với PIP3.

[root@centos8 influx]# ansible-playbook influxdb.yaml -K
BECOME password:

PLAY [lb] ***********************************************************************************************************

TASK [Gathering Facts] **********************************************************************************************
ok: [lb]

TASK [Copy Repo Files] **********************************************************************************************
ok: [lb]

TASK [Install Influxdb] *********************************************************************************************
ok: [lb]

TASK [Crete Database] ***********************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ModuleNotFoundError: No module named 'requests'
fatal: [lb]: FAILED! => {"changed": false, "msg": "Failed to import the required Python library (requests) on loadbalancer.servicepark.local's Python /usr/bin/python3. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter"}

PLAY RECAP **********************************************************************************************************
lb                         : ok=3    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0

Tôi đã cố gắng cài đặt mô -đun yêu cầu và hiện là phiên bản ansible

Ngay bây giờ các phiên bản máy ansible của tôi

[root@centos8 influx]# python3 --version
Python 3.6.8
[root@centos8 influx]# ansible --version
ansible 2.10.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Apr 16 2020, 01:36:27) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]

Các phiên bản của LB VM

[root@loadbalancer ~]# influx --version
InfluxDB shell version: 1.8.2
[root@loadbalancer ~]# python3 --version
Python 3.6.8

Sử dụng một cuốn sách từ một bộ sưu tập

Ghi chú

Làm cho nguồn mở bao gồm nhiều hơn

Red Hat cam kết thay thế ngôn ngữ có vấn đề trong mã, tài liệu và thuộc tính web của chúng tôi. Chúng tôi đang bắt đầu với bốn thuật ngữ sau: chủ, nô lệ, danh sách đen và danh sách trắng. Chúng tôi yêu cầu bạn mở một vấn đề hoặc yêu cầu kéo nếu bạn nhận được một thuật ngữ mà chúng tôi đã bỏ lỡ. Để biết thêm chi tiết, hãy xem tin nhắn CTO Chris Wright của chúng tôi.

Viết nhiệm vụ, vở kịch và Playbooks

  • Tôi viết cuốn sách đầu tiên của mình. Tôi nên biết gì trước khi bắt đầu?know before I begin?

  • Tôi có một trường hợp sử dụng cụ thể cho một nhiệm vụ hoặc chơi:

    • Thực hiện các nhiệm vụ với các đặc quyền cao hoặc là một người dùng khác vớibecome

    • Lặp lại một tác vụ một lần cho mỗi mục trong danh sách với các vòng lặploops

    • Thực hiện các nhiệm vụ trên một máy khác với phái đoàndelegation

    • Chỉ chạy các nhiệm vụ khi các điều kiện nhất định áp dụng với điều kiện và đánh giá các điều kiện với các thử nghiệmconditionals and evaluating conditions with tests

    • Nhóm một bộ các tác vụ cùng với các khốiblocks

    • Chỉ chạy các nhiệm vụ khi một cái gì đó đã thay đổi với người xử lýhandlers

    • Thay đổi cách xử lý các lỗi xử lý ansiblehandles failures

    • Đặt giá trị môi trường từ xaenvironment values

  • Tôi muốn tận dụng sức mạnh của các tạo tác ansible có thể sử dụng lại. Làm cách nào để tạo các tệp và vai trò có thể sử dụng lại?files and roles?

  • Tôi cần kết hợp một tập tin hoặc playbook bên trong một tập tin khác. Sự khác biệt giữa bao gồm và nhập khẩu là gì?including and importing?

  • Tôi muốn chạy các phần được chọn của playbook của mình. Làm cách nào để thêm và sử dụng thẻ?tags?

Làm việc với hàng tồn kho

  • Tôi có một danh sách các máy chủ và thiết bị tôi muốn tự động hóa. Làm cách nào để tạo hàng tồn kho để theo dõi chúng?inventory to track them?

  • Tôi sử dụng dịch vụ đám mây và liên tục có máy chủ và thiết bị bắt đầu và dừng. Làm cách nào để theo dõi chúng bằng cách sử dụng hàng tồn kho động?dynamic inventory?

  • Tôi muốn tự động hóa các bộ phụ cụ thể của hàng tồn kho của mình. Làm cách nào để sử dụng các mẫu?patterns?

Tương tác với dữ liệu

  • Tôi muốn sử dụng một vở kịch duy nhất chống lại nhiều hệ thống với các thuộc tính khác nhau. Làm cách nào để sử dụng các biến để xử lý sự khác biệt?variables to handle the differences?

  • Tôi muốn truy xuất dữ liệu về các hệ thống của tôi. Làm cách nào để truy cập sự thật ansible?Ansible facts?

  • Tôi cần truy cập dữ liệu nhạy cảm như mật khẩu với Ansible. Làm thế nào tôi có thể bảo vệ dữ liệu đó bằng ANSible Vault?Ansible vault?

  • Tôi muốn thay đổi dữ liệu tôi có, vì vậy tôi có thể sử dụng nó trong một nhiệm vụ. Làm cách nào để sử dụng các bộ lọc để chuyển đổi dữ liệu của tôi?filters to transform my data?

  • Tôi cần lấy dữ liệu từ một kho dữ liệu bên ngoài. Làm cách nào để sử dụng tra cứu để truy cập cơ sở dữ liệu và API?lookups to access databases and APIs?

  • Tôi muốn yêu cầu người dùng playbook cung cấp dữ liệu. Làm thế nào để tôi nhận được đầu vào của người dùng với lời nhắc?prompts?

  • Tôi sử dụng một số mô -đun nhất định thường xuyên. Làm cách nào để hợp lý hóa hàng tồn kho và playbook của mình bằng cách đặt các giá trị mặc định cho các tham số mô -đun?setting default values for module parameters?

Thực hiện playbooks

Khi playbook của bạn đã sẵn sàng để chạy, bạn có thể cần sử dụng các chủ đề này:

  • Thực hiện các vở kịch Dry Dry Run ”với Chế độ kiểm tra và Diffcheck mode and diff

  • Chạy sách chơi trong khi khắc phục sự cố khi bắt đầu và bướcstart and step

  • Sửa các nhiệm vụ trong quá trình thực hiện với trình gỡ lỗi ansibleAnsible debugger

  • Kiểm soát cách Playbook của tôi thực hiện với các chiến lược và hơn thế nữastrategies and more

  • Chạy Nhiệm vụ, Chơi và Playbooks không đồng bộasynchronously

Các tính năng nâng cao và tham chiếu

  • Sử dụng cú pháp nâng caoadvanced syntax

  • Thao tác dữ liệu phức tạpcomplex data

  • Sử dụng pluginplugins

  • Sử dụng từ khóa playbookplaybook keywords

  • Sử dụng các công cụ dòng lệnhcommand-line tools

  • Từ chối các mô -đun cụ thểspecific modules

  • Bảo trì mô -đunmaintenance

Mục lục 

Dưới đây là danh sách đầy đủ các tài nguyên trong Hướng dẫn sử dụng Ansible:

  • Khái niệm Ansible
    • Kiểm soát nút
    • Các nút được quản lý
    • Hàng tồn kho
    • Sách chơi
    • Mô -đun
    • bổ sung
    • Bộ sưu tập
    • AAP
  • Giới thiệu về các lệnh ad hoc
    • Tại sao sử dụng các lệnh ad hoc?
    • Sử dụng các trường hợp cho các nhiệm vụ ad hoc
  • Ansible Cli Cheatsheet
    • ansible-playbook
  • Giới thiệu cho Playbooks
    • Cú pháp playbook
    • Thực thi playbook
    • Ansible-Pull
    • Xác minh playbooks
  • Làm việc với Playbooks
    • Templating (Jinja2)
    • Các tính năng playbook nâng cao
    • Ví dụ về Playbook: nâng cấp giao hàng và lăn liên tục
  • Các mẹo và thủ thuật
    • Mẹo chung
    • Mẹo playbook
    • Lời khuyên kiểm kê
    • Thủ thuật thực thi
  • Hiểu về sự leo thang đặc quyền: trở thành
    • Sử dụng trở thành
    • Rủi ro và những hạn chế của trở thành
    • Trở thành và tự động hóa mạng lưới
    • Trở thành và cửa sổ
  • Vòng lặp
    • So sánh loopwith_*
    • Vòng lặp tiêu chuẩn
    • Đăng ký các biến có vòng lặp
    • Vòng lặp phức tạp
    • Đảm bảo đầu vào danh sách cho loop: Sử dụng query thay vì lookup
    • Thêm điều khiển vào các vòng lặp
    • Di chuyển từ with_x sang vòng lặp
  • Kiểm soát nơi các nhiệm vụ chạy: Phái đoàn và hành động địa phương
    • Các nhiệm vụ không thể được ủy thác
    • Nhiệm vụ ủy thác
    • Đoàn và thực thi song song
    • Ủy thác ủy thác
    • Playbooks địa phương
  • Điều kiện
    • Các điều kiện cơ bản với
      # influxdb install and configuration
      
      ---
        - hosts: lb
          become: true
          tasks:
            - name: Copy Repo Files
              copy:
                src: ./files/influxdb.j2
                dest: /etc/yum.repos.d/influxdb.repo
                remote_src: no
            - name: Install Influxdb
              yum:
                name: influxdb
                state: latest
              notify:
                   influxdb_ok
            - name: Crete Database
              community.general.influxdb_database:
                hostname: 192.168.255.134
                database_name: deneme
            - name: Create User
              community.general.influxdb_user:
                user_name: deneme_user
                user_password: deneme123
      
          handlers:
            - name: Start Influx Service
              service:
                name: influxdb
                state: started
                enabled: yes
              listen: influxdb_ok
      
      0
    • Sự thật thường được sử dụng
  • Xét nghiệm
    • Cú pháp kiểm tra
    • Chuỗi thử nghiệm
    • Hầm
    • Kiểm tra sự thật
    • So sánh các phiên bản
    • Đặt các bài kiểm tra lý thuyết
    • Kiểm tra nếu một danh sách chứa một giá trị
    • Kiểm tra xem giá trị danh sách có đúng không
    • Đường dẫn thử nghiệm
    • Các định dạng kích thước thử nghiệm
    • Kiểm tra kết quả nhiệm vụ
    • Loại bài kiểm tra
  • Khối
    • Nhóm các nhiệm vụ với các khối
    • Xử lý lỗi với các khối
  • Trình xử lý: Chạy hoạt động khi thay đổi
    • Ví dụ xử lý
    • Thông báo xử lý
    • Đặt tên người xử lý
    • Kiểm soát khi người xử lý chạy
    • Sử dụng các biến với trình xử lý
    • Người xử lý trong vai trò
    • Bao gồm và nhập khẩu trong trình xử lý
    • Giới hạn
  • Xử lý lỗi trong Playbooks
    • Bỏ qua các lệnh không thành công
    • Bỏ qua các lỗi máy chủ không thể truy cập
    • Đặt lại máy chủ không thể truy cập
    • Người xử lý và thất bại
    • Xác định thất bại
    • Xác định "đã thay đổi"
    • Đảm bảo thành công cho chỉ huy và vỏ bọc
    • Hủy bỏ một vở kịch trên tất cả các máy chủ
    • Kiểm soát lỗi trong các khối
  • Đặt môi trường từ xa
    • Đặt môi trường từ xa trong một nhiệm vụ
  • Làm việc với người quản lý phiên bản cụ thể ngôn ngữ
  • Tái sử dụng các tạo tác ansible
    • Tạo các tệp và vai trò có thể sử dụng lại
    • Tái sử dụng các vở kịch
    • Khi nào biến một vở kịch thành một vai trò
    • Tái sử dụng các tệp và vai trò
    • Tái sử dụng các nhiệm vụ như người xử lý
  • Vai trò
    • Cấu trúc thư mục vai trò
    • Lưu trữ và tìm kiếm vai trò
    • Sử dụng vai trò
    • Vai trò xác thực đối số
    • Chạy một vai trò nhiều lần trong một lần chơi
    • Sử dụng phụ thuộc vai trò
    • Nhúng các mô -đun và plugin vào vai trò
    • Chia sẻ vai trò: Galaxy Ansible
  • Bao gồm và nhập khẩu
  • Tags
    • Thêm thẻ với từ khóa thẻ
    • Thẻ đặc biệt: Luôn luôn và không bao giờ
    • Chọn hoặc bỏ qua thẻ khi bạn chạy một vở kịch
  • Cách xây dựng hàng tồn kho của bạn
    • Khái niệm cơ bản về hàng tồn kho: Định dạng, máy chủ và nhóm
    • Thêm các biến vào kho
    • Gán một biến cho một máy: Các biến máy chủ
    • Gán một biến cho nhiều máy: Biến nhóm
    • Tổ chức các biến chủ và nhóm
    • Cách các biến được hợp nhất
    • Sử dụng nhiều nguồn hàng tồn kho
    • Kết nối với máy chủ: Tham số hàng tồn kho hành vi
    • Ví dụ thiết lập hàng tồn kho
  • Làm việc với hàng tồn kho động
    • Ví dụ tập lệnh kiểm kê: cobbler
    • Ví dụ tập lệnh kiểm kê: OpenStack
    • Các kịch bản hàng tồn kho khác
    • Sử dụng thư mục hàng tồn kho và nhiều nguồn hàng tồn kho
    • Các nhóm tĩnh của các nhóm động
  • Các mẫu: Nhắm mục tiêu máy chủ và nhóm
    • Sử dụng các mẫu
    • Các mẫu phổ biến
    • Hạn chế của các mẫu
    • Thứ tự xử lý mẫu
    • Tùy chọn mẫu nâng cao
    • Các mẫu và lệnh ad-hoc
    • Các mẫu và cờ ANSIBLE-PLAYBOOK
  • Phương pháp kết nối và chi tiết
    • ControlPersist và Paramiko
    • Đặt người dùng từ xa
    • Thiết lập các phím SSH
    • Chạy chống lại localhost
    • Quản lý kiểm tra khóa máy chủ
    • Các phương thức kết nối khác
  • Làm việc với các công cụ dòng lệnh
    • Ansible
    • ansible-config
    • ansible-console
    • ansible-doc
    • ansible-galaxy
    • ansible-inventory
    • ansible-playbook
    • ansible-pull
    • ansible-vault
  • Sử dụng các biến
    • Tạo tên biến hợp lệ
    • Biến đơn giản
    • Khi nào nên trích dẫn các biến (một gotcha yaml)
    • Danh sách các biến
    • Biến từ điển
    • Đăng ký các biến
    • Tham khảo các biến lồng nhau
    • Biến đổi các biến với bộ lọc jinja2
    • Nơi đặt các biến
    • Ưu tiên biến: Tôi nên đặt một biến ở đâu?
    • Sử dụng cú pháp biến nâng cao
  • Khám phá các biến: Sự kiện và biến ma thuật
    • Sự thật ansible
    • Thông tin về Ansible: Biến phép thuật
  • Mã hóa nội dung với kho chứa ansible
    • Quản lý mật khẩu Vault
    • Mã hóa nội dung với kho chứa ansible
    • Quản lý mật khẩu Vault
    • Sử dụng các biến và tệp được mã hóa
    • Định cấu hình mặc định để sử dụng nội dung được mã hóa
    • Khi nào các tệp được mã hóa được hiển thị?
  • Định dạng các tệp được mã hóa bằng Vault Ansible
    • Sử dụng các bộ lọc để thao tác dữ liệu
    • Xử lý các biến không xác định
    • Xác định các giá trị khác nhau cho true/false/null (ternary)
    • Quản lý các loại dữ liệu
    • Dữ liệu định dạng: YAML và JSON
    • Kết hợp và chọn dữ liệu
    • Ngẫu nhiên dữ liệu
    • Quản lý các biến danh sách
    • Chọn từ các bộ hoặc danh sách (lý thuyết đặt)
    • Tính toán số (Toán)
    • Quản lý tương tác mạng
    • Chuỗi băm và mã hóa và mật khẩu
    • Thao tác văn bản
    • Thao tác chuỗi
    • Quản lý UUIDS
    • Xử lý ngày và thời gian
  • Nhận tên tài nguyên Kubernetes
    • Tra cứu
  • Sử dụng tra cứu theo các biến
    • Đầu vào tương tác: Lời nhắc
    • Giá trị băm do
      # influxdb install and configuration
      
      ---
        - hosts: lb
          become: true
          tasks:
            - name: Copy Repo Files
              copy:
                src: ./files/influxdb.j2
                dest: /etc/yum.repos.d/influxdb.repo
                remote_src: no
            - name: Install Influxdb
              yum:
                name: influxdb
                state: latest
              notify:
                   influxdb_ok
            - name: Crete Database
              community.general.influxdb_database:
                hostname: 192.168.255.134
                database_name: deneme
            - name: Create User
              community.general.influxdb_user:
                user_name: deneme_user
                user_password: deneme123
      
          handlers:
            - name: Start Influx Service
              service:
                name: influxdb
                state: started
                enabled: yes
              listen: influxdb_ok
      
      1 cung cấp
  • Cho phép các ký tự đặc biệt trong các giá trị
    # influxdb install and configuration
    
    ---
      - hosts: lb
        become: true
        tasks:
          - name: Copy Repo Files
            copy:
              src: ./files/influxdb.j2
              dest: /etc/yum.repos.d/influxdb.repo
              remote_src: no
          - name: Install Influxdb
            yum:
              name: influxdb
              state: latest
            notify:
                 influxdb_ok
          - name: Crete Database
            community.general.influxdb_database:
              hostname: 192.168.255.134
              database_name: deneme
          - name: Create User
            community.general.influxdb_user:
              user_name: deneme_user
              user_password: deneme123
    
        handlers:
          - name: Start Influx Service
            service:
              name: influxdb
              state: started
              enabled: yes
            listen: influxdb_ok
    
    1
    • Mô -đun mặc định
  • Mô -đun Nhóm mặc định
    • Các tác vụ xác thực: Chế độ kiểm tra và chế độ Diff
    • Sử dụng chế độ kiểm tra
  • Sử dụng Chế độ Diff
    • start-at-task
    • Thực hiện các playbook để khắc phục sự cố
  • Chế độ bước
    • Nhiệm vụ gỡ lỗi
    • Cho phép trình gỡ lỗi
    • Giải quyết lỗi trong trình gỡ lỗi
    • Các lệnh gỡ lỗi có sẵn
  • Cách trình gỡ lỗi tương tác với chiến lược miễn phí
    • Kiểm soát thực thi Playbook: Chiến lược và hơn thế nữa
    • Chọn một chiến lược
    • Đặt số dĩa
  • Sử dụng từ khóa để kiểm soát thực thi
    • Những hành động không đồng bộ và bỏ phiếu
    • Nhiệm vụ ad hoc không đồng bộ
  • Nhiệm vụ Playbook không đồng bộ
    • Cú pháp nâng cao
    • Dây không an toàn hoặc thô
  • YAML neo và bí danh: Chia sẻ các giá trị biến
    • Thao tác dữ liệu
    • Vòng lặp và danh sách toàn diện
  • Biến đổi loại phức tạp
  • Từ chối các mô -đun
    • Mẫu thiết lập ansible
    • Bố cục thư mục mẫu
    • Bố cục thư mục thay thế
    • Nhóm mẫu và các biến chủ
    • Sổ tay mẫu được tổ chức theo chức năng
    • Mẫu nhiệm vụ và các tệp xử lý trong vai trò dựa trên chức năng
    • Thiết lập mẫu nào cho phép
    • Tổ chức triển khai hoặc cấu hình
  • Sử dụng các mô -đun Ansible cục bộ
    • Làm việc với các mô -đun
    • Giới thiệu về các mô -đun
    • Bảo trì và hỗ trợ mô -đun
  • Trả về giá trị
    • Làm việc với các plugin
    • Plugin hành động
    • Trở thành plugin
    • Plugin bộ đệm
    • Plugin gọi lại
    • Plugin cliconf
    • Plugin kết nối
    • Tài liệu mảnh vỡ
    • Plugin lọc
    • Plugin httpapi
    • Plugin hàng tồn kho
    • Tra cứu plugin
    • Mô -đun
    • Tiện ích mô -đun
    • Plugin NetConf
    • Plugin shell
    • Plugin chiến lược
    • Plugin đầu cuối
    • Plugin thử nghiệm
  • Plugin vars
    • Từ khóa playbook
    • Chơi
    • Vai diễn
    • Khối
  • Nhiệm vụ
    • Ansible và BSD
    • Kết nối với các nút BSD
    • BSD bootstrapping
    • Đặt trình thông dịch Python
    • Sử dụng BSD làm nút điều khiển
    • Sự thật BSD
    • Những nỗ lực và đóng góp của BSD
  • Hướng dẫn Windows
    • Thiết lập máy chủ Windows
    • Windows quản lý từ xa
    • Sử dụng Ansible và Windows
    • Cấu hình trạng thái mong muốn
    • Hiệu suất của Windows
    • Cửa sổ thường gặp câu hỏi
  • Sử dụng bộ sưu tập
    • Cài đặt bộ sưu tập
    • Tải xuống bộ sưu tập
    • Liệt kê các bộ sưu tập
    • Xác minh bộ sưu tập
    • Sử dụng các bộ sưu tập trong một vở kịch
    • Đơn giản hóa tên mô -đun với từ khóa
      # influxdb install and configuration
      
      ---
        - hosts: lb
          become: true
          tasks:
            - name: Copy Repo Files
              copy:
                src: ./files/influxdb.j2
                dest: /etc/yum.repos.d/influxdb.repo
                remote_src: no
            - name: Install Influxdb
              yum:
                name: influxdb
                state: latest
              notify:
                   influxdb_ok
            - name: Crete Database
              community.general.influxdb_database:
                hostname: 192.168.255.134
                database_name: deneme
            - name: Create User
              community.general.influxdb_user:
                user_name: deneme_user
                user_password: deneme123
      
          handlers:
            - name: Start Influx Service
              service:
                name: influxdb
                state: started
                enabled: yes
              listen: influxdb_ok
      
      3
    • Sử dụng một cuốn sách từ một bộ sưu tập