{ "info": { "author": "Denis Darii", "author_email": "denis.darii@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Topic :: Software Development", "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Clustering", "Topic :: System :: Software Distribution", "Topic :: System :: Systems Administration" ], "description": "===========================================================================\npg_fabrep: Postgresql Streaming Replication with Fabric and Repmgr\n===========================================================================\n\nIntroduction\n============\n\npg_fabrep allow you to easy setup a **Postgresql** 9.x **Hot Standby Streaming Replication** Server With **Repmgr**.\n\nPatches are welcome! Feel free to fork and contribute to this project on:\n\n**bitbucket**: `bitbucket.org/DNX/pg_fabrep `_\n\n\n**github**: `github.com/DNX/pg_fabrep `_\n\n\nInstallation\n============\n\nThere are a few different ways to install pg_fabrep:\n\nUsing pip\n---------\nIf you have pip install available on your system, just type::\n\n pip install pg_fabrep\n\nIf you've already got an old version of pg_fabrep, and want to upgrade, use::\n\n pip install -U pg_fabrep\n\nInstalling from a directory\n---------------------------\nIf you've obtained a copy of pg_fabrep using either Mercurial or a downloadable\narchive, you'll need to install the copy you have system-wide. Try running::\n\n python setup.py develop\n\nIf that fails, you don't have ``setuptools`` or an equivalent installed;\neither install them, or run::\n\n python setup.py install\n\n\nHow to use pg_fabrep?\n=====================\n\nIf you have already installed pg_fabrep, you must proceed with the\nconfiguration of your cluster.\n\nConfiguration\n-------------\n\nCopy the scheleton for your cluster settings from path::\n\n $ cp /example_fabfile.py /fabfile.py\n\nHow to find your path? Just run::\n\n $ python -c \"import pg_fabrep; print(pg_fabrep.__path__)\"\n\nor directly:\n\n $ cp `python -c \"import pg_fabrep; print(pg_fabrep.__path__[0])\"`/example_fabfile.py /fabfile.py\n\nIn order to start **setup** task you must change only two parameters,\n**pgmaster_ip** and **pgslave_ip** inside you cluster configuration task in earlier created **fabfile.py**, all other parameters have default\nvalues and if you need you can change them too.\n\nHere is a list with all parameters you can change and a short explanation for each:\n\n- **env.configured**, don't change this, used for testing purposes\n- **env.postgres_version**, postgres version, can be: \"9.0\" or \"9.1\", default: \"9.1\"\n- **env.cluster_name**, name of your cluster - only numbers, letters and underscores, default: main\n- **env.cluster_port**, postgres cluster port, default: 5432\n- **env.pgmaster_ip**, the IP of your master server\n- **env.master_ssh_port**, ssh port on the master server, will be used by repmgr/rsync from the slave to sync the files from the master, default: 22\n- **env.master_node_number**, master node number, default: 1\n- **env.pgmaster_user_host**, user@host used by fabric to establish a ssh tunnel between the machine from where the \"setup\" is launched and the master server, default: \"root@\"\n- **env.master_pgconf_path**, master pgconf path, default: \"/etc/postgresql///\"\n- **env.master_pgdata_path**, master pgdata path, default: \"/var/lib/postgresql///\"\n- **env.pgslave_ip**, the IP of your slave server\n- **env.slave_node_number**, slave node number, default: 2\n- **env.pgslave_user_host**, user@host used by fabric to establish a ssh tunnel between the machine from where the \"setup\" is launched and the slave server, default: \"root@\"\n- **env.slave_pgconf_path**, slave pgconf path, default: \"\"\n- **env.slave_pgdata_path**, slave pgdata path, default: \"\"\n- **env.sync_db**, sync database used by repmgr, will be created if not exists, default: \"syncdb\"\n- **env.sync_user**, sync postgres user used by repmgr, will be created if not exists, default: \"syncuser\"\n- **env.sync_pass**, sync postgres user password, default: \"syncpass\"\n- **env.repmgr_deb**, repmgr_deb installer, default:\"postgresql-repmgr-_1.0.0.deb\"\n- **env.ask_confirmation**, always ask user for confirmation when run any tasks, default: True\n\n\nPlease pay attention to not have any tasks in your fabfile.py called:\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n* setup\n\n* test_configuration\n\nor\n\n* print_configuration\n\nbecause these names are reserved by pg_fabrep.\n\nTest your configuration first!\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\npg_fabrep come with its own automatic configuration tests. Each time you run\n**setup** task, configuration tests are called.\nAnyway, you can manually run these tests for your project configuration::\n\n fab test_configuration\n\nIf you run **test_configuration** manually, you'll observe some output about all your project settings.\n\nDo you need an example?\n~~~~~~~~~~~~~~~~~~~~~~~\n\nOk, let's assume you want to configure a cluster called \"cluster5444\".\nSo, what we know about it?\nwe know:\n\n* the cluster is called **cluster123**\n\n* the postgres version we want to be used is 9.1\n\n* the ip of the master server is: **11.11.11.11**\n\n* the ip of the slave server is: **22.22.22.22**\n\n* the port to be used in your cluster is 5444\n\n* on each server is installed ubuntu server\n\nOk, it's enough to setup the replication, let's do it!\nCreate a folder to place you cluster settings::\n\n $ mkdir ~/clusters/\n $ cd ~/clusters/\n\ncopy here the example_fabfile.py from ::\n\n # we found pg_fabrep installation path first\n $ python -c \"import pg_fabrep; print(pg_fabrep.__path__)\"\n $ cp /example_fabfile.py fabfile.py\n\nnow, in our current folder we have a file called **fabfile.py**\nwhich is going to be edited according with our needs.\n\n#. Change task name::\n\n # from:\n def example_cluster():\n # to:\n def cluster123():\n\n#. Change env.pgmaster_ip::\n\n # from:\n env.pgmaster_ip = \"\"\n # to:\n env.pgmaster_ip = \"11.11.11.11\"\n\n#. Change env.pgslave_ip::\n\n # from:\n env.pgslave_ip = \"\"\n # to:\n env.pgslave_ip = \"22.22.22.22\"\n\nnot, let's test our configuration::\n\n fab cluster123 test_configuration\n\nyou must see a message::\n\n Configuration tests passed!\n\n\nSetup your replication\n----------------------\n\nAssuming you've set your cluster details in the fabfile.py now you are ready to launch the setup::\n\n fab cluster123 setup\n\nduring this process you can see all the output of the commands launched on\nthe master and slave servers. At some point you may be asked for some\ninformation as sudo user password.\nAt the end of this task you must view a message saying that the setup\nsuccessful ended.\nNow you can go on with the real tests of the replication.", "description_content_type": null, "docs_url": null, "download_url": "http://bitbucket.org/DNX/pg_fabrep/downloads", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/DNX/pg_fabrep/", "keywords": "postgres streaming replication fabric repmgr", "license": "BSD License", "maintainer": null, "maintainer_email": null, "name": "pg_fabrep", "package_url": "https://pypi.org/project/pg_fabrep/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pg_fabrep/", "project_urls": { "Download": "http://bitbucket.org/DNX/pg_fabrep/downloads", "Homepage": "https://bitbucket.org/DNX/pg_fabrep/" }, "release_url": "https://pypi.org/project/pg_fabrep/0.0.5/", "requires_dist": null, "requires_python": null, "summary": "Postgresql Streaming Replication with Fabric and Repmgr", "version": "0.0.5" }, "last_serial": 796193, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "18e672836bdb0be1fa945eb01129eb3c", "sha256": "8e84f3fc4805862ae6fa241cf85a1d2e5b5c4e05640da75edc73b5cda77738e5" }, "downloads": -1, "filename": "pg_fabrep-0.0.1.tar.gz", "has_sig": false, "md5_digest": "18e672836bdb0be1fa945eb01129eb3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 207413, "upload_time": "2012-03-12T11:03:49", "url": "https://files.pythonhosted.org/packages/04/38/9a4db0366858ca7dd78019db1f8ce0cc62fe7fb4ba8861d7ca5fff36fdb9/pg_fabrep-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "5ddc4ef02e193a5333755333211c68ac", "sha256": "311d2a114d5a4b9661e1927996ca4cf5a8559f757b2ff0a9549e15d2adfebd8d" }, "downloads": -1, "filename": "pg_fabrep-0.0.2.tar.gz", "has_sig": false, "md5_digest": "5ddc4ef02e193a5333755333211c68ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 209103, "upload_time": "2012-03-14T13:44:23", "url": "https://files.pythonhosted.org/packages/44/2f/aaa34d91d4ea645a06c4ea94f83434a8bfe58027cd1d3b4acad81be3cc00/pg_fabrep-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "103c9422593380ff4b5f44ce3cafa036", "sha256": "acab28a11d0baf3a065ad5ebea4845f38f7de864f8e40fd44744b486618d859e" }, "downloads": -1, "filename": "pg_fabrep-0.0.3.tar.gz", "has_sig": false, "md5_digest": "103c9422593380ff4b5f44ce3cafa036", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 209126, "upload_time": "2012-03-22T10:46:17", "url": "https://files.pythonhosted.org/packages/8b/17/89505156974839de2df388827c99bddd44697e92642aab986c8893fb5d56/pg_fabrep-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "83b3eb7752b1bc5ee75d2093c55e0c8e", "sha256": "5304543e1f2a5306f85ef41fdb48bec0931bc4c541e24947a1377c4b5acae0e4" }, "downloads": -1, "filename": "pg_fabrep-0.0.4.tar.gz", "has_sig": false, "md5_digest": "83b3eb7752b1bc5ee75d2093c55e0c8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 209923, "upload_time": "2012-04-24T12:11:36", "url": "https://files.pythonhosted.org/packages/2b/bb/1ca6bbcef21118bf492d8962796c204d8932e4942c6cf47cc4e7a39ee009/pg_fabrep-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "41f621e383b4bbd00aa5df285fe8946e", "sha256": "7c8a96c1fee78ec2e6c9548255c75e2528272acf5dc30919b7be658ece25815d" }, "downloads": -1, "filename": "pg_fabrep-0.0.5.tar.gz", "has_sig": false, "md5_digest": "41f621e383b4bbd00aa5df285fe8946e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 209968, "upload_time": "2012-06-26T16:47:36", "url": "https://files.pythonhosted.org/packages/79/24/ac5d7c443fb69bf4f75b3519bde1830584c5907b7afec803ebe75f1efe26/pg_fabrep-0.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "41f621e383b4bbd00aa5df285fe8946e", "sha256": "7c8a96c1fee78ec2e6c9548255c75e2528272acf5dc30919b7be658ece25815d" }, "downloads": -1, "filename": "pg_fabrep-0.0.5.tar.gz", "has_sig": false, "md5_digest": "41f621e383b4bbd00aa5df285fe8946e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 209968, "upload_time": "2012-06-26T16:47:36", "url": "https://files.pythonhosted.org/packages/79/24/ac5d7c443fb69bf4f75b3519bde1830584c5907b7afec803ebe75f1efe26/pg_fabrep-0.0.5.tar.gz" } ] }