简介: ansble ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
具体内容访问网站了解,https://www.ansible.com
为了更直观友好配置查看服务器状态 ,我们使用ansible开源的面板
https://www.ansible.com/products/tower
主机:master k8s3 192.168.3.43
node k8s2 192.168.3.42
修改master hosts
准备工作
1.安装前准备
系统centos7.6*64
关闭防火墙
**firewalld**
systemctl enable firewalld
systemctl start firewalld
firewall-cmd --add-service=http --permanent;firewall-cmd --add-service=https --permanent systemctl restart firewalld
**iptable**
iptables -F #清空防火墙规则
iptables -X iptables -Z iptables-save #保存防火墙规则
systemctl stop firewalld && systemctl disable firewalld #关闭并开机不自启动firewalld
我们更新好国内的源,比如阿里\163\华为等。此操作不再展示,可自行百度。我们这里准备更新为阿里源
2.下载epel-release源及postgreSQL
yum install -y epel-release # yum安装额外软件包
yum install -y postgresql96-server #yum安装
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm #若无postgresql96安装源请安装官方源
3.安装及其他组件
yum install -y rabbitmq-server wget memcached nginx ansible
4.安装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
yum install -y awx
5.初始化数据库
/usr/pgsql-9.6/bin/postgresql96-setup initdb
6.启动各项服务应用
systemctl start rabbitmq-server && systemctl enable rabbitmq-server #启动rabbitmq服务
systemctl enable postgresql-9.6 && systemctl start postgresql-9.6 #启动postgresql服务
systemctl enable memcached && systemctl start memcached #启动memcache服务
7.成功启动以上服务器后 ,创建postgresql用户
sudo -u postgres createuser -S awx
8.创建和导入数据库
sudo -u postgres createdb -O awx awx #创建数据库
sudo -u awx /opt/awx/bin/awx-manage migrate #数据导入数据库 时间有点久 待导入完成后,再进行接下来操作
9.awx 初始化配置步骤
echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin','root@localhost', 'password')" | sudo -u awx /opt/awx/bin/awx-manage shell
sudo -u awx /opt/awx/bin/awx-manage create_preload_data
sudo -u awx /opt/awx/bin/awx-manage provision_instance --hostname=$(hostname)
sudo -u awx /opt/awx/bin/awx-manage register_queue --queuename=tower --hostnames=$(hostname)
10.nginx配置
进入目录
cd /etc/nginx/
mv nginx.conf nginx.conf.bak #备份nginx备份文件
wget -O /etc/nginx/nginx.conf https://raw.githubusercontent.com/sunilsankar/awx-build/master/nginx.conf #下载awx的nginx模板文件
systemctl start nginx && systemctl enable nginx #启动与开机自启nginx服务
11.开启awx对应服务
systemctl start awx-cbreceiver
systemctl start awx-celery-beat
systemctl start awx-celery-worker
systemctl start awx-channels-worker
systemctl start awx-daphne
systemctl start awx-web
systemctl enable awx-cbreceiver
systemctl enable awx-celery-beat
systemctl enable awx-celery-worker
systemctl enable awx-channels-worker
systemctl enable awx-daphne
systemctl enable awx-web
至此 大功告成,接下来
配置ssh密钥相关
1.创建免密登录用户
useradd ansible #本地和远程都执行添加
su - ansible #切换到ansible用户 本地
ssh-keygen #生成秘钥 三次回车不输入密码
#########本机#############
visudo #配置ansible超级管理员权限
ansible ALL=(ALL) NOPASSWD: ALL #免密执行所有操作 root权限操作
cat /home/ansible/.ssh/id_rsa.pub> /home/ansible/.ssh/authorized_keys
chmod 600 authorized_keys
##########远程############
su ansible
mkdir .ssh
chmod 700 .ssh
将本机authorized_keys复制到远程 或拷贝到远程主机
chmod 600 .ssh/authorized_keys
验证免费登陆成功与否,本机难登陆本机及远程均无密码成功登陆
2.打开浏览器 输入本机IP地址:192.168.3.43 进入AWX 且初始化用户及密码为:admin/password
登陆如图所示
3.创建项目,
ps:报错原因 /var/lib/awx/projects目录中没有可用palybook目录
放入对应目录所属awx用户及脚本即可
具体我们可以到github上搜索对应的应用模板 可参考:https://github.com/Tobewont/ansible-playbook.git
配置
目录
添加主机
配置运行模板并保存
参考文献:https://www.howtoforge.com/tutorial/centos-ansible-awx-installation/
问题总结。
1.ansible tower(aws)安装,python版本应在3以上。
2.ansible文档指示,下载make和python后,在python文件夹中直接进行 make && make install报错Segmentation fault。
应该是make版本冲突,使用/usr/bin/make 进行编译就可以。
3.Failed to get D-Bus connection: Operation not permitted
重启以后解决。
4.yml脚本中自定义hosts报错,用all就可以。
原因为服务器中去执行yml脚本默认从/etc/ansible/hosts中读取hosts,而awx界面的脚本默认从界面设置的inventory->hosts中读取。
网友评论