Cách cài đặt Ansible AWX với Docker trên CentOS 7

theanh

Administrator
Nhân viên
Ansible AWX là phiên bản mã nguồn mở của ansible tower. AWX cung cấp giao diện người dùng dựa trên web, REST API và công cụ tác vụ được xây dựng trên Ansible. Đây là dự án thượng nguồn cho Tower, một sản phẩm thương mại phái sinh của AWX.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt và cấu hình AWX bằng Docker.

Tôi sẽ sử dụng 3 máy chủ với cài đặt centos 7 tối thiểu và SELinux ở chế độ cho phép.
  • 192.168.1.25 AWX Server
  • 192.168.1.21 client1
  • 192.168.1.22 client2

Yêu cầu hệ thống cho AWX Server​

  • Ít nhất 4GB bộ nhớ.
  • Ít nhất 2 lõi CPU.
  • Ít nhất 20GB dung lượng.
  • Chạy Docker, Openshift hoặc Kubernetes.
Kiểm tra cấu hình SELinux.
Mã:
sestatus
Kết quả:
Mã:
[root@awx ~]# sestatusTrạng thái SELinux: đã bậtSELinuxfs mount: /sys/fs/selinuxThư mục gốc SELinux: /etc/selinuxTên chính sách đã tải: được nhắm mục tiêuChế độ hiện tại: cho phépChế độ từ tệp cấu hình: cho phépTrạng thái MLS của chính sách: đã bậtTrạng thái deny_unknown của chính sách: được phépPhiên bản chính sách hạt nhân tối đa: 28[root@awx ~]#
Tắt firewalld.
Mã:
[root@awx [installer]# systemctl stop firewalld[root@awx installer]# systemctl disable firewalldĐã xóa liên kết tượng trưng /etc/systemd/system/multi-user.target.wants/firewalld.service.Đã xóa liên kết tượng trưng /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.[root@awx installer]#
Thêm các mục nhập máy chủ trong /etc/hosts
Mã:
[root@awx ~]# cat /etc/hosts192.168.1.25 awx.sunil.cc awx192.168.1.21 client1.sunil.cc client1192.168.1.22 client2.sunil.cc client2[root@awx ~]#
Bật kho lưu trữ epel.
Mã:
[root@awx ~]# yum install -y epel-release
Cài đặt các gói.
Mã:
[root@awx ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 ansible git python-devel python-pip python-docker-py vim-enhanced
Cấu hình kho lưu trữ ổn định docker ce.
Mã:
[root@awx ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Cài đặt docker.
Mã:
[root@awx ~]# yum install docker-ce -y
Khởi động dịch vụ docker.
Mã:
[root@awx ~]# systemctl start docker
Kích hoạt dịch vụ docker.
Mã:
[root@awx ~]# systemctl enable docker
Sao chép kho lưu trữ AWX.
Mã:
[root@awx ~]# git clone https://github.com/ansible/awx.git[root@awx ~]# cd awx/[root@awx awx]# git clone https://github.com/ansible/awx-logos.git[root@awx awx]# pwd/root/awx[root@awx awx]#
Đi vào thư mục trình cài đặt trong /root/awx.
Mã:
[root@awx awx]# cd Installer/
Chỉnh sửa các tham số sau trong kho.
Mã:
[root@awx awx]# vim Inventorypostgres_data_dir=/var/lib/pgdockerawx_official=trueawx_alternate_dns_servers="4.2.2.1,4.2.2.2"project_data_dir=/var/lib/awx/projects
Cấu hình của bạn sẽ giống như thế này.
Mã:
[root@awxinstaller]# cat Inventory |grep -v "#"localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"[tất cả:vars]dockerhub_base=ansibledockerhub_version=mới nhấtrabbitmq_version=3.6.14awx_secret_key=awxbí mậtpostgres_data_dir=/var/lib/pgdockermáy chủ_port=80docker_compose_dir=/var/lib/awxpg_username=awxpg_password=awxpasspg_database=awxpg_port=5432awx_official=trueawx_alternate_dns_servers="4.2.2.1,4.2.2.2"project_data_dir=/var/lib/awx/projects[root@awxinstaller]#
Hiện đang triển khai AWX qua Docker.
Mã:
[root@awx installer]# ansible-playbook -i inventory install.yml -vv
Quá trình này sẽ mất một lúc tùy thuộc vào cấu hình của máy chủ.

Để kiểm tra việc triển khai ansible play cho AWX, hãy chạy lệnh bên dưới.
Mã:
[root@awx installer]# docker container lsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES318c7c95dcbb ansible/awx_task:latest "/tini -- /bin/sh -c." 12 phút trước Đã hoạt động 12 phút 8052/tcp awx_task642c2f272e31 ansible/awx_web:latest "/tini -- /bin/sh -c." 12 phút trước Đã lên 12 phút 0.0.0.0:80->8052/tcp awx_web641b42ab536f memcached:alpine "docker-entrypoint.s." 18 phút trước Đã lên 18 phút 11211/tcp memcachedb333012d90ac rabbitmq:3 "docker-entrypoint.s." 19 phút trước Đã lên 19 phút 4369/tcp, 5671-5672/tcp, 25672/tcp rabbitmqada52935513a postgres:9.6 "docker-entrypoint.s." 19 phút trước Đã lên 19 phút 5432/tcp postgres[root@awx installer]#
AWX đã sẵn sàng và có thể truy cập từ trình duyệt.



tên người dùng là "admin" và mật khẩu là "password".

Cấu hình đăng nhập không cần mật khẩu từ máy chủ AWX​

Tạo người dùng trên cả 3 máy chủ. Thực hiện theo các bước dưới đây trên cả 3 máy chủ.
Mã:
[root@awx ~]# useradd ansible[root@client1 ~]# useradd ansible[root@clien2 ~]# useradd ansible
Tạo khóa ssh:
Mã:
[root@awx ~]# su - ansible[ansible@awx ~]$ ssh-keygenTạo cặp khóa rsa công khai/riêng tư.Nhập tệp để lưu khóa (/home/ansible/.ssh/id_rsa):Đã tạo thư mục '/home/ansible/.ssh'.Nhập mật khẩu (trống nếu không có mật khẩu):Nhập lại mật khẩu tương tự:Thông tin nhận dạng của bạn đã được lưu trong /home/ansible/.ssh/id_rsa.Khóa công khai của bạn đã được lưu trong /home/ansible/.ssh/id_rsa.pub.Dấu vân tay khóa là:SHA256:j30gyTVQxcWIocdKMbVieZvfJzGkCjXhjtc5qu+fE8o [emailprotected]Hình ảnh randomart của khóa là:+---[RSA 2048]----+| +o==.+. || O.oo . || * @ . || + @ * + || S * = o || B =.o o || ..=.o.o .|| .E... o || .oo.o. |+----[SHA256]-----+[ansible@awx ~]$
Thêm mục sudoers trên cả 3 máy chủ làm mục cuối cùng vào tệp.
Mã:
[root@awx ~]# visudoansible ALL=(ALL) NOPASSWD: ALL
Sao chép nội dung của id_rsa.pub vào authorized_keys trên cả 3 máy chủ.
Mã:
[ansible@awx .ssh]$ cat id_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4QmuzjVnGUnT1o6xGXD3DCDPUMiTf0xUkOU4kYrkpxHYZ1nWG1MBNGWChyWobnTKYDh4c80+ftSyPHAdeV6KOwADou6MXvMXHMK3EDe4jn+R0ZArQTEF2qKSBgve23wQu5IoqdWjvBoIEGqxw3LkYbdGxZ5 dqKlP5ePkRKal4TncV+tlhueDaKz8QfvXgz+y2jc3HMWAH6a7UYsDKutDttmDDVUwfMcvoS9j2VYOUHkTCenx/2Y3296U LmWCREW9e6fTXLmOowIBDAar01CThmAzYCnBDNAFOsolh9dL1CKwLCvOyK1UBgJlfrzdGI/+fS7aFiaqhXpt6hI4xndJf [email được bảo vệ][ansible@awx .ssh]$ pwd/home/ansible/.ssh[ansible@awx ~]$ cat .ssh/authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4QmuzjVnGUnT1o6xGXD3DCDPUMiTf0xUkOU4kYrkpxHYZ1nWG1MBNGWChyWobnTKYDh4c80+ftSyPHAdeV6KOwADou6MXvMXHMK3EDe4jn+R0ZArQTEF2qKSBgve23wQu5IoqdWjvBoIEGqxw3LkYbdGxZ5 dqKlP5ePkRKal4TncV+tlhueDaKz8QfvXgz+y2jc3HMWAH6a7UYsDKutDttmDDVUwfMcvoS9j2VYOUHkTCenx/2Y3296ULmWCREW9e6fTXLmOowIBDAar01CThmAzYCnBDNAFOsolh9dL1CKwLCvOyK1UBgJlfrzdGI/+fS7aFiaqhXpt6hI4xndJf [emailprotected][ansible@awx ~]$chmod 600 .ssh/authorized_keys
client1
Mã:
[root@client1 ~]# su - ansible[ansible@client1 ~]$ ls[ansible@client1 ~]$ mkdir .ssh[ansible@client1 ~]$ cat .ssh/authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4QmuzjVnGUnT1o6xGXD3DCDPUMiTf0xUkOU4kYrkpxHYZ1nWG1MBNGWChyWobnTKYDh4c80+ftSyPHAdeV6KOwADou6MXvMXHMK3EDe4jn+R0ZArQTEF2qKSBgve23wQu5IoqdWjvBoIEGqxw3LkYbdGxZ5 dqKlP5ePkRKal4TncV+tlhueDaKz8QfvXgz+y2jc3HMWAH6a7UYsDKutDttmDDVUwfMcvoS9j2VYOUHkTCenx/2Y3296ULmWCREW9e6fTXLmOowIBDAar01CThmAzYCnBDNAFOsolh9dL1CKwLCvOyK1UBgJlfrzdGI/+fS7aFiaqhXpt6hI4xndJf [emailprotected][ansible@client1 ~]$ chmod 700 .ssh[ansible@client1 ~]$ chmod 600 .ssh/authorized_keys
client2
Mã:
[root@client2 ~]# su - ansible[ansible@client2 ~]$ ls[ansible@client2 ~]$ mkdir .ssh[ansible@client2 ~]$ cat .ssh/authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4QmuzjVnGUnT1o6xGXD3DCDPUMiTf0xUkOU4kYrkpxHYZ1nWG1MBNGWChyWobnTKYDh4c80+ftSyPHAdeV6KOwADou6MXvMXHMK3EDe4jn+R0ZArQTEF2qKSBgve23wQu5IoqdWjvBoIEGqxw3LkYbdGxZ5 dqKlP5ePkRKal4TncV+tlhueDaKz8QfvXgz+y2jc3HMWAH6a7UYsDKutDttmDDVUwfMcvoS9j2VYOUHkTCenx/2Y3296ULmWCREW9e6fTXLmOowIBDAar01CThmAzYCnBDNAFOsolh9dL1CKwLCvOyK1UBgJlfrzdGI/+fS7aFiaqhXpt6hI4xndJf [emailprotected][ansible@client2 ~]$ chmod 700 .ssh[ansible@client2 ~]$ chmod 600 .ssh/authorized_keys
Xác thực đăng nhập không cần khóa:
Mã:
[ansible@awx .ssh]$ ssh client1Không thể thiết lập tính xác thực của máy chủ 'client1 (192.168.1.21)'.Dấu vân tay khóa ECDSA là SHA256:TUQNYdF4nxofGwFO7/z+Y5dUETVEI0xPQL4n1cUcoCI.Dấu vân tay khóa ECDSA là MD5:5d:73:1f:64:0e:03:ac:a7:7b:33:76:08:6d:09:90:26.Bạn có chắc chắn muốn tiếp tục kết nối không (có/không)? cóCảnh báo: Đã thêm vĩnh viễn 'client1,192.168.1.21' (ECDSA) vào danh sách các máy chủ đã biết.Lần đăng nhập cuối: CN 4 tháng 3 13:39:33 2018[ansible@client1 ~]$ thoátđăng xuấtKết nối đến client1 đã đóng.[ansible@awx .ssh]$[ansible@awx .ssh]$ ssh client2Không thể thiết lập tính xác thực của máy chủ 'client2 (192.168.1.22)'.Dấu vân tay khóa ECDSA là SHA256:7JoWzteeQBwzc4Q3GGN+Oa4keUPMca/jtqv7gmmEZxg.Dấu vân tay khóa ECDSA là MD5:85:77:3a:a3:07:31:d4:c1:41:ed:30:db:74:b4:ce:67.Bạn có chắc chắn muốn tiếp tục kết nối (có/không) không? cóCảnh báo: Đã thêm vĩnh viễn 'client2,192.168.1.22' (ECDSA) vào danh sách máy chủ đã biết.Lần đăng nhập cuối: CN 4 tháng 3 13:51:27 2018[ansible@client2 ~]$ exitlogoutKết nối đến client2 đã đóng.[ansible@awx .ssh]$
Bây giờ hãy nhấp vào biểu tượng này và đi đến thông tin xác thực -> thêm





Chọn một tổ chức và điền tên người dùng và mô tả.

Ở đây tên người dùng là "ansible"





Chọn 'máy' trong loại thông tin xác thực và điền thông tin chi tiết.



Lấy khóa riêng từ AWXserver.
Mã:
[ansible@awx .ssh]$ pwd/home/ansible/.ssh[ansible@awx .ssh]$ cat id_rsaid_rsa id_rsa.pub[ansible@awx .ssh]$ cat id_rsa-----BEGIN RSA PRIVATE KHÓA-----MIIEpAIBAAKCAQEAuEJrs41ZxlJ09aOsRlw9wwgz1DIk39MVJDlOJGK5KcR2GdZ1htTATRlgoclqG50ymA4eHPNPn7UsjxwHXleijsAAzrujF7zFxzCtxA3uI5/kdGQK0ExBdqikgYL3tt8ELuSKKnVo7waCBBqscNy5GG3RsWeXaipT+Xj5ESmpeE53FfrZYbng2is/EH714M/sto3NxzFgB+mu1GLAYrrQ7bZgw1VMHzHL6EvY9lWDlB5Ewnp8f9mN9velC5lgkRFvXun01y5jqMCAQwGq9NQk4ZgM2ApwQzQBTrKJYfXS9QisCwrzsitVAYCZX683RiP/n0u2hYmqoV6beoSOMZ3SXwIDAQABAoIBAQCcfiUU6S9fJfcaDTmqxHrcI yJJzZDN3GvvSRBaDNLwa2BWz3Mf4Z+1m6Ebp4IME/W9ePgQZIGyxeAjZ43Gja2Nifrlmi2JYpWjeG+MvLwN26XfSHx6rtlGmzKkoIQc98qIvSevqepGYAOa0sC0VnKKEfNvtei+jVam4hy/e9/oQWHV8c/yueLWpCx2pWOy5m7WVLdwNQSK+8pusxHLFTNCSC9wddBN80 FVxhJQ7L4D2DzcprhcfUz6Uz7Ju7v8MtSksirDnaGliWJ3NvxhntJYKvgQ30pvBr//y0lYnAB+O0jJhOpHlgD2hNSlI8sgUxmVyl+gC9Dhnq+v1uKm3CThAoGBAOx+YIGGT/ymqJ53k8Dj4keKctI4+E3p/7Tr2jEyRff177VUjITQUnrRTw1W+XSE5cszitVYbv0WUwTJ oSSrKaRaVG7iORaqcv0LkG8gnlcrcifRXSl55xMsPCw0adwtoyhrHQLbENntMl+iQw2JbE6fvldvNe2kPdL3B2T7Jw1RAoGBAMd1GvsOHLaKtTD0me+wgGnql0GIp90elE7rQ1p6VMxZkE68b+0jX9xHAt2zxocR84+LGi6uAZvBqnwmH48c7Do6/oulrJXH2OcT6S8+F /kM7PWNT0Z0J0MW/+npVoPwSihZN4/uanR47L0YYVlTRgxmakSUZnitrEz754V+YjivAoGBAM1qtC6tWHrO0/XZTbik+F5FrphVLbCXiSlAF6TV0xqfP5gUmX2faZUOi4i9vC3uZZ9L5NKNXtJseq3U6Shtl90PLPmnfAjpArozOkCcZ4y1yxE09KPbI9BugtGusSizZ1 3rNCbP22I/eprA2Vc/v5jHflB547DIEX9WXNDkqjYRAoGACD3ag40tuo04t3Ej+zd71uSOo3KWHRjqX+hwvAhaAKeiwt4ecdoIV/3HLIoFJgej3MaOqmceQeVaug6JN0ympjFR20tZOkcru0CjXgRe0Tergun34J1kEe2dXXj6zjDbn5cwKI5db7qfbaDYROyf9Fs3AOZ w5YOnnva5tlZmkJkCgYB0tuVLQSOWsqjTAgkw7tDIMOds9o8dpGJTvXxcs2qWJIDQPQWxHVSlQimh5DFBkrNDAYKKC386KaZOEKwG7G1YuGbh1+ns3piscJaBi2lPaeA1Y/QA6pCTt9Hbdzre5x0gDbKSHok+QLJkVdfQX9jamRE6W0k0pXVF6ur8N5zfxA==----- KẾT THÚC KHÓA RIÊNG RSA -----[ansible@awx .ssh]$
Khóa riêng (ví dụ).
Mã:
------BẮT ĐẦU RSA RIÊNG TƯ KHÓA-----MIIEpAIBAAKCAQEAuEJrs41ZxlJ09aOsRlw9wwgz1DIk39MVJDlOJGK5KcR2GdZ1htTATRlgoclqG50ymA4eHPNPn7UsjxwHXleijsAAzrujF7zFxzCtxA3uI5/kdGQK0ExBdqikgYL3tt8ELuSKKnVo7waCBBqscNy5GG3RsWeXaipT+Xj5ESmpeE53FfrZYbng2is/EH714M/sto3NxzFgB+mu1GLAYrrQ7bZgw1VMHzHL6EvY9lWDlB5Ewnp8f9mN9velC5lgkRFvXun01y5jqMCAQwGq9NQk4ZgM2ApwQzQBTrKJYfXS9QisCwrzsitVAYCZX683RiP/n0u2hYmqoV6beoSOMZ3SXwIDAQABAoIBAQCcfiUU6S9fJfcaDTmqxHrcI yJJzZDN3GvvSRBaDNLwa2BWz3Mf4Z+1m6Ebp4IME/W9ePgQZIGyxeAjZ43Gja2Nifrlmi2JYpWjeG+MvLwN26XfSHx6rtlGmzKkoIQc98qIvSevqepGYAOa0sC0VnKKEfNvtei+jVam4hy/e9/oQWHV8c/yueLWpCx2pWOy5m7WVLdwNQSK+8pusxHLFTNCSC9wddBN80 FVxhJQ7L4D2DzcprhcfUz6Uz7Ju7v8MtSksirDnaGliWJ3NvxhntJYKvgQ30pvBr//y0lYnAB+O0jJhOpHlgD2hNSlI8sgUxmVyl+gC9Dhnq+v1uKm3CThAoGBAOx+YIGGT/ymqJ53k8Dj4keKctI4+E3p/7Tr2jEyRff177VUjITQUnrRTw1W+XSE5cszitVYbv0WUwTJ oSSrKaRaVG7iORaqcv0LkG8gnlcrcifRXSl55xMsPCw0adwtoyhrHQLbENntMl+iQw2JbE6fvldvNe2kPdL3B2T7Jw1RAoGBAMd1GvsOHLaKtTD0me+wgGnql0GIp90elE7rQ1p6VMxZkE68b+0jX9xHAt2zxocR84+LGi6uAZvBqnwmH48c7Do6/oulrJXH2OcT6S8+F /kM7PWNT0Z0J0MW/+npVoPwSihZN4/uanR47L0YYVlTRgxmakSUZnitrEz754V+YjivAoGBAM1qtC6tWHrO0/XZTbik+F5FrphVLbCXiSlAF6TV0xqfP5gUmX2faZUOi4i9vC3uZZ9L5NKNXtJseq3U6Shtl90PLPmnfAjpArozOkCcZ4y1yxE09KPbI9BugtGusSizZ1 3rNCbP22I/eprA2Vc/v5jHflB547DIEX9WXNDkqjYRAoGACD3ag40tuo04t3Ej+zd71uSOo3KWHRjqX+hwvAhaAKeiwt4ecdoIV/3HLIoFJgej3MaOqmceQeVaug6JN0ympjFR20tZOkcru0CjXgRe0Tergun34J1kEe2dXXj6zjDbn5cwKI5db7qfbaDYROyf9Fs3AOZ w5YOnnva5tlZmkJkCgYB0tuVLQSOWsqjTAgkw7tDIMOds9o8dpGJTvXxcs2qWJIDQPQWxHVSlQimh5DFBkrNDAYKKC386KaZOEKwG7G1YuGbh1+ns3piscJaBi2lPaeA1Y/QA6pCTt9Hbdzre5x0gDbKSHOk+QLJkVdfQX9jamRE6W0k0pXVF6ur8N5zfxA==-----HẾT KHÓA RIÊNG RSA-----
Sao chép khóa riêng dưới khóa riêng ssh và nhấp vào lưu.



Nhấp vào Hàng tồn kho và nhấp vào thêm hàng tồn kho.



Điền thông tin chi tiết cho phù hợp.



Nhấp vào máy chủ -> thêm máy chủ.



Thêm các chi tiết bên dưới:



Thêm các chi tiết bên dưới cho client2.



Kiểm tra kết nối thông qua AWX.

Chọn cả hai máy chủ và nhấp vào lệnh chạy.

Chọn ping và các chi tiết khác và nhấp vào Khởi chạy.









Vậy là hết hướng dẫn này. Tôi sẽ chỉ cho bạn trong hướng dẫn tiếp theo cách cài đặt AWX thông qua rpm và cách chạy playbook, thực hiện lệnh gọi API trong các hướng dẫn tiếp theo.

Tài liệu tham khảo​

 
Back
Bên trên