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

theanh

Administrator
Nhân viên
Trong hướng dẫn trước, tôi đã chỉ cho bạn cách triển khai Ansible AWX qua docker. Trong khi đó, tôi đã tìm thấy hai dự án xây dựng các gói rpm cho AWX. Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Ansible AWX từ các tệp RPM trên CentOS 7. Ansible AWX là phiên bản mã nguồn mở của phần mềm Ansible Tower.

Tôi sẽ sử dụng 3 máy chủ với cài đặt tối thiểu CentOS 7 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 tối thiểu 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 SELinux cấu hình.
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: 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 ~]#
Thêm các mục nhập máy chủ vào
Mã:
/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 ~]#
Thêm các quy tắc tường lửa
Mã:
[root@awx ~]# systemctl enable firewalldĐã tạo liên kết tượng trưng từ /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service đến /usr/lib/systemd/system/firewalld.service.Đã tạo liên kết tượng trưng từ /etc/systemd/system/multi-user.target.wants/firewalld.service đến /usr/lib/systemd/system/firewalld.service.[root@awx ~]# systemctl khởi động tường lửa[root@awx ~]# tường lửa-cmd --add-service=http --permanent;tường lửa-cmd --add-service=https --permanentthành côngthành công[root@awx ~]# systemctl khởi động lại tường lửa[root@awx ~]#
Kích hoạt kho lưu trữ CentOS EPEL.
Mã:
[root@awx ~]# yum install -y epel-release
Chúng tôi cần postgresql 9.6 để cài đặt AWX.

Bật kho lưu trữ postgreSQL.
Mã:
[root@awx ~]# yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Cài đặt postgreSQL.
Mã:
[root@awx ~]# yum install postgresql96-server -y
Cài đặt các rpm cần thiết khác.
Mã:
[root@awx ~]# yum install -y rabbitmq-server wget memcached nginx ansible

Cài đặt Ansible AWX​

Thêm kho lưu trữ AWX.
Mã:
[root@awx ~]# wget -O /etc/yum.repos.d/awx-rpm.repo https://copr.fedorainfracloud.org/coprs/mrmeee/awx/repo/epel-7/mrmeee-awx-epel-7.repo
Cài đặt rpm
Mã:
[root@awx ~]# yum install -y awx
Khởi tạo cơ sở dữ liệu
Mã:
[root@awx ~]# /usr/pgsql-9.6/bin/postgresql96-setup initdbĐang khởi tạo cơ sở dữ liệu ... OK[root@awx ~]#
Khởi động dịch vụ Rabbitmq
Mã:
[root@awx ~]# systemctl start rabbitmq-server[root@awx ~]# systemctl enable rabbitmq-serverĐã tạo liên kết tượng trưng từ /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service đến /usr/lib/systemd/system/rabbitmq-server.service.[root@awx ~]#
Khởi động Dịch vụ PostgreSQL
Mã:
[root@awx ~]# systemctl enable postgresql-9.6Đã tạo liên kết tượng trưng từ /etc/systemd/system/multi-user.target.wants/postgresql-9.6.service đến /usr/lib/systemd/system/postgresql-9.6.service.[root@awx ~]# systemctl start postgresql-9.6
Khởi động Dịch vụ Memcached
Mã:
[root@awx ~]# systemctl enable memcachedĐã tạo liên kết tượng trưng từ /etc/systemd/system/multi-user.target.wants/memcached.service đến /usr/lib/systemd/system/memcached.service.[root@awx ~]# systemctl start memcached
Tạo người dùng Postgres
Mã:
[root@awx ~]# sudo -u postgres createuser -S awxkhông thể thay đổi thư mục thành "/root": Quyền bị từ chối[root@awx ~]#
bỏ qua lỗi

Tạo cơ sở dữ liệu
Mã:
[root@awx ~]# sudo -u postgres createdb -O awx awxkhông thể thay đổi thư mục thành "/root": Quyền bị từ chối[root@awx ~]#
bỏ qua lỗi

Nhập dữ liệu vào Cơ sở dữ liệu
Mã:
[root@awx ~]# sudo -u awx /opt/awx/bin/awx-manage migrate
Khởi tạo cấu hình choAWX
Mã:
[root@awx ~]# echo "from django.contrib.auth.models người dùng nhập; User.objects.create_superuser('admin', 'root@localhost', 'password')" | sudo -u awx /opt/awx/bin/awx-manage shell[root@awx ~]# sudo -u awx /opt/awx/bin/awx-manage create_preload_dataĐã thêm tổ chức mặc định.Đã thêm thông tin xác thực demo, khoảng không quảng cáo và mẫu công việc.[root@awx ~]# sudo -u awx /opt/awx/bin/awx-manage cung cấp_instance --hostname=$(tên máy chủ)Đã đăng ký thành công phiên bản awx.sunil.cc(đã thay đổi: Đúng)[root@awx ~]# sudo -u awx /opt/awx/bin/awx-manage register_queue --queuename=tower --hostnames=$(hostname)Tạo tháp nhóm phiên bảnĐã thêm phiên bản awx.sunil.cc vào tháp(đã thay đổi: Đúng)[root@awx ~]#

Định cấu hình Nginx​

Tạo bản sao lưu của nginx.conf
Mã:
[root@awx ~]# cd /etc/nginx/[root@awx nginx]# pwd/etc/nginx[root@awx nginx]# cp nginx.conf nginx.conf.bkp
Thay thế tệp conf nginx
Mã:
[root@awx nginx]# wget -O /etc/nginx/nginx.conf https://raw.githubusercontent.com/sunilsankar/awx-build/master/nginx.conf
Bật và khởi động dịch vụ nginx
Mã:
[root@awx ~]# systemctl bắt đầu nginx[root@awx ~]# systemctl kích hoạt nginx
Bắt đầu dịch vụ awx
Mã:
[root@awx ~]# systemctl start awx-cbreceiver[root@awx ~]# systemctl bắt đầu awx-celery-beat[root@awx ~]# systemctl khởi động awx-celery-worker[root@awx ~]# systemctl bắt đầu awx-kênh-worker[root@awx ~]# systemctl bắt đầu awx-daphne[root@awx ~]# systemctl start awx-web
Đảm bảo dịch vụ được khởi động trong khi khởi động lại
Mã:
[root@awx ~]# systemctl kích hoạt awx-cbreceiverĐã tạo liên kết tượng trưng từ /etc/systemd/system/multi-user.target.wants/awx-cbreceiver.service tới /usr/lib/systemd/system/awx-cbreceiver.service.[root@awx ~]# systemctl kích hoạt awx-celery-beatĐã tạo liên kết tượng trưng từ /etc/systemd/system/multi-user.target.wants/awx-celery-beat.service đến /usr/lib/systemd/system/awx-celery-beat.service.[root@awx ~]# systemctl enable awx-celery-workerĐã tạo liên kết tượng trưng từ /etc/systemd/system/multi-user.target.wants/awx-celery-worker.service đến /usr/lib/systemd/system/awx-celery-worker.service.[root@awx ~]# systemctl enable awx-channels-workerĐã tạo liên kết tượng trưng từ /etc/systemd/system/multi-user.target.wants/awx-channels-worker.service đến /usr/lib/systemd/system/awx-channels-worker.service.[root@awx ~]# systemctl enable awx-daphneĐã tạo liên kết tượng trưng từ /etc/systemd/system/multi-user.target.wants/awx-daphne.service đến /usr/lib/systemd/system/awx-daphne.service.[root@awx ~]# systemctl kích hoạt awx-webĐã tạo liên kết tượng trưng từ /etc/systemd/system/multi-user.target.wants/awx-web.service đến /usr/lib/systemd/system/awx-web.service.[root@awx ~]#

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ủ.

Trong hướng dẫn này, tôi sẽ tạo người dùng ansible 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 trong máy chủ awx
Mã:
[root@awx nginx]# 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ự: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:RW/dhTsxcyGicleRI0LpLm+LyhAVinm0xktapodc8gY [emailprotected]Hình ảnh randomart của khóa là:+---[RSA 2048]----+| . . ..o. +ooo|| = o . +.oo+*.o|| E @ . ..oo.+ o*.||. # o oo.. o || = * S . || o . . . || . o || o .o || 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 nginx]# 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 AAAAB3NzaC1yc2EAAAADAQABAAABAQDStB8JGsVsSLppwYWdnEPLE4xwFqRDn7xE/d3hjBQ6A0JGm1t+GtHB3GPIEjANF TnxQwHpR+cRttbL3mlQvpIYqCZOMZds9XA7VI5qgs0aSGUU8cNYKjmmrMpJa9sB4WVtj3M4u2fEXt9FKKCtjMMpOfiQxI kEhYZ+2GoAX5sHXan7TPcgwb5r7WW6j43aaPc6g9XWN63nonQz6KeMSFZ/y0o2HJMh1FEkktZw6A1HVfn+JNWoQb1glyq GjO1ync+Sok8yXpqakEEWpXNQSQYs4eBEwfkKql5EuolQMIbF9VYhpEcR9LfbMvYdq/RPKWN3mmRMWfPZ2dTZl515XBdV [email được bảo vệ][ansible@awx .ssh]$[ansible@awx .ssh]$ cat ủy quyền_keysssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDStB8JGsVsSLppwYWdnEPLE4xwFqRDn7xE/d3hjBQ6A0JGm1t+GtHB3GPIEjANF TnxQwHpR+cRttbL3mlQvpIYqCZOMZds9XA7VI5qgs0aSGUU8cNYKjmmrMpJa9sB4WVtj3M4u2fEXt9FKKCtjMMpOfiQxI kEhYZ+2GoAX5sHXan7TPcgwb5r7WW6j43aaPc6g9XWN63nonQz6KeMSFZ/y0o2HJMh1FEkktZw6A1HVfn+JNWoQb1glyq GjO1ync+Sok8yXpqakEEWpXNQSQYs4eBEwfkKql5EuolQMIbF9VYhpEcR9LfbMvYdq/RPKWN3mmRMWfPZ2dTZl515XBdV [emailprotected][ansible@awx .ssh]$ chmod 600 authorized_keys
Client1
Mã:
[root@client1 ~]# su - ansible[ansible@client1 ~]$ mkdir .ssh[ansible@client1 ~]$ chmod 700 .ssh[ansible@client1 ~]$ cat .ssh/authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDStB8JGsVsSLppwYWdnEPLE4xwFqRDn7xE/d3hjBQ6A0JGm1t+GtHB3GPIEjANF TnxQwHpR+cRttbL3mlQvpIYqCZOMZds9XA7VI5qgs0aSGUU8cNYKjmmrMpJa9sB4WVtj3M4u2fEXt9FKKCtjMMpOfiQxI kEhYZ+2GoAX5sHXan7TPcgwb5r7WW6j43aaPc6g9XWN63nonQz6KeMSFZ/y0o2HJMh1FEkktZw6A1HVfn+JNWoQb1glyq GjO1ync+Sok8yXpqakEEWpXNQSQYs4eBEwfkKql5EuolQMIbF9VYhpEcR9LfbMvYdq/RPKWN3mmRMWfPZ2dTZl515XBdV [emailprotected][ansible@client1 ~]$ chmod 600 .ssh/authorized_keys
Client2
Mã:
[root@client2 ~]# su - ansible[ansible@client2 ~]$ mkdir .ssh[ansible@client2 ~]$ chmod 700 .ssh[ansible@client2 ~]$ cat .ssh/authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDStB8JGsVsSLppwYWdnEPLE4xwFqRDn7xE/d3hjBQ6A0JGm1t+GtHB3GPIEjANF TnxQwHpR+cRttbL3mlQvpIYqCZOMZds9XA7VI5qgs0aSGUU8cNYKjmmrMpJa9sB4WVtj3M4u2fEXt9FKKCtjMMpOfiQxI kEhYZ+2GoAX5sHXan7TPcgwb5r7WW6j43aaPc6g9XWN63nonQz6KeMSFZ/y0o2HJMh1FEkktZw6A1HVfn+JNWoQb1glyq GjO1ync+Sok8yXpqakEEWpXNQSQYs4eBEwfkKql5EuolQMIbF9VYhpEcR9LfbMvYdq/RPKWN3mmRMWfPZ2dTZl515XBdV [emailprotected][ansible@client2 ~]$ chmod 600 .ssh/authorized_keys
Kiểm tra đăng nhập không cần mật khẩu từ AWXserver.
Mã:
[ansible@awx ~]$ ssh client1Lần đăng nhập cuối: CN 11/03/2018 13:14:06 từ 192.168.1.25[ansible@client1 ~]$ exitlogoutKết nối đến client1 đã đóng.[ansible@awx ~]$ ssh client2Lần đăng nhập cuối: CN 11/03/2018 12:50:14 từ 192.168.1.25[ansible@client2 ~]$
Xác thực Đăng nhập:



Chi tiết Đăng nhập là:

Tên người dùng: "admin"
Mật khẩu: "password"



Trong hướng dẫn tiếp theo sẽ chỉ cách thêm sổ tay hướng dẫn và chạy công việc.

Tham khảo​

 
Back
Bên trên