利用ansible脚本部署项目环境说明
来源:互联网 发布:淘客cms排行 编辑:程序博客网 时间:2024/06/06 05:35
(转载于cdq)
利用ansible脚本部署项目环境说明
主要的步骤分以下几步:
实现两台ubuntu14.04电脑的免密钥ssh登录
部署环境
一、实现两台ubuntu14.04电脑的免密钥ssh登录
首先准备两台电脑(一台也行,可以使用两个账号),电脑A和电脑B。现配置A免密登录电脑B的root用户。
1. 在两台电脑上都安装ssh
- 使用sudo apt-get install openssh-server指令安装ssh。
- 使用ps -e | grep ssh 查看是否开启ssh,如果没有使用sudo service ssh start开启ssh。
- 保证两台电脑都安装了ssh。
- 这是可以用电脑A登录电脑B的root账号,但此时需要密码才能登录。
2. 将电脑A的公钥加入电脑B的配置上
所谓”公钥登录”,原就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
- 在电脑A上执行ssh-keygen -t rsa创建公钥和私钥,保存为$HOME/.ssh/id_rsa,此时不要选择密钥短语
- 使用scp /root/.ssh/id_rsa.pub root@电脑BIP:/root 将电脑Aroot用户的公钥拷贝到电脑B的root目录下。
- 在电脑B上的root家目录下创建.ssh文件。mkdir .ssh
- 将拷贝过来的电脑B的公钥放到.ssh目录下,并命名authorized_keys。cat id_rsa.pub >> .ssh/authorized_keys
- 修改.ssh文件夹的权限。chmod -R 600 .ssh
- 这时就可以在电脑A下使用对应的用户免密钥登录电脑B并使用root权限
二、部署环境
环境部署使用ansible脚本,这时为了保证你的环境能够部署成功,应先清理无用的脏数据,使用指令sudo apt-get -f install来判断是否又依赖包没有安装好。
- 首先把部署代码存放在电脑A的某个目录
- 进入代码的ansible目录,修改hosts文件的mooe IP和mooe-dev IP为电脑B的IP
- 现使用ansible -i hosts -m ping -u root mooe和ansible -i hosts -m ping -u root mooe-dev检测连接是否正确
- 对于纯净的环境,先后执行ansible-playbook -i hosts mooe-dev.yml和ansible-playbook -i hosts mooe-dev.yml –tags “configure”
- 代码部署使用ansible-playbook -i hosts mooe-dev.yml –tags “deploy”
部署可能出现的问题以及解决方案
- 任务install debs时报错,可以查看报错信息,绝大多数是环境不纯导致软件安装失败。这时可以先彻底卸载对应的软件再重新执行。
- 任务sync local config to remote时报错,可以查看报错信息,可能是某个文件夹不存在,新建即可。
- 任务init mysql database时报错,可能是由于本地环境不纯导致的安装mysql时加入了密码。可以彻底卸载mysql再重新安装,也可以在ansible上加入密码login_password=”*“,注意在 create users任务上也要添加。
- 任务create database tables时报错,可能是.env文件上的数据库的账号和密码不对,参考文件/group_vars/mooe-dev.yml文件。
0 0
- 利用ansible脚本部署项目环境说明
- 利用ansible-playbook从测试环境获取tomcat中java项目新版本发布到生产环境
- Ansible部署
- 利用Ansible部署运行Apache(http)的Docker容器
- Hudson项目部署说明
- 如何利用Ansible角色对基础设施环境进行抽象
- PHP开发环境部署说明
- 项目环境部署
- JAVA WEB项目部署说明
- maven项目多war聚合 利用ant脚本实现热部署
- OpenStack-Ansible自动化部署
- ansible安装部署
- ansible自动化部署
- Ansible部署tomcat
- Ansible部署Java
- 使用Ansible部署Nginx
- Ansible部署详《二》
- Ansible部署rsync
- Android手机APP广告植入与产品上线
- hdu 5497 Inversion(树状数组)
- java zip API实现压缩和解压缩zip包
- hdu-4764-博弈论
- (二) :美素数(打表+拆数)
- 利用ansible脚本部署项目环境说明
- 《数学之美》期望最大化
- [leetcode] 342. Power of Four
- WEB-INF目录与META-INF目录的作用
- 面试软件开发必会的排序算法
- eclipse中tomcat启动正常,但是无法显示主页
- Java的字符、转译符、boolean
- 微社区发帖提示“抱歉,你的请求来路不正确或表单验证不正确”
- 设计模式——适配器模式