install.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #!/bin/bash
  2. # Ansible Deploy 部署脚本
  3. set -e
  4. echo "=== Ansible Deploy 批量部署工具 ==="
  5. # 检查依赖
  6. check_dependencies() {
  7. echo "检查依赖..."
  8. # 检查Go
  9. if ! command -v go &> /dev/null; then
  10. echo "错误: Go未安装"
  11. exit 1
  12. fi
  13. echo "✓ Go已安装: $(go version)"
  14. # 检查Ansible
  15. if ! command -v ansible &> /dev/null; then
  16. echo "警告: Ansible未安装,是否安装? (y/n)"
  17. read -r answer
  18. if [ "$answer" = "y" ]; then
  19. pip install ansible
  20. else
  21. echo "警告: Ansible未安装,部分功能可能不可用"
  22. fi
  23. else
  24. echo "✓ Ansible已安装: $(ansible --version | head -1)"
  25. fi
  26. # 检查SSH
  27. if ! command -v ssh &> /dev/null; then
  28. echo "错误: SSH未安装"
  29. exit 1
  30. fi
  31. echo "✓ SSH已安装"
  32. }
  33. # 创建目录结构
  34. create_dirs() {
  35. echo "创建目录结构..."
  36. mkdir -p ~/ansible-deploy/{inventory,playbooks,logs}
  37. echo "✓ 目录已创建"
  38. }
  39. # 初始化配置文件
  40. init_config() {
  41. echo "初始化配置文件..."
  42. # 复制配置
  43. if [ ! -f ~/ansible-deploy/config.yaml ]; then
  44. cp config/config.yaml ~/ansible-deploy/config.yaml
  45. echo "✓ 配置文件已创建"
  46. fi
  47. # 创建默认inventory
  48. if [ ! -f ~/ansible-deploy/inventory/hosts ]; then
  49. cat > ~/ansible-deploy/inventory/hosts << 'EOF'
  50. # Ansible Inventory File
  51. # 添加你的主机信息,格式:
  52. # server1 ansible_host=192.168.1.10 ansible_user=root
  53. [webservers]
  54. web1 ansible_host=192.168.1.10 ansible_user=root
  55. web2 ansible_host=192.168.1.11 ansible_user=root
  56. [dbservers]
  57. db1 ansible_host=192.168.1.20 ansible_user=root
  58. [all:vars]
  59. ansible_python_interpreter=/usr/bin/python3
  60. EOF
  61. echo "✓ Inventory文件已创建"
  62. fi
  63. }
  64. # 构建项目
  65. build_project() {
  66. echo "构建项目..."
  67. cd /root/ansible-deploy
  68. go build -o ansible-deploy cmd/main.go
  69. echo "✓ 构建成功: ansible-deploy"
  70. }
  71. # 安装
  72. install_project() {
  73. echo "安装..."
  74. cp ansible-deploy /usr/local/bin/
  75. chmod +x /usr/local/bin/ansible-deploy
  76. echo "✓ 安装成功"
  77. }
  78. # 主函数
  79. main() {
  80. check_dependencies
  81. create_dirs
  82. init_config
  83. build_project
  84. install_project
  85. echo ""
  86. echo "=== 安装完成 ==="
  87. echo "启动服务: ansible-deploy -port 8080"
  88. echo "配置文件: ~/ansible-deploy/config.yaml"
  89. echo "访问地址: http://localhost:8080"
  90. }
  91. main "$@"