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.
Thêm các mục nhập máy chủ vào
Thêm các quy tắc tường lửa
Kích hoạt kho lưu trữ CentOS EPEL.
Chúng tôi cần postgresql 9.6 để cài đặt AWX.
Bật kho lưu trữ postgreSQL.
Cài đặt postgreSQL.
Cài đặt các rpm cần thiết khác.
Cài đặt rpm
Khởi tạo cơ sở dữ liệu
Khởi động dịch vụ Rabbitmq
Khởi động Dịch vụ PostgreSQL
Khởi động Dịch vụ Memcached
Tạo người dùng Postgres
bỏ qua lỗi
Tạo cơ sở dữ liệu
bỏ qua lỗi
Nhập dữ liệu vào Cơ sở dữ liệu
Khởi tạo cấu hình choAWX
Thay thế tệp conf nginx
Bật và khởi động dịch vụ nginx
Bắt đầu dịch vụ awx
Đảm bảo dịch vụ được khởi động trong khi khởi động lại
Trong hướng dẫn này, tôi sẽ tạo người dùng ansible trên cả 3 máy chủ.
Tạo khóa ssh trong máy chủ 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
Sao chép nội dung của id_rsa.pub vào authorized_keys trên cả 3 máy chủ
Client1
Client2
Kiểm tra đăng nhập không cần mật khẩu từ AWXserver.
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.
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
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 ~]#
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 ~]#
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 ~]#
Mã:
[root@awx ~]# yum install -y epel-release
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
Mã:
[root@awx ~]# yum install postgresql96-server -y
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
Mã:
[root@awx ~]# yum install -y awx
Mã:
[root@awx ~]# /usr/pgsql-9.6/bin/postgresql96-setup initdbĐang khởi tạo cơ sở dữ liệu ... OK[root@awx ~]#
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 ~]#
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
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
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 ~]#
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 ~]#
Nhập dữ liệu vào Cơ sở dữ liệu
Mã:
[root@awx ~]# sudo -u awx /opt/awx/bin/awx-manage migrate
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
Mã:
[root@awx nginx]# wget -O /etc/nginx/nginx.conf https://raw.githubusercontent.com/sunilsankar/awx-build/master/nginx.conf
Mã:
[root@awx ~]# systemctl bắt đầu nginx[root@awx ~]# systemctl kích hoạt nginx
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ã:
[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
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 ~]$
Mã:
[root@awx nginx]# visudoansible ALL=(ALL) NOPASSWD: ALL
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
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
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
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 ~]$
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.