m6米乐安卓版下载-米乐app官网下载
9

利用ansible自动化安装mogdb-m6米乐安卓版下载

鸿惊九天 2022-09-06
620
ansible是目前比较流行的一款开源的自动化工具,可以使用它来自动化任务,部署应用程序实现it基础架构。

ansible可以用来自动化日常任务,比如,服务器的初始化配置、安装和更新软件包等。ansible架构相对比较简单,仅需通过ssh连接客户机执行任务即可。

本文将利用ansible 剧本编排(playbook)实现如何对mogdb的自动化安装部署,具体步骤如下:

2台主机:
一台为安装ansible的主机(192.168.9.1),
另外一台为需要部署mogdb的主机(192.168.9.21)

1、ansible安装

使用yum进行安装ansible(需提前进行配置好yum源)
yum install epel-release -y
yum install ansible -y

安装完成后,查看ansible版本:

[root@cs79-mysql ~]# ansible --version
ansible 2.9.27
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /bin/ansible
  python version = 2.7.5 (default, oct 14 2020, 14:45:30) [gcc 4.8.5 20150623 (red hat 4.8.5-44)]

2、配置主机清单

修改主机清单/etc/ansible/hosts,添加主机列表
[root@cs79-mysql ansible]# pwd
/etc/ansible

#cat hosts
[dbserver]
192.168.9.21 ansible_ssh_user=root ansible_ssh_pass=123456

###192.168.9.21为本次需要安装mogdb的主机

3、测试主机连通性

[root@cs79-mysql ansible]# ansible dbserver -m ping

ansible-playbook配置思路:

通过vars中的main.yml配置变量,主要设置软件版本、存放目录、安装目录、密码等;

通过tasks中的main.yml将安装文件传输到远程服务器上存放目录;

通过tasks中的main.yml将mogdb安装到变量中定义的安装目录;

通过installmogdb.yml调用剧本(playbook)实现自动部署;

1、创建相关目录

[root@cs79-mysql roles]# pwd
/etc/ansible/roles
[root@cs79-mysql roles]# mkdir -p mogdb_install/{files,vars,tasks,templates}
[root@cs79-mysql roles]# cd mogdb_install/
[root@cs79-mysql mogdb_install]# ls
files tasks templates vars

#tree mogdb_install
mogdb/
├── files
├── tasks
├── templates
└── vars

4 directories, 0 files

playbook的目录组织结构如下:
files:存放需要同步到异地服务器的安装文件或者配置文件;
tasks:mogdb安装过程需要进行的执行的任务;
templates:用于执行mogdb安装的模板文件,一般为脚本;
vars:安装定义的变量;

2、下载mogdb软件包到files目录

下载安装包放入到/etc/ansible/roles/mogdb_install/files目录下

[root@cs79-mysql files]# wget https://cdn-mogdb.enmotech.com/mogdb-media/3.0.1/mogdb-3.0.1-centos-x86_64.tar.gz
–2022-09-05 22:43:53-- https://cdn-mogdb.enmotech.com/mogdb-media/3.0.1/mogdb-3.0.1-centos-x86_64.tar.gz
resolving cdn-mogdb.enmotech.com (cdn-mogdb.enmotech.com)… 58.218.215.93
connecting to cdn-mogdb.enmotech.com (cdn-mogdb.enmotech.com)|58.218.215.93|:443… connected.
http request sent, awaiting response… 200 ok
length: 139264406 (133m) [application/gzip]
saving to: ‘mogdb-3.0.1-centos-x86_64.tar.gz’

100%[==================================================================================================================================================================================================>] 139,264,406 12.8mb/s in 10s

2022-09-05 22:44:04 (12.9 mb/s) - ‘mogdb-3.0.1-centos-x86_64.tar.gz’ saved [139264406/139264406]

#ls
mogdb-3.0.1-centos-x86_64.tar.gz

下载完后,进行解压(安装需用到解压后的mogdb-3.0.1-centos-64bit.tar.gz这个包)
#tar -xf mogdb-3.0.1-centos-x86_64.tar.gz
#ls -lrt
total 274016
-rw-r–r-- 1 20001 20001 107200316 aug 5 18:38 mogdb-3.0.1-centos-64bit.tar.gz
-rw-r–r-- 1 20001 20001 65 aug 5 18:38 mogdb-3.0.1-centos-64bit.sha256
-rw-r–r-- 1 20001 20001 5078313 aug 5 18:38 mogdb-3.0.1-centos-64bit-libpq.tar.gz
-rw-r–r-- 1 20001 20001 410121 aug 5 18:38 upgrade_sql.tar.gz
-rw-r–r-- 1 20001 20001 8028953 aug 5 18:38 mogdb-3.0.1-centos-64bit-tools.tar.gz
-rw-r–r-- 1 20001 20001 65 aug 5 18:38 upgrade_sql.sha256
-rw-r–r-- 1 20001 20001 14167708 aug 5 18:38 mogdb-3.0.1-centos-64bit-om.tar.gz
-rw-r–r-- 1 20001 20001 65 aug 5 18:38 mogdb-3.0.1-centos-64bit-om.sha256
-rw-r–r-- 1 20001 20001 6411863 aug 5 18:38 mogdb-3.0.1-centos-64bit-cm.tar.gz
-rw-r–r-- 1 20001 20001 65 aug 5 18:38 mogdb-3.0.1-centos-64bit-cm.sha256
-rw-r–r-- 1 root root 139264406 aug 5 19:35 mogdb-3.0.1-centos-x86_64.tar.gz

3、创建变量文件

[root@cs79-mysql playbook]# vi /etc/ansible/roles/mogdb_install/vars/main.yml

mogdb_version: mogdb-3.0.1-centos-64bit.tar.gz
#解压目录地址
dir: /opt/mogdb/
#软件安装目录名
mogdb_dir: /opt/mogdb/software
#数据目录
datadir: /opt/mogdb/data
#数据库密码
mogdb_password: enmo@123

4、创建任务文件

[root@cs79-mysql playbook]# vi /etc/ansible/roles/mogdb_install/tasks/main.yml

- name: 关闭防火墙
  shell: systemctl disable firewalld.service && systemctl stop firewalld.service
  ignore_errors: true
- name: 关闭selinux
  shell: sed -i 's/selinux=enforcing/selinux=disabled/g' /etc/selinux/config
  ignore_errors: true
- name: 创建组
  group: name=dbgrp gid=2000
- name: 创建用户
  user:
    name=omm  uid=2000 group=dbgrp
- name: 修改密码
  shell: echo 'enmo@123' | passwd --stdin omm
- name: 新建目录
  file: path="{{item}}"  state=directory mode=0755 owner=omm group=dbgrp
  with_items:
      - /opt/mogdb/
      - /opt/mogdb/software/
      - /opt/mogdb/data/
- name: 上传安装包
  copy: src={{mogdb_version}} dest={{dir}}  owner=omm group=dbgrp mode=0644
  tags: install
  
- name: "解压软件包"
  unarchive: src={{dir}}/{{mogdb_version}} dest={{mogdb_dir}} copy=no list_files=yes
- name: "安装依赖包"
  yum: name="gcc,gcc-c  ,libaio-devel" state=installed 
- name: "配置环境变量"
  shell: echo -e "export gausshome={{mogdb_dir}}\nexport path={{mogdb_dir}}/bin:\$path\nexport ld_library_path=\$gausshome/lib:\$ld_library_path" >> /home/omm/.bashrc
- name: "修改属主属组"
  shell: chown omm:dbgrp -r /opt/mogdb/ warn=false 
- name: "初始化数据库"
  shell: su - omm -c " gs_initdb --pgdata={{datadir}} --nodename=primary --pwpasswd={{mogdb_password}} --encoding=utf-8 --locale=en_us.utf-8 "
- name: "修改初始化参数"
  shell: |
         echo -e "port=26000\nlisten_addresses = '0.0.0.0'\npassword_encryption_type = 0\nlog_directory = 'pg_log'\nremote_read_mode=non_authentication" >> {{datadir}}/postgresql.conf && chown omm.dbgrp {{datadir}}/postgresql.conf	    
         echo -e "host all all 0.0.0.0/0 md5" >> {{datadir}}/pg_hba.conf && chown omm.dbgrp {{datadir}}/pg_hba.conf
- name: "启动mogdb"
  shell: ss -anpt|grep 26000 && su - omm -c "gs_ctl restart -d {{datadir}} " || su - omm -c "gs_ctl start -d {{datadir}} "
- name: "登录数据库"
  shell: ss -anpt|grep 26000 && su - omm -c "gsql -d postgres -p26000 -r -l"

5、创建mogdb角色文件,用于调用mogdb_install

[root@cs79-mysql playbook]# vi /etc/ansible/playbook/installmogdb.yml

- name: install mogdb
  hosts: dbserver
  remote_user: root
  roles:
  - mogdb_install

6、检验yml文件

yml文件校验没有问题,开始进行自动化安装

7、自动化安装mogdb

[root@cs79-mysql playbook]# ansible-playbook installmogdb.yml

8、登录数据库

安装完成后,登录数据库进行验证

[root@mogdb ~]# su - omm
last login: tue sep  6 10:40:28 cst 2022 from 192.168.9.1 on pts/1
[omm@mogdb ~]$ gsql -d postgres -p26000
gsql ((mogdb 3.0.1 build 1a363ea9) compiled at 2022-08-05 17:31:04 commit 0 last mr  )
non-ssl connection (ssl connection is recommended when requiring high-security)
type "help" for help.
mogdb=# \l
                              list of databases
   name    | owner | encoding |   collate   |    ctype    | access privileges 
----------- ------- ---------- ------------- ------------- -------------------
 postgres  | omm   | utf8     | en_us.utf-8 | en_us.utf-8 | 
 template0 | omm   | utf8     | en_us.utf-8 | en_us.utf-8 | =c/omm            
           |       |          |             |             | omm=ctc/omm
 template1 | omm   | utf8     | en_us.utf-8 | en_us.utf-8 | =c/omm            
           |       |          |             |             | omm=ctc/omm
(3 rows)
mogdb=# 


至此,自动化部署mogdb完毕,如果有多台机器需要部署,添加主机相关信息到/etc/ansible/hosts即可,大大提高效率。

最后修改时间:2022-09-07 09:37:05
「喜欢文章,快来给作者赞赏墨值吧」
1人已赞赏
【米乐app官网下载的版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

网站地图