一、实验环境
系统环境 | IP地址 | hostname | 角色 |
---|---|---|---|
redhat7.2 | 172.25.27.1 | controller | 控制节点 、salt-minion |
redhat7.2 | 172.25.27.2 | comput | 计算节点 、salt-miniom |
redhat7.2 | 172.25.27.3 | server3 | salt-master |
二、SaltStack安装与配置
请参考 : 自动化运维工具SaltStack详细部署及用SaltStack实现自动部署lamp架构
三、部署开始
[root@server3 ~]# mkdir -p /srv/salt/controller/files
[root@server3 ~]# mkdir -p /srv/salt/comput/files
[root@server3 ~]# mkdir -p /srv/salt/chrony/files
[root@server3 ~]# mkdir -p /srv/salt/pkg
1.controller
controller服务预安装脚本
[root@server3 ~]# cd /srv/salt/controller
[root@server3 controller]# vim files/mitaka.repo
[mitaka]
name=mitaka
baseurl=http://172.25.27.250/mitaka/mitaka/
gpgcheck=0
[root@server3 salt]# vim pkg/controller.sls
controller:
pkg.installed:
- pkgs:
- chrony
- python-openstackclient
- mariadb
- mariadb-server
- python2-PyMySQL
- rabbitmq-server
- memcached
- python-memcached
- install
- openstack-keystone
- httpd
- mod_wsgi
- openstack-glance
- openstack-nova-api
- openstack-nova-conductor
- openstack-nova-console
- openstack-nova-novncproxy
- openstack-nova-scheduler
- nstall
- openstack-neutron
- openstack-neutron-ml2
- openstack-neutron-linuxbridge
- ebtables
controller服务安装脚本
[root@server3 salt]# vim controller/install.sls
install_pkgs:
file.managed:
- name: /etc/yum.repos.d/mitaka.repo
- source: salt://controller/files/mitaka.repo
- user: root
- group: root
- mode: 644
include:
- pkg.controller
/etc/chrony.conf:
file.managed:
- source: salt://controller/files/chrony.conf
/etc/my.cnf.d/openstack.cnf:
file.managed:
- source: salt://controller/files/openstack.cnf
/etc/sysconfig/memcached:
file.managed:
- source: salt://controller/files/memcached
/etc/keystone/keystone.conf:
file.managed:
- source: salt://controller/files/keystone.conf
/etc/httpd/conf/httpd.conf:
file.managed:
- source: salt://controller/files/httpd.conf
/etc/httpd/conf.d/wsgi-keystone.conf:
file.managed:
- source: salt://controller/files/wsgi-keystone.conf
/admin-openrc:
file.managed:
- source: salt://controller/files/admin-openrc
/demo-openrc:
file.managed:
- source: salt://controller/files/demo-openrc
/etc/glance/glance-api.conf:
file.managed:
- source: salt://controller/files/glance-api.conf
/etc/glance/glance-registry.conf:
file.managed:
- source: salt://controller/files/glance-registry.conf
/etc/nova/nova.conf:
file.managed:
- source: salt://controller/files/nova.conf
/etc/neutron/neutron.conf:
file.managed:
- source: salt://controller/files/neutron.conf
/etc/neutron/plugins/ml2/ml2_conf.ini:
file.managed:
- source: salt://controller/files/ml2_conf.ini
/etc/neutron/plugins/ml2/linuxbridge_agent.ini:
file.managed:
- source: salt://controller/files/linuxbridge_agent.ini
/etc/neutron/dhcp_agent.ini:
file.managed:
- source: salt://controller/files/dhcp_agent.ini
/etc/neutron/metadata_agent.ini:
file.managed:
- source: salt://controller/files/metadata_agent.ini
/etc/nova/nova.conf:
file.managed:
- source: salt://controller/files/nova.conf
controller服务启动脚本
[root@server3 salt]# vim controller/servies.sls
include:
- controller.install
Sync_Host:
file.managed:
- name: /etc/hosts
- source: salt://controller/files/hosts
- user: root
- group: root
- mode: 644
stop_selinux_firewalld:
file.managed:
- name: /tmp/stop_firewalled.sh
- source: salt://controller/files/stop_firewalled.sh
- mode: 755
cmd.run:
- name: cd /tmp && ./stop_firewalled.sh
ntp_running:
service.running:
- name: chronyd
- enable: True
- watch:
- file: /etc/chrony.conf
sync_time:
cmd.run:
- name: chronyc sources
httpd-running:
service.running:
- name: httpd
- enable: true
- watch:
- file: /usr/local/apache/conf/httpd.conf
mariadb-running:
service.running:
- name: mariadb
- enable: true
。。。
暂时写到这里,只完成了九牛一毛,后续再完善