GitLab在Centos下的安装步骤
2015-10-26 10:57
246 查看
第一步:(安装工具包)
第二步:(安装ruby,如果已安装则可跳过这个步骤)
第三步:(下载并安装gitlab-ce-xx.rpm安装包)
如果下载过于缓慢或下载失败,则可选择使用以下方式
http://pan.baidu.com/s/1kTzsCfX
如果已成功下载,则使用下面的命令安装
第四步:(修复软连接)
首先修复modprobe
其次修复sysctl
如果在配置使用过程中,出现了以下错误,一定要使用上述操作步骤进行修复
第五步:(修改日志文件夹的访问权限)
第六步:(配置gitlab.rb文件,主要看未注释掉的代码部分)
修改后的文件如下
注:在这里唯一需要修改的就是把文件里xxxxxxxx@163.com这个邮件地址改为自己真实可用的邮箱地址即可,好像一共有三处;其次别忘了在这里修改自己的邮箱密码,如果是163邮箱,录入的密码不是真实的邮箱密码,而是代理密码,即一个加密后的密码串,具体情况自己可登录163邮箱查看。
第七步:(修改PostgreSQL的配置文件)
在这里需要依次修改两个文件(如果你需要远程访问PostgreSQL数据库,需要再额外的修改postgresql.conf文件),分别为pg_hba.conf与postgresql.conf文件
1)配置待访问的主机IP(客户端)
如果希望某个IP段的主机也可以访问数据库,只需再增加这个段就可以了,例如192.168.10.0~192.168.10.255,就可以写成以下的方式
2)启用监听所有客户端
在这个文件中主要是修改63行的listen_addresses = ''为listen_addresses = '*',这样就可以监听所有端口了。
最后一步:(启用所有配置并启动)
访问http://localhost即可。
gitlab默认的数据库为gitlabhq_production,数据库登录用户名为gitlab-psql,数据库密码为空;
gitlab的用户信息分别保存在namespaces表与users表中。
sudo yum install curl openssh-server postfix cronie sudo service postfix start sudo chkconfig postfix on sudo lokkit -s http -s ssh
第二步:(安装ruby,如果已安装则可跳过这个步骤)
sudo yum install ruby ruby-irb
第三步:(下载并安装gitlab-ce-xx.rpm安装包)
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash sudo yum install gitlab-ce
如果下载过于缓慢或下载失败,则可选择使用以下方式
http://pan.baidu.com/s/1kTzsCfX
如果已成功下载,则使用下面的命令安装
rpm -i gitlab-ce-XXX.rpm
第四步:(修复软连接)
首先修复modprobe
rm -f /sbin/modprobe ln -s /bin/true /sbin/modprobe
其次修复sysctl
rm -f /sbin/sysctl ln -s /bin/true /sbin/sysctl
如果在配置使用过程中,出现了以下错误,一定要使用上述操作步骤进行修复
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key error: "net.bridge.bridge-nf-call-iptables" is an unknown key error: "net.bridge.bridge-nf-call-arptables" is an unknown key error: permission denied on key 'net.ipv4.tcp_max_syn_backlog' error: permission denied on key 'net.core.netdev_max_backlog' error: permission denied on key 'net.core.wmem_default' error: permission denied on key 'net.core.rmem_default' error: permission denied on key 'net.core.rmem_max' error: permission denied on key 'net.core.wmem_max' error: permission denied on key 'net.ipv4.tcp_timestamps' error: permission denied on key 'net.ipv4.tcp_synack_retries' error: permission denied on key 'net.ipv4.tcp_syn_retries' error: permission denied on key 'net.ipv4.tcp_tw_recycle' error: permission denied on key 'net.ipv4.tcp_tw_reuse' error: permission denied on key 'net.ipv4.tcp_mem' error: permission denied on key 'net.ipv4.tcp_max_orphans' error: permission denied on key 'net.ipv4.ip_local_port_range'
第五步:(修改日志文件夹的访问权限)
sudo chmod -R 777 /var/log/gitlab
第六步:(配置gitlab.rb文件,主要看未注释掉的代码部分)
sudo nano /etc/gitlab/gitlab.rb
修改后的文件如下
## Latest options listed at https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-config-template/gitlab.rb.template ## Url on which GitLab will be reachable. ## For more details on configuring external_url see: ## https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#configuring-the-external-url-for-gitlab external_url 'http://localhost' ## Note: configuration settings below are optional. ## Uncomment and change the value. ############################ # gitlab.yml configuration # ############################ # gitlab_rails['gitlab_ssh_host'] = 'ssh.host_example.com' # gitlab_rails['time_zone'] = 'UTC' # gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = 'xxxxxxxx@163.com' # gitlab_rails['gitlab_email_display_name'] = 'Example' # gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com' # gitlab_rails['gitlab_default_can_create_group'] = true # gitlab_rails['gitlab_username_changing_enabled'] = true # gitlab_rails['gitlab_default_theme'] = 2 # gitlab_rails['gitlab_restricted_visibility_levels'] = nil # to restrict public and internal: ['public', 'internal'] # gitlab_rails['gitlab_default_projects_features_issues'] = true # gitlab_rails['gitlab_default_projects_features_merge_requests'] = true # gitlab_rails['gitlab_default_projects_features_wiki'] = true # gitlab_rails['gitlab_default_projects_features_snippets'] = false # gitlab_rails['gitlab_default_projects_features_visibility_level'] = 'private' # gitlab_rails['gitlab_repository_downloads_path'] = 'tmp/repositories' # gitlab_rails['gravatar_plain_url'] = 'http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon' # gitlab_rails['gravatar_ssl_url'] = 'https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon' # gitlab_rails['webhook_timeout'] = 10 ## Reply by email # You need access to IMAP-enabled email account. For details # see http://doc.gitlab.com/ce/incoming_email/README.html # gitlab_rails['incoming_email_enabled'] = true # gitlab_rails['incoming_email_address'] = "incoming+%{key}@gitlab.example.com" # gitlab_rails['incoming_email_host'] = "imap.gmail.com" # IMAP server host # gitlab_rails['incoming_email_port'] = 993 # IMAP server port # gitlab_rails['incoming_email_ssl'] = true # Whether the IMAP server uses SSL # gitlab_rails['incoming_email_start_tls'] = false # Whether the IMAP server uses StartTLS # gitlab_rails['incoming_email_email'] = "incoming@gitlab.example.com" # Email account username. Usually the full email address. # gitlab_rails['incoming_email_password'] = "password" # Email account password # gitlab_rails['incoming_email_mailbox_name'] = "inbox" # The name of the mailbox where incoming mail will end up. # gitlab_rails['incoming_email_log_directory'] = "/var/log/gitlab/mailroom" ## For setting up LDAP ## see https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#setting-up-ldap-sign-in ## Be careful not to break the identation in the ldap_servers block. It is in ## yaml format and the spaces must be retained. Using tabs will not work. # gitlab_rails['ldap_enabled'] = false # gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' # remember to close this block with 'EOS' below # main: # 'main' is the GitLab 'provider ID' of this LDAP server # label: 'LDAP' # host: '_your_ldap_server' # port: 389 # uid: 'sAMAccountName' # method: 'plain' # "tls" or "ssl" or "plain" # bind_dn: '_the_full_dn_of_the_user_you_will_bind_with' # password: '_the_password_of_the_bind_user' # active_directory: true # allow_username_or_email_login: false # block_auto_created_users: false # base: '' # user_filter: '' # ## EE only # group_base: '' # admin_group: '' # sync_ssh_keys: false # # secondary: # 'secondary' is the GitLab 'provider ID' of second LDAP server # label: 'LDAP' # host: '_your_ldap_server' # port: 389 # uid: 'sAMAccountName' # method: 'plain' # "tls" or "ssl" or "plain" # bind_dn: '_the_full_dn_of_the_user_you_will_bind_with' # password: '_the_password_of_the_bind_user' # active_directory: true # allow_username_or_email_login: false # block_auto_created_users: false # base: '' # user_filter: '' # ## EE only # group_base: '' # admin_group: '' # sync_ssh_keys: false # EOS ## Setting up Kerberos (EE only) ## See http://doc.gitlab.com/ee/integration/kerberos.html#http-git-access # gitlab_rails['kerberos_enabled'] = true # gitlab_rails['kerberos_keytab'] = /etc/http.keytab # gitlab_rails['kerberos_service_principal_name'] = HTTP/gitlab.example.com@EXAMPLE.COM # gitlab_rails['kerberos_use_dedicated_port'] = true # gitlab_rails['kerberos_port'] = 8443 # gitlab_rails['kerberos_https'] = true ## For setting up omniauth ## see https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#omniauth-google-twitter-github-login # gitlab_rails['omniauth_enabled'] = true # gitlab_rails['omniauth_allow_single_sign_on'] = false # gitlab_rails['omniauth_auto_sign_in_with_provider'] = 'saml' # gitlab_rails['omniauth_block_auto_created_users'] = true # gitlab_rails['omniauth_auto_link_ldap_user'] = false # gitlab_rails['omniauth_providers'] = [ # { # "name" => "google_oauth2", # "app_id" => "YOUR APP ID", # "app_secret" => "YOUR APP SECRET", # "args" => { "access_type" => "offline", "approval_prompt" => "" } # } # ] # # If you setup bitbucket importer under omniauth providers you will need to add the keys # which will allow connection between bitbucket and gitlab. # For details see http://doc.gitlab.com/ce/integration/bitbucket.html # gitlab_rails['bitbucket'] = { # 'known_hosts_key' => 'bitbucket.org,207.223.240.182 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==', # 'private_key' => '-----BEGIN RSA PRIVATE KEY----- # MIIEowIBAAKCAQEAyXxYHwz2KjcwSjTREwlhYHqrf/8U0UM8ej3cqQ551gE4Wo3t # -----END RSA PRIVATE KEY-----', # 'public_key' => 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJfFgfDPYqN git@gitlab.example.com' # } ## For setting up backups ## see https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#backups # gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" # gitlab_rails['backup_archive_permissions'] = 0644 # See: http://doc.gitlab.com/ce/raketasks/backup_restore.html#backup-archive-permissions # gitlab_rails['backup_pg_schema'] = 'public' # gitlab_rails['backup_keep_time'] = 604800 # gitlab_rails['backup_upload_connection'] = { # 'provider' => 'AWS', # 'region' => 'eu-west-1', # 'aws_access_key_id' => 'AKIAKIAKI', # 'aws_secret_access_key' => 'secret123' # } # gitlab_rails['backup_upload_remote_directory'] = 'my.s3.bucket' # gitlab_rails['backup_multipart_chunk_size'] = 104857600 ## For setting up different data storing directory ## see https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#storing-git-data-in-an-alternative-directory ## If you want to use a single non-default directory to store git data use ## a path that doesn't contain symlinks. # git_data_dir "/var/opt/gitlab/git-data" # gitlab_rails['satellites_timeout'] = 30 ## GitLab Shell settings for GitLab # gitlab_rails['gitlab_shell_ssh_port'] = 22 # gitlab_rails['git_max_size'] = 20971520 # gitlab_rails['git_timeout'] = 10 ## Extra customization # gitlab_rails['extra_google_analytics_id'] = '_your_tracking_id' # gitlab_rails['extra_piwik_url'] = '_your_piwik_url' # gitlab_rails['extra_piwik_site_id'] = '_your_piwik_site_id' # gitlab_rails['extra_sign_in_text'] = '| # ![Company Logo](http://www.companydomain.com/logo.png) # [Learn more about CompanyName](http://www.companydomain.com/)' # gitlab_rails['env'] = { # 'BUNDLE_GEMFILE' => "/opt/gitlab/embedded/service/gitlab-rails/Gemfile", # 'PATH' => "/opt/gitlab/bin:/opt/gitlab/embedded/bin:/bin:/usr/bin" # } # gitlab_rails['rack_attack_git_basic_auth'] = { # 'enabled' => true, # 'ip_whitelist' => ["127.0.0.1"], # 'maxretry' => 10, # 'findtime' => 60, # 'bantime' => 3600 # } # We do not recommend changing these directories. # gitlab_rails['dir'] = "/var/opt/gitlab/gitlab-rails" # gitlab_rails['log_directory'] = "/var/log/gitlab/gitlab-rails" ############################### # GitLab application settings # ############################### # gitlab_rails['uploads_directory'] = "/var/opt/gitlab/gitlab-rails/uploads" # gitlab_rails['rate_limit_requests_per_period'] = 10 # gitlab_rails['rate_limit_period'] = 60 # Change the initial default admin password. # Only applicable on inital setup, changing this setting after database is created and seeded # won't yield any change. # gitlab_rails['initial_root_password'] = "password" ############################ # GitLab database settings # ############################ ## see https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/doc/settings/database.md#database-settings ## Only needed if you use an external database. # gitlab_rails['db_adapter'] = "postgresql" # gitlab_rails['db_encoding'] = "unicode" # gitlab_rails['db_database'] = "gitlabhq_production" # gitlab_rails['db_pool'] = 10 # gitlab_rails['db_username'] = "gitlab" # gitlab_rails['db_password'] = nil # gitlab_rails['db_host'] = nil # gitlab_rails['db_port'] = 5432 # gitlab_rails['db_socket'] = nil # gitlab_rails['db_sslmode'] = nil # gitlab_rails['db_sslrootcert'] = nil ######################### # GitLab redis settings # ######################### ## see https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/doc/settings/redis.md#redis-settings ## Connect to your own redis instance. # gitlab_rails['redis_host'] = "127.0.0.1" # gitlab_rails['redis_port'] = nil # gitlab_rails['redis_password'] = nil # gitlab_rails['redis_database'] = 0 # gitlab_rails['redis_socket'] = "/var/opt/gitlab/redis/redis.socket" ################################ # GitLab email server settings # ################################ # see https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/doc/settings/smtp.md#smtp-settings # Use smtp instead of sendmail/postfix. gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.163.com" gitlab_rails['smtp_port'] = 25 gitlab_rails['smtp_user_name'] = "xxxxxxxx@163.com" gitlab_rails['smtp_password'] = "mjaiuhvi" gitlab_rails['smtp_domain'] = "163.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false gitlab_rails['smtp_openssl_verify_mode'] = 'none' # Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert', see http://api.rubyonrails.org/classes/ActionMailer/Base.html # gitlab_rails['smtp_ca_path'] = "/etc/ssl/certs" # gitlab_rails['smtp_ca_file'] = "/etc/ssl/certs/ca-certificates.crt" ########################## # GitLab git http server # ########################## # see https://gitlab.com/gitlab-org/gitlab-git-http-server/blob/master/README.md # gitlab_git_http_server['enable'] = true # gitlab_git_http_server['ha'] = false # gitlab_git_http_server['repo_root'] = "/var/opt/gitlab/git-data/repositories" # gitlab_git_http_server['listen_network'] = "unix" # gitlab_git_http_server['listen_umask'] = 000 # gitlab_git_http_server['listen_addr'] = "/var/opt/gitlab/gitlab-git-http-server/socket" # gitlab_git_http_server['auth_backend'] = "http://localhost:8080" # gitlab_git_http_server['pprof_listen_addr'] = "''" # put an empty string on the command line # gitlab_git_http_server['dir'] = "/var/opt/gitlab/gitlab-git-http-server" # gitlab_git_http_server['log_dir'] = "/var/log/gitlab/gitlab-git-http-server" ############### # GitLab user # ############### ## see https://gitlab.com/gitlab-org/omnibus-gitlab/tree/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#changing-the-name-of-the-git-user-group ## Modify default git user. user['username'] = "gitlab" user['group'] = "gitlab" # user['uid'] = nil # user['gid'] = nil # # The shell for the git user #user['shell'] = "/bin/sh" # # The home directory for the git user #user['home'] = "/var/opt/gitlab" #user['git_user_name'] = "GitLab" user['git_user_email'] = "xxxxxxxx@163.com" ################## # GitLab Unicorn # ################## ## Tweak unicorn settings. # unicorn['worker_timeout'] = 60 # unicorn['worker_processes'] = 2 ## Advanced settings # unicorn['listen'] = '127.0.0.1' # unicorn['port'] = 8080 # unicorn['socket'] = '/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket' # unicorn['pidfile'] = '/opt/gitlab/var/unicorn/unicorn.pid' # unicorn['tcp_nopush'] = true # unicorn['backlog_socket'] = 1024 # Make sure somaxconn is equal or higher then backlog_socket # unicorn['somaxconn'] = 1024 # We do not recommend changing this setting # unicorn['log_directory'] = "/var/log/gitlab/unicorn" ## Only change these settings if you understand well what they mean ## see https://about.gitlab.com/2015/06/05/how-gitlab-uses-unicorn-and-unicorn-worker-killer/ ## and https://github.com/kzk/unicorn-worker-killer # unicorn['worker_memory_limit_min'] = "200*(1024**2)" # unicorn['worker_memory_limit_max'] = "250*(1024**2)" ################## # GitLab Sidekiq # ################## # sidekiq['log_directory'] = "/var/log/gitlab/sidekiq" # sidekiq['shutdown_timeout'] = 4 ################ # gitlab-shell # ################ # gitlab_shell['audit_usernames'] = false # gitlab_shell['log_level'] = 'INFO' # gitlab_shell['http_settings'] = { user: 'username', password: 'password', ca_file: '/etc/ssl/cert.pem', ca_path: '/etc/pki/tls/certs', self_signed_cert: false} # gitlab_shell['log_directory'] = "/var/log/gitlab/gitlab-shell/" ## If enabled, git-annex needs to be installed on the server where gitlab is setup # For Debian and Ubuntu systems this can be done with: sudo apt-get install git-annex # For CentOS: sudo yum install epel-release && sudo yum install git-annex # gitlab_shell['git_annex_enabled'] = false ##################### # GitLab PostgreSQL # ##################### postgresql['enable'] = true # postgresql['listen_address'] = nil postgresql['port'] = 5432 postgresql['data_dir'] = "/var/opt/gitlab/postgresql/data" postgresql['shared_buffers'] = "10MB" # recommend value is 1/4 of total RAM, up to 14GB. ## Advanced settings # postgresql['ha'] = false # postgresql['dir'] = "/var/opt/gitlab/postgresql" postgresql['dir'] = "/tmp" # postgresql['log_directory'] = "/var/log/gitlab/postgresql" # postgresql['username'] = "gitlab-psql" # postgresql['uid'] = nil # postgresql['gid'] = nil # postgresql['shell'] = "/bin/sh" postgresql['home'] = "/var/opt/gitlab/postgresql" # postgresql['user_path'] = "/opt/gitlab/embedded/bin:/opt/gitlab/bin:$PATH" postgresql['sql_user'] = "gitlab" postgresql['sql_ci_user'] = "gitlab_ci" postgresql['max_connections'] = 200 # postgresql['md5_auth_cidr_addresses'] = [] # postgresql['trust_auth_cidr_addresses'] = [] # postgresql['shmmax'] = 17179869184 # or 4294967295 # postgresql['shmall'] = 4194304 # or 1048575 # postgresql['work_mem'] = "8MB" # postgresql['effective_cache_size'] = "1MB" # postgresql['checkpoint_segments'] = 10 postgresql['checkpoint_timeout'] = "5min" # postgresql['checkpoint_completion_target'] = 0.9 postgresql['checkpoint_warning'] = "60s" ################ # GitLab Redis # ################ ## Can be disabled if you are using your own redis instance. # redis['enable'] = true # redis['username'] = "gitlab-redis" # redis['uid'] = nil # redis['gid'] = nil ##################### # GitLab Web server # ##################### ## see: https://gitlab.com/gitlab-org/omnibus-gitlab/tree/629def0a7a26e7c2326566f0758d4a27857b52a3/doc/settings/nginx.md#using-a-non-bundled-web-server ## When bundled nginx is disabled we need to add the external webserver user to the GitLab webserver group. # web_server['external_users'] = [] # web_server['username'] = 'gitlab-www' # web_server['group'] = 'gitlab-www' # web_server['uid'] = nil # web_server['gid'] = nil # web_server['shell'] = '/bin/false' # web_server['home'] = '/var/opt/gitlab/nginx' ################ # GitLab Nginx # ################ ## see: https://gitlab.com/gitlab-org/omnibus-gitlab/tree/629def0a7a26e7c2326566f0758d4a27857b52a3/doc/settings/nginx.md # nginx['enable'] = true # nginx['client_max_body_size'] = '250m' # nginx['redirect_http_to_https'] = false # nginx['redirect_http_to_https_port'] = 80 # nginx['ssl_client_certificate'] = "/etc/gitlab/ssl/ca.crt" # Most root CA's are included by default # nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt" # nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key" # nginx['ssl_ciphers'] = "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256" # nginx['ssl_prefer_server_ciphers'] = "on" # nginx['ssl_protocols'] = "TLSv1 TLSv1.1 TLSv1.2" # recommended by https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html & https://cipherli.st/ # nginx['ssl_session_cache'] = "builtin:1000 shared:SSL:10m" # recommended in http://nginx.org/en/docs/http/ngx_http_ssl_module.html # nginx['ssl_session_timeout'] = "5m" # default according to http://nginx.org/en/docs/http/ngx_http_ssl_module.html # nginx['ssl_dhparam'] = nil # Path to dhparams.pem, eg. /etc/gitlab/ssl/dhparams.pem # nginx['listen_addresses'] = ['*'] # nginx['listen_port'] = nil # override only if you use a reverse proxy: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#setting-the-nginx-listen-port # nginx['listen_https'] = nil # override only if your reverse proxy internally communicates over HTTP: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#supporting-proxied-ssl # nginx['custom_gitlab_server_config'] = "location ^~ /foo-namespace/bar-project/raw/ {\n deny all;\n}\n" # nginx['custom_nginx_config'] = "include /etc/nginx/conf.d/example.conf;" # nginx['proxy_read_timeout'] = 300 # nginx['proxy_connect_timeout'] = 300 ## Advanced settings # nginx['dir'] = "/var/opt/gitlab/nginx" # nginx['log_directory'] = "/var/log/gitlab/nginx" # nginx['worker_processes'] = 4 # nginx['worker_connections'] = 10240 # nginx['log_format'] = '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"' # nginx['sendfile'] = 'on' # nginx['tcp_nopush'] = 'on' # nginx['tcp_nodelay'] = 'on' # nginx['gzip'] = "on" # nginx['gzip_http_version'] = "1.0" # nginx['gzip_comp_level'] = "2" # nginx['gzip_proxied'] = "any" # nginx['gzip_types'] = [ "text/plain", "text/css", "application/x-javascript", "text/xml", "application/xml", "application/xml+rss", "text/javascript", "application/json" ] # nginx['keepalive_timeout'] = 65 # nginx['cache_max_size'] = '5000m' ################## # GitLab Logging # ################## ## see: https://gitlab.com/gitlab-org/omnibus-gitlab/tree/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#logs # logging['svlogd_size'] = 200 * 1024 * 1024 # rotate after 200 MB of log data # logging['svlogd_num'] = 30 # keep 30 rotated log files # logging['svlogd_timeout'] = 24 * 60 * 60 # rotate after 24 hours # logging['svlogd_filter'] = "gzip" # compress logs with gzip # logging['svlogd_udp'] = nil # transmit log messages via UDP # logging['svlogd_prefix'] = nil # custom prefix for log messages # logging['logrotate_frequency'] = "daily" # rotate logs daily # logging['logrotate_size'] = nil # do not rotate by size by default # logging['logrotate_rotate'] = 30 # keep 30 rotated logs # logging['logrotate_compress'] = "compress" # see 'man logrotate' # logging['logrotate_method'] = "copytruncate" # see 'man logrotate' # logging['logrotate_postrotate'] = nil # no postrotate command by default # Enterprise Edition only # logging['udp_log_shipping_host'] = nil # remote host to ship log messages to via UDP # logging['udp_log_shipping_port'] = 514 # remote host to ship log messages to via UDP ############# # Logrotate # ############# ## see: https://gitlab.com/gitlab-org/omnibus-gitlab/tree/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#logrotate ## You can disable built in logrotate feature. # logrotate['enable'] = true ############################# # Users and groups accounts # ############################# ## Should omnibus-gitlab package manage users and groups accounts. ## Only set if creating accounts manually ## #user['username'] = "gitlab" #user['group'] = "gitlab" # manage_accounts['enable'] = true ####### # Git # ####### ## Advanced setting for configuring git system settings for omnibus-gitlab internal git ## For multiple options under one header use array of comma separated values, eg. ## { "receive" => ["fsckObjects = true"], "alias" => ["st = status", "co = checkout"] } # omnibus_gitconfig['system'] = { "receive" => ["fsckObjects = true"] } ############################################ # Url on which GitLab CI will be reachable # ############################################ ## see https://gitlab.com/gitlab-org/omnibus-gitlab/tree/629def0a7a26e7c2326566f0758d4a27857b52a3/doc/gitlab-ci/README.md # ci_external_url 'http://ci.example.com' ################################# # application.yml configuration # ################################# # gitlab_ci['gitlab_server'] = { "url" => 'http://gitlab.example.com', "app_id" => '12345678', "app_secret" => 'QWERTY12345' } # gitlab_ci['gitlab_ci_email_from'] = 'gitlab-ci@example.com' # gitlab_ci['gitlab_ci_support_email'] = 'gitlab-ci@example.com' # gitlab_ci['gitlab_ci_all_broken_builds'] = true # gitlab_ci['gitlab_ci_add_pusher'] = true # gitlab_ci['builds_directory'] = '/var/opt/gitlab/gitlab-ci/builds' # gitlab_ci['gravatar_enabled'] = true # gitlab_ci['gravatar_plain_url'] = "http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=mm" # gitlab_ci['gravatar_ssl_url'] = "https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=mm" ## For setting up backups ## see https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#backups # gitlab_ci['backup_path'] = "/var/opt/gitlab/ci-backups" # gitlab_ci['backup_keep_time'] = 604800 # gitlab_ci['backup_upload_connection'] = { # 'provider' => 'AWS', # 'region' => 'eu-west-1', # 'aws_access_key_id' => 'AKIAKIAKI', # 'aws_secret_access_key' => 'secret123' # } # gitlab_ci['backup_upload_remote_directory'] = 'my.s3.bucket' # gitlab_ci['backup_multipart_chunk_size'] = 104857600 ############################### # GitLab CI database settings # ############################### ## see https://gitlab.com/gitlab-org/omnibus-gitlab/tree/629def0a7a26e7c2326566f0758d4a27857b52a3/doc/settings/database.md#database-settings ## Only needed if you use an external database. # gitlab_ci['db_adapter'] = "postgresql" # gitlab_ci['db_encoding'] = "unicode" # gitlab_ci['db_database'] = "gitlab_ci_production" # gitlab_ci['db_pool'] = 10 # gitlab_ci['db_username'] = "gitlab_ci" # gitlab_ci['db_password'] = nil # gitlab_ci['db_host'] = nil # gitlab_ci['db_port'] = 5432 # gitlab_ci['db_socket'] = nil # gitlab_ci['db_sslmode'] = nil # gitlab_ci['db_sslrootcert'] = nil ############################ # GitLab CI redis settings # ############################ ## see https://gitlab.com/gitlab-org/omnibus-gitlab/tree/629def0a7a26e7c2326566f0758d4a27857b52a3/doc/settings/redis.md#redis-settings ## Connect to your own redis instance. # gitlab_ci['redis_host'] = "127.0.0.1" # gitlab_ci['redis_port'] = nil # gitlab_ci['redis_socket'] = "/var/opt/gitlab/ci-redis/redis.socket" ################################### # GitLab CI email server settings # ################################### ## see https://gitlab.com/gitlab-org/omnibus-gitlab/tree/629def0a7a26e7c2326566f0758d4a27857b52a3/doc/settings/smtp.md#smtp-settings # gitlab_ci['smtp_enable'] = true # gitlab_ci['smtp_address'] = "smtp.server" # gitlab_ci['smtp_port'] = 456 # gitlab_ci['smtp_user_name'] = "smtp user" # gitlab_ci['smtp_password'] = "smtp password" # gitlab_ci['smtp_domain'] = "example.com" # gitlab_ci['smtp_authentication'] = "login" # gitlab_ci['smtp_enable_starttls_auto'] = true # gitlab_ci['smtp_tls'] = false # gitlab_ci['smtp_openssl_verify_mode'] = false ############# # GitLab CI # ############# # gitlab_ci['schedule_builds_minute'] = "0" # gitlab_ci['env'] = { # 'BUNDLE_GEMFILE' => "/opt/gitlab/embedded/service/gitlab-ci/Gemfile", # 'PATH' => "/opt/gitlab/bin:/opt/gitlab/embedded/bin:/bin:/usr/bin" # } # gitlab_ci['username'] = "gitlab-ci" # gitlab_ci['uid'] = nil # gitlab_ci['gid'] = nil ##################### # GitLab CI Unicorn # ##################### ## Tweak unicorn settings. # ci_unicorn['worker_processes'] = 2 # ci_unicorn['worker_timeout'] = 60 ## Advanced settings # ci_unicorn['listen'] = '127.0.0.1' # ci_unicorn['port'] = 8181 # ci_unicorn['socket'] = '/var/opt/gitlab/gitlab-ci/sockets/gitlab.socket' # ci_unicorn['pidfile'] = '/opt/gitlab/var/ci-unicorn/unicorn.pid' # ci_unicorn['tcp_nopush'] = true # ci_unicorn['backlog_socket'] = 1024 ################### # GitLab CI Redis # ################### ## see https://gitlab.com/gitlab-org/omnibus-gitlab/tree/629def0a7a26e7c2326566f0758d4a27857b52a3/doc/settings/redis.md ## You can turn off bundled redis if you want to use your own redis instanance # ci_redis['enable'] = true ################### # GitLab CI NGINX # ################### ## see https://gitlab.com/gitlab-org/omnibus-gitlab/tree/629def0a7a26e7c2326566f0758d4a27857b52a3/doc/settings/nginx.md ## You can tell the bundled NGINX that it should not serve up GitLab CI by setting ci_nginx['enable'] to false. # ci_nginx['enable'] = false # ci_nginx['client_max_body_size'] = '250m' # ci_nginx['redirect_http_to_https'] = false # ci_nginx['redirect_http_to_https_port'] = 80 # ci_nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt" # ci_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key" # ci_nginx['ssl_ciphers'] = "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256" # ci_nginx['ssl_prefer_server_ciphers'] = "on" # ci_nginx['ssl_protocols'] = "TLSv1 TLSv1.1 TLSv1.2" # recommended by https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html & https://cipherli.st/ # ci_nginx['ssl_session_cache'] = "builtin:1000 shared:SSL:10m" # recommended in http://nginx.org/en/docs/http/ngx_http_ssl_module.html # ci_nginx['ssl_session_timeout'] = "5m" # default according to http://nginx.org/en/docs/http/ngx_http_ssl_module.html # ci_nginx['ssl_dhparam'] = nil # Path to ci_dhparams.pem, eg. /etc/gitlab/ssl/ci_dhparams.pem # ci_nginx['listen_addresses'] = ['*'] # ci_nginx['listen_port'] = nil # override only if you use a reverse proxy: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#setting-the-nginx-listen-port # ci_nginx['listen_https'] = nil # override only if your reverse proxy internally communicates over HTTP: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#supporting-proxied-ssl # ci_nginx['custom_gitlab_ci_server_config'] = "location ^~ /foo-namespace/bar-project/raw/ {\n deny all;\n}\n" # ci_nginx['custom_nginx_config'] = "include /etc/nginx/conf.d/example.conf;" # ci_nginx['resolver'] = "8.8.8.8 8.8.4.4" ## Advanced settings # ci_nginx['dir'] = "/var/opt/gitlab/nginx" # ci_nginx['log_directory'] = "/var/log/gitlab/nginx" # ci_nginx['worker_processes'] = 4 # ci_nginx['worker_connections'] = 10240 # ci_nginx['sendfile'] = 'on' # ci_nginx['tcp_nopush'] = 'on' # ci_nginx['tcp_nodelay'] = 'on' # ci_nginx['gzip'] = "on" # ci_nginx['gzip_http_version'] = "1.0" # ci_nginx['gzip_comp_level'] = "2" # ci_nginx['gzip_proxied'] = "any" # ci_nginx['gzip_types'] = [ "text/plain", "text/css", "application/x-javascript", "text/xml", "application/xml", "application/xml+rss", "text/javascript", "application/json" ] # ci_nginx['keepalive_timeout'] = 65 # ci_nginx['cache_max_size'] = '5000m' ##################### # GitLab Mattermost # ##################### # mattermost_external_url 'http://mattermost.example.com' # # mattermost['enable'] = false # mattermost['username'] = 'mattermost' # mattermost['group'] = 'mattermost' # mattermost['home'] = '/var/opt/gitlab/mattermost' # mattermost['database_name'] = 'mattermost_production' # mattermost['log_file_directory'] = '/var/log/gitlab/mattermost' # mattermost['log_console_enable'] = true # mattermost['log_console_level'] = 'INFO' # mattermost['log_file_enable'] = false # mattermost['log_file_level'] = 'INFO' # mattermost['log_file_format'] = nil # mattermost['service_site_name'] = "GitLab Mattermost" # mattermost['service_mode'] = 'beta' # mattermost['service_allow_testing'] = false # mattermost['service_use_ssl'] = false # mattermost['service_port'] = "8065" # mattermost['service_version'] = "developer" # mattermost['service_analytics_url'] = nil # mattermost['service_use_local_storage'] = true # mattermost['service_storage_directory'] = "/var/opt/gitlab/mattermost/data" # mattermost['service_allowed_login_attempts'] = 10 # mattermost['service_disable_email_signup'] = true # mattermost['sql_driver_name'] = 'mysql' # mattermost['sql_data_source'] = "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8" # mattermost['sql_data_source_replicas'] = ["mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8"] # mattermost['sql_max_idle_conns'] = 10 # mattermost['sql_max_open_conns'] = 10 # mattermost['sql_trace'] = false # mattermost['oauth'] = {'gitlab' => {'Allow' => true, 'Secret' => "123", 'Id' => "123", "AuthEndpoint" => "aa", "TokenEndpoint" => "bb", "UserApiEndpoint" => "cc", "Scope" => "" }} # mattermost['aws'] = {'S3AccessKeyId' => '123', 'S3SecretAccessKey' => '123', 'S3Bucket' => 'aa', 'S3Region' => 'bb'} # mattermost['image_thumbnail_width'] = 120 # mattermost['image_thumbnail_height'] = 100 # mattermost['image_preview_width'] = 1024 # mattermost['image_preview_height'] = 0 # mattermost['image_profile_width'] = 128 # mattermost['image_profile_height'] = 128 # mattermost['image_initial_font'] = 'luximbi.ttf' # mattermost['email_by_pass_email'] = true # mattermost['email_smtp_username'] = nil # mattermost['email_smtp_password'] = nil # mattermost['email_smtp_server'] = nil # mattermost['email_use_tls'] = false # mattermost['email_use_start_tls'] = false # mattermost['email_feedback_email'] = nil # mattermost['email_feedback_name'] = nil # mattermost['email_apple_push_server'] = nil # mattermost['email_apple_push_cert_public'] = nil # mattermost['email_apple_push_cert_private'] = nil # mattermost['ratelimit_use_rate_limiter'] = true # mattermost['ratelimit_per_sec'] = 10 # mattermost['ratelimit_memory_store_size'] = 10000 # mattermost['ratelimit_vary_by_remote_addr'] = true # mattermost['ratelimit_vary_by_header'] = nil # mattermost['privacy_show_email_address'] = true # mattermost['privacy_show_phone_number'] = true # mattermost['privacy_show_skype_id'] = true # mattermost['privacy_show_full_name'] = true # mattermost['team_max_users_per_team'] = 150 # mattermost['team_allow_public_link'] = true # mattermost['team_allow_valet_default'] = false # mattermost['team_terms_link'] = '/static/help/configure_links.html' # mattermost['team_privacy_link'] = '/static/help/configure_links.html' # mattermost['team_about_link'] = '/static/help/configure_links.html' # mattermost['team_help_link'] = '/static/help/configure_links.html' # mattermost['team_report_problem_link'] = '/static/help/configure_links.html' # mattermost['team_tour_link'] = '/static/help/configure_links.html' # mattermost['team_default_color'] = '#2389D7' # mattermost['team_disable_team_creation'] = true # mattermost['team_restrict_creation_to_domains'] = "gmail.com" #################### # Mattermost NGINX # #################### # mattermost_nginx['enable'] = false # mattermost_nginx['client_max_body_size'] = '250m' # mattermost_nginx['redirect_http_to_https'] = false # mattermost_nginx['redirect_http_to_https_port'] = 80 # mattermost_nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt" # mattermost_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key" # mattermost_nginx['ssl_ciphers'] = "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256" # mattermost_nginx['ssl_prefer_server_ciphers'] = "on" # mattermost_nginx['ssl_protocols'] = "TLSv1 TLSv1.1 TLSv1.2" # recommended by https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html & https://cipherli.st/ # mattermost_nginx['ssl_session_cache'] = "builtin:1000 shared:SSL:10m" # recommended in http://nginx.org/en/docs/http/ngx_http_ssl_module.html # mattermost_nginx['ssl_session_timeout'] = "5m" # default according to http://nginx.org/en/docs/http/ngx_http_ssl_module.html # mattermost_nginx['ssl_dhparam'] = nil # Path to ci_dhparams.pem, eg. /etc/gitlab/ssl/ci_dhparams.pem # mattermost_nginx['listen_addresses'] = ['*'] # mattermost_nginx['listen_port'] = nil # override only if you use a reverse proxy: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#setting-the-nginx-listen-port # mattermost_nginx['listen_https'] = nil # override only if your reverse proxy internally communicates over HTTP: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#supporting-proxied-ssl # mattermost_nginx['custom_gitlab_mattermost_server_config'] = "location ^~ /foo-namespace/bar-project/raw/ {\n deny all;\n}\n" # mattermost_nginx['custom_nginx_config'] = "include /etc/nginx/conf.d/example.conf;" ## Advanced settings # mattermost_nginx['dir'] = "/var/opt/gitlab/nginx" # mattermost_nginx['log_directory'] = "/var/log/gitlab/nginx" # mattermost_nginx['worker_processes'] = 4 # mattermost_nginx['worker_connections'] = 10240 # mattermost_nginx['sendfile'] = 'on' # mattermost_nginx['tcp_nopush'] = 'on' # mattermost_nginx['tcp_nodelay'] = 'on' # mattermost_nginx['gzip'] = "on" # mattermost_nginx['gzip_http_version'] = "1.0" # mattermost_nginx['gzip_comp_level'] = "2" # mattermost_nginx['gzip_proxied'] = "any" # mattermost_nginx['gzip_types'] = [ "text/plain", "text/css", "application/x-javascript", "text/xml", "application/xml", "application/xml+rss", "text/javascript", "application/json" ] # mattermost_nginx['keepalive_timeout'] = 65 # mattermost_nginx['cache_max_size'] = '5000m'
注:在这里唯一需要修改的就是把文件里xxxxxxxx@163.com这个邮件地址改为自己真实可用的邮箱地址即可,好像一共有三处;其次别忘了在这里修改自己的邮箱密码,如果是163邮箱,录入的密码不是真实的邮箱密码,而是代理密码,即一个加密后的密码串,具体情况自己可登录163邮箱查看。
gitlab_rails['smtp_user_name'] = "xxxxxxxx@163.com" gitlab_rails['smtp_password'] = "mjaiuhvi"
第七步:(修改PostgreSQL的配置文件)
在这里需要依次修改两个文件(如果你需要远程访问PostgreSQL数据库,需要再额外的修改postgresql.conf文件),分别为pg_hba.conf与postgresql.conf文件
sudo nano /var/opt/gitlab/postgresql/data/pg_hba.conf sudo nano /var/opt/gitlab/postgresql/data/postgresql.conf
1)配置待访问的主机IP(客户端)
# This file is managed by gitlab-ctl. Manual changes will be # erased! To change the contents below, edit /etc/gitlab/gitlab.rb # and run `sudo gitlab-ctl reconfigure`. # PostgreSQL Client Authentication Configuration File # =================================================== # # Refer to the "Client Authentication" section in the # PostgreSQL documentation for a complete description # of this file. A short synopsis follows. # # This file controls: which hosts are allowed to connect, how clients # are authenticated, which PostgreSQL user names they can use, which # databases they can access. Records take one of these forms: # # local DATABASE USER METHOD [OPTION] # host DATABASE USER CIDR-ADDRESS METHOD [OPTION] # hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTION] # hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTION] # # (The uppercase items must be replaced by actual values.) # # The first field is the connection type: "local" is a Unix-domain socket, # "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an # SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket. # # DATABASE can be "all", "sameuser", "samerole", a database name, or # a comma-separated list thereof. # # USER can be "all", a user name, a group name prefixed with "+", or # a comma-separated list thereof. In both the DATABASE and USER fields # you can also write a file name prefixed with "@" to include names from # a separate file. # # CIDR-ADDRESS specifies the set of hosts the record matches. # It is made up of an IP address and a CIDR mask that is an integer # (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies # the number of significant bits in the mask. Alternatively, you can write # an IP address and netmask in separate columns to specify the set of hosts. # # METHOD can be "trust", "reject", "md5", "crypt", "password", "gss", "sspi", # "krb5", "ident", "pam" or "ldap". Note that "password" sends passwords # in clear text; "md5" is preferred since it sends encrypted passwords. # # OPTION is the ident map or the name of the PAM service, depending on METHOD. # # Database and user names containing spaces, commas, quotes and other special # characters must be quoted. Quoting one of the keywords "all", "sameuser" or # "samerole" makes the name lose its special character, and just match a # database or username with that name. # # This file is read on server startup and when the postmaster receives # a SIGHUP signal. If you edit the file on a running system, you have # to SIGHUP the postmaster for the changes to take effect. You can use # "pg_ctl reload" to do that. # Put your actual configuration here # ---------------------------------- # # If you want to allow non-local connections, you need to add more # "host" records. In that case you will also need to make PostgreSQL listen # on a non-local interface via the listen_addresses configuration parameter, # or via the -i or -h command line switches. # # TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust host all all 192.168.30.0/24 trust host all all 192.168.10.0/24 trust #map=gitlab
如果希望某个IP段的主机也可以访问数据库,只需再增加这个段就可以了,例如192.168.10.0~192.168.10.255,就可以写成以下的方式
host all all 192.168.10.0/24 trust
2)启用监听所有客户端
# This file is managed by gitlab-ctl. Manual changes will be # erased! To change the contents below, edit /etc/gitlab/gitlab.rb # and run `sudo gitlab-ctl reconfigure`. # ----------------------------- # PostgreSQL configuration file # ----------------------------- # # This file consists of lines of the form: # # name = value # # (The "=" is optional.) Whitespace may be used. Comments are introduced with # "#" anywhere on a line. The complete list of parameter names and allowed # values can be found in the PostgreSQL documentation. # # The commented-out settings shown in this file represent the default values. # Re-commenting a setting is NOT sufficient to revert it to the default value; # you need to reload the server. # # This file is read on server startup and when the server receives a SIGHUP # signal. If you edit the file on a running system, you have to SIGHUP the # server for the changes to take effect, or use "pg_ctl reload". Some # parameters, which are marked below, require a server shutdown and restart to # take effect. # # Any parameter can also be given as a command-line option to the server, e.g., # "postgres -c log_connections=on". Some parameters can be changed at run time # with the "SET" SQL command. # # Memory units: kB = kilobytes Time units: ms = milliseconds # MB = megabytes s = seconds # GB = gigabytes min = minutes # h = hours # d = days #------------------------------------------------------------------------------ # FILE LOCATIONS #------------------------------------------------------------------------------ # The default values of these variables are driven from the -D command-line # option or PGDATA environment variable, represented here as ConfigDir. #data_directory = 'ConfigDir' # use data in another directory # (change requires restart) #hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file # (change requires restart) #ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file # (change requires restart) # If external_pid_file is not explicitly set, no extra PID file is written. #external_pid_file = '(none)' # write an extra PID file # (change requires restart) #------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost', '*' = all # (change requires restart) port = 5432 # (change requires restart) max_connections = 200 # (change requires restart) # Note: Increasing max_connections costs ~400 bytes of shared memory per # connection slot, plus lock space (see max_locks_per_transaction). #superuser_reserved_connections = 3 # (change requires restart) unix_socket_directory = '/var/opt/gitlab/postgresql' # (change requires restart) #unix_socket_group = '' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation # (change requires restart) #bonjour = off # advertise server via Bonjour # (change requires restart) #bonjour_name = '' # defaults to the computer name # (change requires restart) # - Security and Authentication - #authentication_timeout = 1min # 1s-600s #ssl = off # (change requires restart) #ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH' # allowed SSL ciphers # (change requires restart) #ssl_renegotiation_limit = 512MB # amount of data between renegotiations #password_encryption = on #db_user_namespace = off # Kerberos and GSSAPI #krb_server_keyfile = '' #krb_srvname = 'postgres' # (Kerberos only) #krb_caseins_users = off # - TCP Keepalives - # see "man 7 tcp" for details #tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds; # 0 selects the system default #tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds; # 0 selects the system default #tcp_keepalives_count = 0 # TCP_KEEPCNT; # 0 selects the system default #------------------------------------------------------------------------------ # RESOURCE USAGE (except WAL) #------------------------------------------------------------------------------ # - Memory - shared_buffers = 10MB # min 128kB # (change requires restart) #temp_buffers = 8MB # min 800kB #max_prepared_transactions = 0 # zero disables the feature # (change requires restart) # Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory # per transaction slot, plus lock space (see max_locks_per_transaction). # It is not advisable to set max_prepared_transactions nonzero unless you # actively intend to use prepared transactions. work_mem = 8MB # min 64kB #maintenance_work_mem = 16MB # min 1MB #max_stack_depth = 2MB # min 100kB # - Kernel Resource Usage - #max_files_per_process = 1000 # min 25 # (change requires restart) #shared_preload_libraries = '' # (change requires restart) # - Cost-Based Vacuum Delay - #vacuum_cost_delay = 0ms # 0-100 milliseconds #vacuum_cost_page_hit = 1 # 0-10000 credits #vacuum_cost_page_miss = 10 # 0-10000 credits #vacuum_cost_page_dirty = 20 # 0-10000 credits #vacuum_cost_limit = 200 # 1-10000 credits # - Background Writer - #bgwriter_delay = 200ms # 10-10000ms between rounds #bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round #bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round # - Asynchronous Behavior - #effective_io_concurrency = 1 # 1-1000. 0 disables prefetching #------------------------------------------------------------------------------ # WRITE AHEAD LOG #------------------------------------------------------------------------------ # - Settings - #wal_level = minimal # minimal, archive, or hot_standby # (change requires restart) #fsync = on # turns forced synchronization on or off #synchronous_commit = on # synchronization level; on, off, or local #wal_sync_method = fsync # the default is the first option # supported by the operating system: # open_datasync # fdatasync (default on Linux) # fsync # fsync_writethrough # open_sync #full_page_writes = on # recover from partial page writes #wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers # (change requires restart) #wal_writer_delay = 200ms # 1-10000 milliseconds #commit_delay = 0 # range 0-100000, in microseconds #commit_siblings = 5 # range 1-1000 # - Checkpoints - checkpoint_segments = 10 # in logfile segments, min 1, 16MB each, default 3 checkpoint_timeout = 5min # range 30s-1h, default 5min checkpoint_completion_target = 0.9 # checkpoint target duration, 0.0 - 1.0, default 0.5 checkpoint_warning = 60s # 0 disables, default 30s # - Archiving - #archive_mode = off # allows archiving to be done # (change requires restart) #archive_command = '' # command to use to archive a logfile segment #archive_timeout = 0 # force a logfile segment switch after this # number of seconds; 0 disables #------------------------------------------------------------------------------ # REPLICATION #------------------------------------------------------------------------------ # - Master Server - # These settings are ignored on a standby server #max_wal_senders = 0 # max number of walsender processes # (change requires restart) #wal_sender_delay = 1s # walsender cycle time, 1-10000 milliseconds #wal_keep_segments = 0 # in logfile segments, 16MB each; 0 disables #vacuum_defer_cleanup_age = 0 # number of xacts by which cleanup is delayed #replication_timeout = 60s # in milliseconds; 0 disables #synchronous_standby_names = '' # standby servers that provide sync rep # comma-separated list of application_name # from standby(s); '*' = all # - Standby Servers - # These settings are ignored on a master server #hot_standby = off # "on" allows queries during recovery # (change requires restart) #max_standby_archive_delay = 30s # max delay before canceling queries # when reading WAL from archive; # -1 allows indefinite delay #max_standby_streaming_delay = 30s # max delay before canceling queries # when reading streaming WAL; # -1 allows indefinite delay #wal_receiver_status_interval = 10s # send replies at least this often # 0 disables #hot_standby_feedback = off # send info from standby to prevent # query conflicts #------------------------------------------------------------------------------ # QUERY TUNING #------------------------------------------------------------------------------ # - Planner Method Configuration - #enable_bitmapscan = on #enable_hashagg = on #enable_hashjoin = on #enable_indexscan = on #enable_material = on #enable_mergejoin = on #enable_nestloop = on #enable_seqscan = on #enable_sort = on #enable_tidscan = on # - Planner Cost Constants - #seq_page_cost = 1.0 # measured on an arbitrary scale #random_page_cost = 4.0 # same scale as above #cpu_tuple_cost = 0.01 # same scale as above #cpu_index_tuple_cost = 0.005 # same scale as above #cpu_operator_cost = 0.0025 # same scale as above effective_cache_size = 2048MB # Default 128MB # - Genetic Query Optimizer - #geqo = on #geqo_threshold = 12 #geqo_effort = 5 # range 1-10 #geqo_pool_size = 0 # selects default based on effort #geqo_generations = 0 # selects default based on effort #geqo_selection_bias = 2.0 # range 1.5-2.0 #geqo_seed = 0.0 # range 0.0-1.0 # - Other Planner Options - #default_statistics_target = 100 # range 1-10000 #constraint_exclusion = partition # on, off, or partition #cursor_tuple_fraction = 0.1 # range 0.0-1.0 #from_collapse_limit = 8 #join_collapse_limit = 8 # 1 disables collapsing of explicit # JOIN clauses #------------------------------------------------------------------------------ # ERROR REPORTING AND LOGGING #------------------------------------------------------------------------------ # - Where to Log - #log_destination = 'stderr' # Valid values are combinations of # stderr, csvlog, syslog, and eventlog, # depending on platform. csvlog # requires logging_collector to be on. # This is used when logging to stderr: #logging_collector = off # Enable capturing of stderr and csvlog # into log files. Required to be on for # csvlogs. # (change requires restart) # These are only used if logging_collector is on: #log_directory = 'pg_log' # directory where log files are written, # can be absolute or relative to PGDATA #log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern, # can include strftime() escapes #log_file_mode = 0600 # creation mode for log files, # begin with 0 to use octal notation #log_truncate_on_rotation = off # If on, an existing log file with the # same name as the new log file will be # truncated rather than appended to. # But such truncation only occurs on # time-driven rotation, not on restarts # or size-driven rotation. Default is # off, meaning append to existing files # in all cases. #log_rotation_age = 1d # Automatic rotation of logfiles will # happen after that time. 0 disables. #log_rotation_size = 10MB # Automatic rotation of logfiles will # happen after that much log output. # 0 disables. # These are relevant when logging to syslog: #syslog_facility = 'LOCAL0' #syslog_ident = 'postgres' #silent_mode = off # Run server silently. # DO NOT USE without syslog or # logging_collector # (change requires restart) # - When to Log - #client_min_messages = notice # values in order of decreasing detail: # debug5 # debug4 # debug3 # debug2 # debug1 # log # notice # warning # error #log_min_messages = warning # values in order of decreasing detail: # debug5 # debug4 # debug3 # debug2 # debug1 # info # notice # warning # error # log # fatal # panic #log_min_error_statement = error # values in order of decreasing detail: # debug5 # debug4 # debug3 # debug2 # debug1 # info # notice # warning # error # log # fatal # panic (effectively off) #log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements # and their durations, > 0 logs only # statements running at least this number # of milliseconds # - What to Log - #debug_print_parse = off #debug_print_rewritten = off #debug_print_plan = off #debug_pretty_print = on #log_checkpoints = off #log_connections = off #log_disconnections = off #log_duration = off #log_error_verbosity = default # terse, default, or verbose messages #log_hostname = off #log_line_prefix = '' # special values: # %a = application name # %u = user name # %d = database name # %r = remote host and port # %h = remote host # %p = process ID # %t = timestamp without milliseconds # %m = timestamp with milliseconds # %i = command tag # %e = SQL state # %c = session ID # %l = session line number # %s = session start timestamp # %v = virtual transaction ID # %x = transaction ID (0 if none) # %q = stop here in non-session # processes # %% = '%' # e.g. '<%u%%%d> ' #log_lock_waits = off # log lock waits >= deadlock_timeout #log_statement = 'none' # none, ddl, mod, all #log_temp_files = -1 # log temporary files equal or larger # than the specified size in kilobytes; # -1 disables, 0 logs all temp files #log_timezone = '(defaults to server environment setting)' #------------------------------------------------------------------------------ # RUNTIME STATISTICS #------------------------------------------------------------------------------ # - Query/Index Statistics Collector - #track_activities = on #track_counts = on #track_functions = none # none, pl, all #track_activity_query_size = 1024 # (change requires restart) #update_process_title = on #stats_temp_directory = 'pg_stat_tmp' # - Statistics Monitoring - #log_parser_stats = off #log_planner_stats = off #log_executor_stats = off #log_statement_stats = off #------------------------------------------------------------------------------ # AUTOVACUUM PARAMETERS #------------------------------------------------------------------------------ #autovacuum = on # Enable autovacuum subprocess? 'on' # requires track_counts to also be on. #log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and # their durations, > 0 logs only # actions running at least this number # of milliseconds. #autovacuum_max_workers = 3 # max number of autovacuum subprocesses # (change requires restart) #autovacuum_naptime = 1min # time between autovacuum runs #autovacuum_vacuum_threshold = 50 # min number of row updates before # vacuum #autovacuum_analyze_threshold = 50 # min number of row updates before # analyze #autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum #autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze #autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum # (change requires restart) #autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for # autovacuum, in milliseconds; # -1 means use vacuum_cost_delay #autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for # autovacuum, -1 means use # vacuum_cost_limit #------------------------------------------------------------------------------ # CLIENT CONNECTION DEFAULTS #------------------------------------------------------------------------------ # - Statement Behavior - #search_path = '"$user",public' # schema names #default_tablespace = '' # a tablespace name, '' uses the default #temp_tablespaces = '' # a list of tablespace names, '' uses # only default tablespace #check_function_bodies = on #default_transaction_isolation = 'read committed' #default_transaction_read_only = off #default_transaction_deferrable = off #session_replication_role = 'origin' #statement_timeout = 0 # in milliseconds, 0 is disabled #vacuum_freeze_min_age = 50000000 #vacuum_freeze_table_age = 150000000 #bytea_output = 'hex' # hex, escape #xmlbinary = 'base64' #xmloption = 'content' # - Locale and Formatting - datestyle = 'iso, mdy' #intervalstyle = 'postgres' #timezone = '(defaults to server environment setting)' #timezone_abbreviations = 'Default' # Select the set of available time zone # abbreviations. Currently, there are # Default # Australia # India # You can create your own file in # share/timezonesets/. #extra_float_digits = 0 # min -15, max 3 #client_encoding = sql_ascii # actually, defaults to database # encoding # These settings are initialized by initdb, but they can be changed. lc_messages = 'C' # locale for system error message # strings lc_monetary = 'C' # locale for monetary formatting lc_numeric = 'C' # locale for number formatting lc_time = 'C' # locale for time formatting # default configuration for text search default_text_search_config = 'pg_catalog.english' # - Other Defaults - #dynamic_library_path = '$libdir' #local_preload_libraries = '' #------------------------------------------------------------------------------ # LOCK MANAGEMENT #------------------------------------------------------------------------------ #deadlock_timeout = 1s #max_locks_per_transaction = 64 # min 10 # (change requires restart) # Note: Each lock table slot uses ~270 bytes of shared memory, and there are # max_locks_per_transaction * (max_connections + max_prepared_transactions) # lock table slots. #max_pred_locks_per_transaction = 64 # min 10 # (change requires restart) #------------------------------------------------------------------------------ # VERSION/PLATFORM COMPATIBILITY #------------------------------------------------------------------------------ # - Previous PostgreSQL Versions - #array_nulls = on #backslash_quote = safe_encoding # on, off, or safe_encoding #default_with_oids = off #escape_string_warning = on #lo_compat_privileges = off #quote_all_identifiers = off #sql_inheritance = on #standard_conforming_strings = on #synchronize_seqscans = on # - Other Platforms and Clients - #transform_null_equals = off #------------------------------------------------------------------------------ # ERROR HANDLING #------------------------------------------------------------------------------ #exit_on_error = off # terminate session on any error? #restart_after_crash = on # reinitialize after backend crash? #------------------------------------------------------------------------------ # CUSTOMIZED OPTIONS #------------------------------------------------------------------------------ #custom_variable_classes = '' # list of custom variable class names
在这个文件中主要是修改63行的listen_addresses = ''为listen_addresses = '*',这样就可以监听所有端口了。
最后一步:(启用所有配置并启动)
sudo gitlab-ctl reconfigure sudo gitlab-ctl start
访问http://localhost即可。
gitlab默认的数据库为gitlabhq_production,数据库登录用户名为gitlab-psql,数据库密码为空;
gitlab的用户信息分别保存在namespaces表与users表中。
相关文章推荐
- linux下环境变量简单配置
- Linux创建/删除/修改/密码/ 用户知识学习
- linux 时间同步
- Linux中如何使用附属属组创建文件
- linux中vim命令
- linux基础学习6
- Linux常用命令大全
- Linux下Minigui开发环境的搭建(PC+S3C2440
- linux端口监听命令
- linux下包管理命令yum与apt-get以及开发环境配置
- Maven插件wagon-maven-plugin自动化部署Java项目到Linux远程服务器
- Git 是什么?5分钟入门Git
- Linux crontab命令
- 一步一步实现Linux设备驱动的Helloworld模块
- Linux下编译内核配置选项简介
- Linux生成和使用so库
- 精华--CentOS多网卡配置
- linux服务器安全运维
- 企业日志分析之linux系统message收集展示
- Linux编译内核提示'make menuconfig' requires the ncurses libraries错误